Stripeで過去に作成したインボイスの一覧を取得して、無効にする
Stripeでいろいろと試していると、過去に作成したインボイス(Open)が邪魔になることがあります。 そのため、Openになっているインボイスの一覧を取得して、無効にしてみました。
おすすめの方
- Stripeのインボイスを検索したい方
- Stripeの複数のインボイスをまとめて無効にしたい方
StripeのAPIキーを取得する
Stripeのダッシュボードにアクセスし、APIキーを取得します。
用意されているAPIキーを利用する場合は、シークレットキーを利用します。取り扱いには注意しましょう。
インボイスを検索して、個別に無効化するスクリプトを作成する(Python)
StripeでOpenになっているインボイスの一覧を取得して、ひとつずつ無効にするスクリプトです。 今回は、「2023-07-10T11:00:00(JST) : 1688954400」より古いインボイスを対象にしてみます。
import stripe STRIPE_API_KEY = 'xxx' def main(): stripe.api_key = STRIPE_API_KEY invoices = search_invoices(stripe) for item in invoices: print(item['id']) stripe.Invoice.void_invoice(item['id']) def search_invoices(stripe): invoices = [] options = { "query": "status:'open' AND created<1688954400", "limit": 10, } while True: resp = stripe.Invoice.search(**options) if 'data' in resp: invoices += resp['data'] if resp['has_more']: options['page'] = resp['next_page'] else: return invoices if __name__=='__main__': main()
スクリプトを実行する
スクリプト実行前のインボイスの様子
5つのインボイスがあります。
このうち、「2023-07-10T11:00:00(JST) : 1688954400」より古いインボイスは、下の2つです。
スクリプトを実行する
$ python app.py in_1NS9HGHkjjhQpTMONx24Ovik in_1NJEpbHkjjhQpTMOs7rzfcjc
スクリプト実行後のインボイスの様子
2つのインボイスが無効になり、3つのインボイスが残りました。期待どおりです。
さいごに
Stripeのインボイスを検索して無効にするスクリプトを作成し、複数のインボイスを無効にしてみました。 どなたかの参考になれば幸いです。