Stripeのいろんな状態のインボイスを「無効にする(API・SDK)」ときの応答を確認する
Stripeのインボイスは、いくつかのステータスがあります。
- Draft
- Deleted
- Open
- Paid
- Uncollectible
- Void
これらの状態のインボイスについて、API(SDK)で「無効にする操作」をした場合の応答を確認してみました。
おすすめの方
- StripeのAPI(SDK)を利用したい方
- 各状態のインボイスをAPI(SDK)で「無効にする操作」をした場合の応答を知りたい方
いろんな状態のインボイスを無効にする
インボイスを無効にするスクリプト
指定のインボイスを無効にするスクリプトです。エラー(例外)発生時は、pprint
で中身を表示させます。
import stripe from pprint import pprint stripe.api_key = "xxx" TARGET_INVOICE_ID = "in_111" def main(): try: resp = stripe.Invoice.void_invoice(TARGET_INVOICE_ID) print("success!") except stripe.error.StripeError as e: pprint(e) if __name__ == "__main__": main()
Draftのインボイスを無効にする
「Openなインボイスじゃないよ」と怒られました。
InvalidRequestError(message="You can only pass in open invoices. This invoice isn't open.", param=None, code=None, http_status=400, request_id='req_IizNbDO5cxGV9B')
Deletedのインボイスを無効にする
Draftのインボイスを削除したあと、APIを使ってインボイスを無効にします。
「インボイスが見つからないよ」と怒られました。
InvalidRequestError(message="No such invoice: 'in_1NXz9sHkjjhQpTMOwkVdbkAL'", param='id', code='resource_missing', http_status=404, request_id='req_KDL3u2x9BccnPR')
Openのインボイスを無効にする
正常系ですね。
これは成功します。
success!
Paidのインボイスを無効にする
「Openなインボイスじゃないよ」と怒られました。
InvalidRequestError(message="You can only pass in open invoices. This invoice isn't open.", param=None, code=None, http_status=400, request_id='req_gSMV07RNz6RdyG')
Uncollectibleのインボイスを無効にする
回収不能のインボイスを無効にします。
成功しました。
success!
Voidのインボイスを無効にする
「Openなインボイスじゃないよ」と怒られました。
InvalidRequestError(message="You can only pass in open invoices. This invoice isn't open.", param=None, code=None, http_status=400, request_id='req_rBqgfAh4p8izsJ')
さいごに
Stripeのいろいろな状態のインボイスを無効にした際の動作を確認してみました。 これらを参考に例外処理(try-except)を書くと良いですね。