@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Stripe API
@base https://api.stripe.com/
@version 2026-03-25.dahlia
@auth Bearer basic | Bearer bearer
@endpoints 587
@hint download_for_search
@toc account(1), account_links(1), account_sessions(1), accounts(29), apple_pay(4), application_fees(7), apps(4), balance(3), balance_settings(2), balance_transactions(2), billing(24), billing_portal(5), charges(14), checkout(6), climate(9), confirmation_tokens(1), country_specs(2), coupons(5), credit_notes(8), customer_sessions(1), customers(47), disputes(4), entitlements(6), ephemeral_keys(2), events(2), exchange_rates(2), external_accounts(1), file_links(4), files(3), financial_connections(11), forwarding(3), identity(8), invoice_payments(2), invoice_rendering_templates(4), invoiceitems(5), invoices(18), issuing(32), link_account_sessions(2), linked_accounts(5), mandates(1), payment_attempt_records(2), payment_intents(12), payment_links(5), payment_method_configurations(4), payment_method_domains(5), payment_methods(6), payment_records(8), payouts(6), plans(5), prices(5), products(10), promotion_codes(4), quotes(10), radar(12), refunds(5), reporting(5), reviews(3), setup_attempts(1), setup_intents(7), shipping_rates(4), sigma(3), sources(7), subscription_items(5), subscription_schedules(6), subscriptions(9), tax(14), tax_codes(2), tax_ids(4), tax_rates(4), terminal(26), test_helpers(44), tokens(2), topups(5), transfers(8), treasury(33), webhook_endpoints(5)

@group account
@endpoint GET /v1/account
@optional {expand: [str]}
@returns(200) {business_profile: any?, business_type: str?, capabilities: map{acss_debit_payments: str, affirm_payments: str, afterpay_clearpay_payments: str, alma_payments: str, amazon_pay_payments: str, au_becs_debit_payments: str, bacs_debit_payments: str, bancontact_payments: str, bank_transfer_payments: str, billie_payments: str, blik_payments: str, boleto_payments: str, card_issuing: str, card_payments: str, cartes_bancaires_payments: str, cashapp_payments: str, crypto_payments: str, eps_payments: str, fpx_payments: str, gb_bank_transfer_payments: str, giropay_payments: str, grabpay_payments: str, ideal_payments: str, india_international_payments: str, jcb_payments: str, jp_bank_transfer_payments: str, kakao_pay_payments: str, klarna_payments: str, konbini_payments: str, kr_card_payments: str, legacy_payments: str, link_payments: str, mb_way_payments: str, mobilepay_payments: str, multibanco_payments: str, mx_bank_transfer_payments: str, naver_pay_payments: str, nz_bank_account_becs_debit_payments: str, oxxo_payments: str, p24_payments: str, pay_by_bank_payments: str, payco_payments: str, paynow_payments: str, payto_payments: str, pix_payments: str, promptpay_payments: str, revolut_pay_payments: str, samsung_pay_payments: str, satispay_payments: str, sepa_bank_transfer_payments: str, sepa_debit_payments: str, sofort_payments: str, swish_payments: str, tax_reporting_us_1099_k: str, tax_reporting_us_1099_misc: str, transfers: str, treasury: str, twint_payments: str, upi_payments: str, us_bank_account_ach_payments: str, us_bank_transfer_payments: str, zip_payments: str}, charges_enabled: bool, company: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, address_kana: any?, address_kanji: any?, directors_provided: bool, directorship_declaration: any?, executives_provided: bool, export_license_id: str, export_purpose_code: str, name: str?, name_kana: str?, name_kanji: str?, owners_provided: bool, ownership_declaration: any?, ownership_exemption_reason: str, phone: str?, registration_date: map{day: int?, month: int?, year: int?}, representative_declaration: any?, structure: str, tax_id_provided: bool, tax_id_registrar: str, vat_id_provided: bool, verification: any?}, controller: map{fees: map{payer: str}, is_controller: bool, losses: map{payments: str}, requirement_collection: str, stripe_dashboard: map{type: str}, type: str}, country: str, created: int(unix-time), default_currency: str, details_submitted: bool, email: str?, external_accounts: map{data: [any], has_more: bool, object: str, url: str}, future_requirements: map{alternatives: [map]?, current_deadline: int(unix-time)?, currently_due: [str]?, disabled_reason: str?, errors: [map]?, eventually_due: [str]?, past_due: [str]?, pending_verification: [str]?}, groups: any?, id: str, individual: map{account: str, additional_tos_acceptances: map{account: any?}, address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, address_kana: any?, address_kanji: any?, created: int(unix-time), dob: map{day: int?, month: int?, year: int?}, email: str?, first_name: str?, first_name_kana: str?, first_name_kanji: str?, full_name_aliases: [str], future_requirements: any?, gender: str?, id: str, id_number_provided: bool, id_number_secondary_provided: bool, last_name: str?, last_name_kana: str?, last_name_kanji: str?, maiden_name: str?, metadata: map, nationality: str?, object: str, phone: str?, political_exposure: str, registered_address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, relationship: map{authorizer: bool?, director: bool?, executive: bool?, legal_guardian: bool?, owner: bool?, percent_ownership: num?, representative: bool?, title: str?}, requirements: any?, ssn_last_4_provided: bool, us_cfpb_data: any?, verification: map{additional_document: any?, details: str?, details_code: str?, document: map{back: any?, details: str?, details_code: str?, front: any?}, status: str}}, metadata: map, object: str, payouts_enabled: bool, requirements: map{alternatives: [map]?, current_deadline: int(unix-time)?, currently_due: [str]?, disabled_reason: str?, errors: [map]?, eventually_due: [str]?, past_due: [str]?, pending_verification: [str]?}, settings: any?, tos_acceptance: map{date: int(unix-time)?, ip: str?, service_agreement: str, user_agent: str?}, type: str}

@endgroup

@group account_links
@endpoint POST /v1/account_links
@returns(200) {created: int(unix-time), expires_at: int(unix-time), object: str, url: str}

@endgroup

@group account_sessions
@endpoint POST /v1/account_sessions
@returns(200) {account: str, client_secret: str, components: map{account_management: map{enabled: bool, features: map{disable_stripe_user_authentication: bool, external_account_collection: bool}}, account_onboarding: map{enabled: bool, features: map{disable_stripe_user_authentication: bool, external_account_collection: bool}}, balances: map{enabled: bool, features: map{disable_stripe_user_authentication: bool, edit_payout_schedule: bool, external_account_collection: bool, instant_payouts: bool, standard_payouts: bool}}, disputes_list: map{enabled: bool, features: map{capture_payments: bool, destination_on_behalf_of_charge_management: bool, dispute_management: bool, refund_management: bool}}, documents: map{enabled: bool, features: map}, financial_account: map{enabled: bool, features: map{disable_stripe_user_authentication: bool, external_account_collection: bool, send_money: bool, transfer_balance: bool}}, financial_account_transactions: map{enabled: bool, features: map{card_spend_dispute_management: bool}}, instant_payouts_promotion: map{enabled: bool, features: map{disable_stripe_user_authentication: bool, external_account_collection: bool, instant_payouts: bool}}, issuing_card: map{enabled: bool, features: map{card_management: bool, card_spend_dispute_management: bool, cardholder_management: bool, spend_control_management: bool}}, issuing_cards_list: map{enabled: bool, features: map{card_management: bool, card_spend_dispute_management: bool, cardholder_management: bool, disable_stripe_user_authentication: bool, spend_control_management: bool}}, notification_banner: map{enabled: bool, features: map{disable_stripe_user_authentication: bool, external_account_collection: bool}}, payment_details: map{enabled: bool, features: map{capture_payments: bool, destination_on_behalf_of_charge_management: bool, dispute_management: bool, refund_management: bool}}, payment_disputes: map{enabled: bool, features: map{destination_on_behalf_of_charge_management: bool, dispute_management: bool, refund_management: bool}}, payments: map{enabled: bool, features: map{capture_payments: bool, destination_on_behalf_of_charge_management: bool, dispute_management: bool, refund_management: bool}}, payout_details: map{enabled: bool, features: map}, payouts: map{enabled: bool, features: map{disable_stripe_user_authentication: bool, edit_payout_schedule: bool, external_account_collection: bool, instant_payouts: bool, standard_payouts: bool}}, payouts_list: map{enabled: bool, features: map}, tax_registrations: map{enabled: bool, features: map}, tax_settings: map{enabled: bool, features: map}}, expires_at: int(unix-time), livemode: bool, object: str}

@endgroup

@group accounts
@endpoint GET /v1/accounts
@optional {created: any, ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/accounts
@returns(200) {business_profile: any?, business_type: str?, capabilities: map{acss_debit_payments: str, affirm_payments: str, afterpay_clearpay_payments: str, alma_payments: str, amazon_pay_payments: str, au_becs_debit_payments: str, bacs_debit_payments: str, bancontact_payments: str, bank_transfer_payments: str, billie_payments: str, blik_payments: str, boleto_payments: str, card_issuing: str, card_payments: str, cartes_bancaires_payments: str, cashapp_payments: str, crypto_payments: str, eps_payments: str, fpx_payments: str, gb_bank_transfer_payments: str, giropay_payments: str, grabpay_payments: str, ideal_payments: str, india_international_payments: str, jcb_payments: str, jp_bank_transfer_payments: str, kakao_pay_payments: str, klarna_payments: str, konbini_payments: str, kr_card_payments: str, legacy_payments: str, link_payments: str, mb_way_payments: str, mobilepay_payments: str, multibanco_payments: str, mx_bank_transfer_payments: str, naver_pay_payments: str, nz_bank_account_becs_debit_payments: str, oxxo_payments: str, p24_payments: str, pay_by_bank_payments: str, payco_payments: str, paynow_payments: str, payto_payments: str, pix_payments: str, promptpay_payments: str, revolut_pay_payments: str, samsung_pay_payments: str, satispay_payments: str, sepa_bank_transfer_payments: str, sepa_debit_payments: str, sofort_payments: str, swish_payments: str, tax_reporting_us_1099_k: str, tax_reporting_us_1099_misc: str, transfers: str, treasury: str, twint_payments: str, upi_payments: str, us_bank_account_ach_payments: str, us_bank_transfer_payments: str, zip_payments: str}, charges_enabled: bool, company: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, address_kana: any?, address_kanji: any?, directors_provided: bool, directorship_declaration: any?, executives_provided: bool, export_license_id: str, export_purpose_code: str, name: str?, name_kana: str?, name_kanji: str?, owners_provided: bool, ownership_declaration: any?, ownership_exemption_reason: str, phone: str?, registration_date: map{day: int?, month: int?, year: int?}, representative_declaration: any?, structure: str, tax_id_provided: bool, tax_id_registrar: str, vat_id_provided: bool, verification: any?}, controller: map{fees: map{payer: str}, is_controller: bool, losses: map{payments: str}, requirement_collection: str, stripe_dashboard: map{type: str}, type: str}, country: str, created: int(unix-time), default_currency: str, details_submitted: bool, email: str?, external_accounts: map{data: [any], has_more: bool, object: str, url: str}, future_requirements: map{alternatives: [map]?, current_deadline: int(unix-time)?, currently_due: [str]?, disabled_reason: str?, errors: [map]?, eventually_due: [str]?, past_due: [str]?, pending_verification: [str]?}, groups: any?, id: str, individual: map{account: str, additional_tos_acceptances: map{account: any?}, address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, address_kana: any?, address_kanji: any?, created: int(unix-time), dob: map{day: int?, month: int?, year: int?}, email: str?, first_name: str?, first_name_kana: str?, first_name_kanji: str?, full_name_aliases: [str], future_requirements: any?, gender: str?, id: str, id_number_provided: bool, id_number_secondary_provided: bool, last_name: str?, last_name_kana: str?, last_name_kanji: str?, maiden_name: str?, metadata: map, nationality: str?, object: str, phone: str?, political_exposure: str, registered_address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, relationship: map{authorizer: bool?, director: bool?, executive: bool?, legal_guardian: bool?, owner: bool?, percent_ownership: num?, representative: bool?, title: str?}, requirements: any?, ssn_last_4_provided: bool, us_cfpb_data: any?, verification: map{additional_document: any?, details: str?, details_code: str?, document: map{back: any?, details: str?, details_code: str?, front: any?}, status: str}}, metadata: map, object: str, payouts_enabled: bool, requirements: map{alternatives: [map]?, current_deadline: int(unix-time)?, currently_due: [str]?, disabled_reason: str?, errors: [map]?, eventually_due: [str]?, past_due: [str]?, pending_verification: [str]?}, settings: any?, tos_acceptance: map{date: int(unix-time)?, ip: str?, service_agreement: str, user_agent: str?}, type: str}

@endpoint DELETE /v1/accounts/{account}
@required {account: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/accounts/{account}
@required {account: str}
@optional {expand: [str]}
@returns(200) {business_profile: any?, business_type: str?, capabilities: map{acss_debit_payments: str, affirm_payments: str, afterpay_clearpay_payments: str, alma_payments: str, amazon_pay_payments: str, au_becs_debit_payments: str, bacs_debit_payments: str, bancontact_payments: str, bank_transfer_payments: str, billie_payments: str, blik_payments: str, boleto_payments: str, card_issuing: str, card_payments: str, cartes_bancaires_payments: str, cashapp_payments: str, crypto_payments: str, eps_payments: str, fpx_payments: str, gb_bank_transfer_payments: str, giropay_payments: str, grabpay_payments: str, ideal_payments: str, india_international_payments: str, jcb_payments: str, jp_bank_transfer_payments: str, kakao_pay_payments: str, klarna_payments: str, konbini_payments: str, kr_card_payments: str, legacy_payments: str, link_payments: str, mb_way_payments: str, mobilepay_payments: str, multibanco_payments: str, mx_bank_transfer_payments: str, naver_pay_payments: str, nz_bank_account_becs_debit_payments: str, oxxo_payments: str, p24_payments: str, pay_by_bank_payments: str, payco_payments: str, paynow_payments: str, payto_payments: str, pix_payments: str, promptpay_payments: str, revolut_pay_payments: str, samsung_pay_payments: str, satispay_payments: str, sepa_bank_transfer_payments: str, sepa_debit_payments: str, sofort_payments: str, swish_payments: str, tax_reporting_us_1099_k: str, tax_reporting_us_1099_misc: str, transfers: str, treasury: str, twint_payments: str, upi_payments: str, us_bank_account_ach_payments: str, us_bank_transfer_payments: str, zip_payments: str}, charges_enabled: bool, company: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, address_kana: any?, address_kanji: any?, directors_provided: bool, directorship_declaration: any?, executives_provided: bool, export_license_id: str, export_purpose_code: str, name: str?, name_kana: str?, name_kanji: str?, owners_provided: bool, ownership_declaration: any?, ownership_exemption_reason: str, phone: str?, registration_date: map{day: int?, month: int?, year: int?}, representative_declaration: any?, structure: str, tax_id_provided: bool, tax_id_registrar: str, vat_id_provided: bool, verification: any?}, controller: map{fees: map{payer: str}, is_controller: bool, losses: map{payments: str}, requirement_collection: str, stripe_dashboard: map{type: str}, type: str}, country: str, created: int(unix-time), default_currency: str, details_submitted: bool, email: str?, external_accounts: map{data: [any], has_more: bool, object: str, url: str}, future_requirements: map{alternatives: [map]?, current_deadline: int(unix-time)?, currently_due: [str]?, disabled_reason: str?, errors: [map]?, eventually_due: [str]?, past_due: [str]?, pending_verification: [str]?}, groups: any?, id: str, individual: map{account: str, additional_tos_acceptances: map{account: any?}, address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, address_kana: any?, address_kanji: any?, created: int(unix-time), dob: map{day: int?, month: int?, year: int?}, email: str?, first_name: str?, first_name_kana: str?, first_name_kanji: str?, full_name_aliases: [str], future_requirements: any?, gender: str?, id: str, id_number_provided: bool, id_number_secondary_provided: bool, last_name: str?, last_name_kana: str?, last_name_kanji: str?, maiden_name: str?, metadata: map, nationality: str?, object: str, phone: str?, political_exposure: str, registered_address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, relationship: map{authorizer: bool?, director: bool?, executive: bool?, legal_guardian: bool?, owner: bool?, percent_ownership: num?, representative: bool?, title: str?}, requirements: any?, ssn_last_4_provided: bool, us_cfpb_data: any?, verification: map{additional_document: any?, details: str?, details_code: str?, document: map{back: any?, details: str?, details_code: str?, front: any?}, status: str}}, metadata: map, object: str, payouts_enabled: bool, requirements: map{alternatives: [map]?, current_deadline: int(unix-time)?, currently_due: [str]?, disabled_reason: str?, errors: [map]?, eventually_due: [str]?, past_due: [str]?, pending_verification: [str]?}, settings: any?, tos_acceptance: map{date: int(unix-time)?, ip: str?, service_agreement: str, user_agent: str?}, type: str}

@endpoint POST /v1/accounts/{account}
@required {account: str}
@returns(200) {business_profile: any?, business_type: str?, capabilities: map{acss_debit_payments: str, affirm_payments: str, afterpay_clearpay_payments: str, alma_payments: str, amazon_pay_payments: str, au_becs_debit_payments: str, bacs_debit_payments: str, bancontact_payments: str, bank_transfer_payments: str, billie_payments: str, blik_payments: str, boleto_payments: str, card_issuing: str, card_payments: str, cartes_bancaires_payments: str, cashapp_payments: str, crypto_payments: str, eps_payments: str, fpx_payments: str, gb_bank_transfer_payments: str, giropay_payments: str, grabpay_payments: str, ideal_payments: str, india_international_payments: str, jcb_payments: str, jp_bank_transfer_payments: str, kakao_pay_payments: str, klarna_payments: str, konbini_payments: str, kr_card_payments: str, legacy_payments: str, link_payments: str, mb_way_payments: str, mobilepay_payments: str, multibanco_payments: str, mx_bank_transfer_payments: str, naver_pay_payments: str, nz_bank_account_becs_debit_payments: str, oxxo_payments: str, p24_payments: str, pay_by_bank_payments: str, payco_payments: str, paynow_payments: str, payto_payments: str, pix_payments: str, promptpay_payments: str, revolut_pay_payments: str, samsung_pay_payments: str, satispay_payments: str, sepa_bank_transfer_payments: str, sepa_debit_payments: str, sofort_payments: str, swish_payments: str, tax_reporting_us_1099_k: str, tax_reporting_us_1099_misc: str, transfers: str, treasury: str, twint_payments: str, upi_payments: str, us_bank_account_ach_payments: str, us_bank_transfer_payments: str, zip_payments: str}, charges_enabled: bool, company: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, address_kana: any?, address_kanji: any?, directors_provided: bool, directorship_declaration: any?, executives_provided: bool, export_license_id: str, export_purpose_code: str, name: str?, name_kana: str?, name_kanji: str?, owners_provided: bool, ownership_declaration: any?, ownership_exemption_reason: str, phone: str?, registration_date: map{day: int?, month: int?, year: int?}, representative_declaration: any?, structure: str, tax_id_provided: bool, tax_id_registrar: str, vat_id_provided: bool, verification: any?}, controller: map{fees: map{payer: str}, is_controller: bool, losses: map{payments: str}, requirement_collection: str, stripe_dashboard: map{type: str}, type: str}, country: str, created: int(unix-time), default_currency: str, details_submitted: bool, email: str?, external_accounts: map{data: [any], has_more: bool, object: str, url: str}, future_requirements: map{alternatives: [map]?, current_deadline: int(unix-time)?, currently_due: [str]?, disabled_reason: str?, errors: [map]?, eventually_due: [str]?, past_due: [str]?, pending_verification: [str]?}, groups: any?, id: str, individual: map{account: str, additional_tos_acceptances: map{account: any?}, address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, address_kana: any?, address_kanji: any?, created: int(unix-time), dob: map{day: int?, month: int?, year: int?}, email: str?, first_name: str?, first_name_kana: str?, first_name_kanji: str?, full_name_aliases: [str], future_requirements: any?, gender: str?, id: str, id_number_provided: bool, id_number_secondary_provided: bool, last_name: str?, last_name_kana: str?, last_name_kanji: str?, maiden_name: str?, metadata: map, nationality: str?, object: str, phone: str?, political_exposure: str, registered_address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, relationship: map{authorizer: bool?, director: bool?, executive: bool?, legal_guardian: bool?, owner: bool?, percent_ownership: num?, representative: bool?, title: str?}, requirements: any?, ssn_last_4_provided: bool, us_cfpb_data: any?, verification: map{additional_document: any?, details: str?, details_code: str?, document: map{back: any?, details: str?, details_code: str?, front: any?}, status: str}}, metadata: map, object: str, payouts_enabled: bool, requirements: map{alternatives: [map]?, current_deadline: int(unix-time)?, currently_due: [str]?, disabled_reason: str?, errors: [map]?, eventually_due: [str]?, past_due: [str]?, pending_verification: [str]?}, settings: any?, tos_acceptance: map{date: int(unix-time)?, ip: str?, service_agreement: str, user_agent: str?}, type: str}

@endpoint POST /v1/accounts/{account}/bank_accounts
@required {account: str}
@returns(200)

@endpoint DELETE /v1/accounts/{account}/bank_accounts/{id}
@required {account: str, id: str}
@returns(200)

@endpoint GET /v1/accounts/{account}/bank_accounts/{id}
@required {account: str, id: str}
@optional {expand: [str]}
@returns(200)

@endpoint POST /v1/accounts/{account}/bank_accounts/{id}
@required {account: str, id: str}
@returns(200)

@endpoint GET /v1/accounts/{account}/capabilities
@required {account: str}
@optional {expand: [str]}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/accounts/{account}/capabilities/{capability}
@required {account: str, capability: str}
@optional {expand: [str]}
@returns(200) {account: any, future_requirements: map{alternatives: [map]?, current_deadline: int(unix-time)?, currently_due: [str], disabled_reason: str?, errors: [map], eventually_due: [str], past_due: [str], pending_verification: [str]}, id: str, object: str, requested: bool, requested_at: int(unix-time)?, requirements: map{alternatives: [map]?, current_deadline: int(unix-time)?, currently_due: [str], disabled_reason: str?, errors: [map], eventually_due: [str], past_due: [str], pending_verification: [str]}, status: str}

@endpoint POST /v1/accounts/{account}/capabilities/{capability}
@required {account: str, capability: str}
@returns(200) {account: any, future_requirements: map{alternatives: [map]?, current_deadline: int(unix-time)?, currently_due: [str], disabled_reason: str?, errors: [map], eventually_due: [str], past_due: [str], pending_verification: [str]}, id: str, object: str, requested: bool, requested_at: int(unix-time)?, requirements: map{alternatives: [map]?, current_deadline: int(unix-time)?, currently_due: [str], disabled_reason: str?, errors: [map], eventually_due: [str], past_due: [str], pending_verification: [str]}, status: str}

@endpoint GET /v1/accounts/{account}/external_accounts
@required {account: str}
@optional {ending_before: str, expand: [str], limit: int, object: str(bank_account/card), starting_after: str}
@returns(200) {data: [any], has_more: bool, object: str, url: str}

@endpoint POST /v1/accounts/{account}/external_accounts
@required {account: str}
@returns(200)

@endpoint DELETE /v1/accounts/{account}/external_accounts/{id}
@required {account: str, id: str}
@returns(200)

@endpoint GET /v1/accounts/{account}/external_accounts/{id}
@required {account: str, id: str}
@optional {expand: [str]}
@returns(200)

@endpoint POST /v1/accounts/{account}/external_accounts/{id}
@required {account: str, id: str}
@returns(200)

@endpoint POST /v1/accounts/{account}/login_links
@required {account: str}
@returns(200) {created: int(unix-time), object: str, url: str}

@endpoint GET /v1/accounts/{account}/people
@required {account: str}
@optional {ending_before: str, expand: [str], limit: int, relationship: map, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/accounts/{account}/people
@required {account: str}
@returns(200) {account: str, additional_tos_acceptances: map{account: any?}, address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, address_kana: any?, address_kanji: any?, created: int(unix-time), dob: map{day: int?, month: int?, year: int?}, email: str?, first_name: str?, first_name_kana: str?, first_name_kanji: str?, full_name_aliases: [str], future_requirements: any?, gender: str?, id: str, id_number_provided: bool, id_number_secondary_provided: bool, last_name: str?, last_name_kana: str?, last_name_kanji: str?, maiden_name: str?, metadata: map, nationality: str?, object: str, phone: str?, political_exposure: str, registered_address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, relationship: map{authorizer: bool?, director: bool?, executive: bool?, legal_guardian: bool?, owner: bool?, percent_ownership: num?, representative: bool?, title: str?}, requirements: any?, ssn_last_4_provided: bool, us_cfpb_data: any?, verification: map{additional_document: any?, details: str?, details_code: str?, document: map{back: any?, details: str?, details_code: str?, front: any?}, status: str}}

@endpoint DELETE /v1/accounts/{account}/people/{person}
@required {account: str, person: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/accounts/{account}/people/{person}
@required {account: str, person: str}
@optional {expand: [str]}
@returns(200) {account: str, additional_tos_acceptances: map{account: any?}, address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, address_kana: any?, address_kanji: any?, created: int(unix-time), dob: map{day: int?, month: int?, year: int?}, email: str?, first_name: str?, first_name_kana: str?, first_name_kanji: str?, full_name_aliases: [str], future_requirements: any?, gender: str?, id: str, id_number_provided: bool, id_number_secondary_provided: bool, last_name: str?, last_name_kana: str?, last_name_kanji: str?, maiden_name: str?, metadata: map, nationality: str?, object: str, phone: str?, political_exposure: str, registered_address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, relationship: map{authorizer: bool?, director: bool?, executive: bool?, legal_guardian: bool?, owner: bool?, percent_ownership: num?, representative: bool?, title: str?}, requirements: any?, ssn_last_4_provided: bool, us_cfpb_data: any?, verification: map{additional_document: any?, details: str?, details_code: str?, document: map{back: any?, details: str?, details_code: str?, front: any?}, status: str}}

@endpoint POST /v1/accounts/{account}/people/{person}
@required {account: str, person: str}
@returns(200) {account: str, additional_tos_acceptances: map{account: any?}, address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, address_kana: any?, address_kanji: any?, created: int(unix-time), dob: map{day: int?, month: int?, year: int?}, email: str?, first_name: str?, first_name_kana: str?, first_name_kanji: str?, full_name_aliases: [str], future_requirements: any?, gender: str?, id: str, id_number_provided: bool, id_number_secondary_provided: bool, last_name: str?, last_name_kana: str?, last_name_kanji: str?, maiden_name: str?, metadata: map, nationality: str?, object: str, phone: str?, political_exposure: str, registered_address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, relationship: map{authorizer: bool?, director: bool?, executive: bool?, legal_guardian: bool?, owner: bool?, percent_ownership: num?, representative: bool?, title: str?}, requirements: any?, ssn_last_4_provided: bool, us_cfpb_data: any?, verification: map{additional_document: any?, details: str?, details_code: str?, document: map{back: any?, details: str?, details_code: str?, front: any?}, status: str}}

@endpoint GET /v1/accounts/{account}/persons
@required {account: str}
@optional {ending_before: str, expand: [str], limit: int, relationship: map, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/accounts/{account}/persons
@required {account: str}
@returns(200) {account: str, additional_tos_acceptances: map{account: any?}, address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, address_kana: any?, address_kanji: any?, created: int(unix-time), dob: map{day: int?, month: int?, year: int?}, email: str?, first_name: str?, first_name_kana: str?, first_name_kanji: str?, full_name_aliases: [str], future_requirements: any?, gender: str?, id: str, id_number_provided: bool, id_number_secondary_provided: bool, last_name: str?, last_name_kana: str?, last_name_kanji: str?, maiden_name: str?, metadata: map, nationality: str?, object: str, phone: str?, political_exposure: str, registered_address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, relationship: map{authorizer: bool?, director: bool?, executive: bool?, legal_guardian: bool?, owner: bool?, percent_ownership: num?, representative: bool?, title: str?}, requirements: any?, ssn_last_4_provided: bool, us_cfpb_data: any?, verification: map{additional_document: any?, details: str?, details_code: str?, document: map{back: any?, details: str?, details_code: str?, front: any?}, status: str}}

@endpoint DELETE /v1/accounts/{account}/persons/{person}
@required {account: str, person: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/accounts/{account}/persons/{person}
@required {account: str, person: str}
@optional {expand: [str]}
@returns(200) {account: str, additional_tos_acceptances: map{account: any?}, address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, address_kana: any?, address_kanji: any?, created: int(unix-time), dob: map{day: int?, month: int?, year: int?}, email: str?, first_name: str?, first_name_kana: str?, first_name_kanji: str?, full_name_aliases: [str], future_requirements: any?, gender: str?, id: str, id_number_provided: bool, id_number_secondary_provided: bool, last_name: str?, last_name_kana: str?, last_name_kanji: str?, maiden_name: str?, metadata: map, nationality: str?, object: str, phone: str?, political_exposure: str, registered_address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, relationship: map{authorizer: bool?, director: bool?, executive: bool?, legal_guardian: bool?, owner: bool?, percent_ownership: num?, representative: bool?, title: str?}, requirements: any?, ssn_last_4_provided: bool, us_cfpb_data: any?, verification: map{additional_document: any?, details: str?, details_code: str?, document: map{back: any?, details: str?, details_code: str?, front: any?}, status: str}}

@endpoint POST /v1/accounts/{account}/persons/{person}
@required {account: str, person: str}
@returns(200) {account: str, additional_tos_acceptances: map{account: any?}, address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, address_kana: any?, address_kanji: any?, created: int(unix-time), dob: map{day: int?, month: int?, year: int?}, email: str?, first_name: str?, first_name_kana: str?, first_name_kanji: str?, full_name_aliases: [str], future_requirements: any?, gender: str?, id: str, id_number_provided: bool, id_number_secondary_provided: bool, last_name: str?, last_name_kana: str?, last_name_kanji: str?, maiden_name: str?, metadata: map, nationality: str?, object: str, phone: str?, political_exposure: str, registered_address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, relationship: map{authorizer: bool?, director: bool?, executive: bool?, legal_guardian: bool?, owner: bool?, percent_ownership: num?, representative: bool?, title: str?}, requirements: any?, ssn_last_4_provided: bool, us_cfpb_data: any?, verification: map{additional_document: any?, details: str?, details_code: str?, document: map{back: any?, details: str?, details_code: str?, front: any?}, status: str}}

@endpoint POST /v1/accounts/{account}/reject
@required {account: str}
@returns(200) {business_profile: any?, business_type: str?, capabilities: map{acss_debit_payments: str, affirm_payments: str, afterpay_clearpay_payments: str, alma_payments: str, amazon_pay_payments: str, au_becs_debit_payments: str, bacs_debit_payments: str, bancontact_payments: str, bank_transfer_payments: str, billie_payments: str, blik_payments: str, boleto_payments: str, card_issuing: str, card_payments: str, cartes_bancaires_payments: str, cashapp_payments: str, crypto_payments: str, eps_payments: str, fpx_payments: str, gb_bank_transfer_payments: str, giropay_payments: str, grabpay_payments: str, ideal_payments: str, india_international_payments: str, jcb_payments: str, jp_bank_transfer_payments: str, kakao_pay_payments: str, klarna_payments: str, konbini_payments: str, kr_card_payments: str, legacy_payments: str, link_payments: str, mb_way_payments: str, mobilepay_payments: str, multibanco_payments: str, mx_bank_transfer_payments: str, naver_pay_payments: str, nz_bank_account_becs_debit_payments: str, oxxo_payments: str, p24_payments: str, pay_by_bank_payments: str, payco_payments: str, paynow_payments: str, payto_payments: str, pix_payments: str, promptpay_payments: str, revolut_pay_payments: str, samsung_pay_payments: str, satispay_payments: str, sepa_bank_transfer_payments: str, sepa_debit_payments: str, sofort_payments: str, swish_payments: str, tax_reporting_us_1099_k: str, tax_reporting_us_1099_misc: str, transfers: str, treasury: str, twint_payments: str, upi_payments: str, us_bank_account_ach_payments: str, us_bank_transfer_payments: str, zip_payments: str}, charges_enabled: bool, company: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, address_kana: any?, address_kanji: any?, directors_provided: bool, directorship_declaration: any?, executives_provided: bool, export_license_id: str, export_purpose_code: str, name: str?, name_kana: str?, name_kanji: str?, owners_provided: bool, ownership_declaration: any?, ownership_exemption_reason: str, phone: str?, registration_date: map{day: int?, month: int?, year: int?}, representative_declaration: any?, structure: str, tax_id_provided: bool, tax_id_registrar: str, vat_id_provided: bool, verification: any?}, controller: map{fees: map{payer: str}, is_controller: bool, losses: map{payments: str}, requirement_collection: str, stripe_dashboard: map{type: str}, type: str}, country: str, created: int(unix-time), default_currency: str, details_submitted: bool, email: str?, external_accounts: map{data: [any], has_more: bool, object: str, url: str}, future_requirements: map{alternatives: [map]?, current_deadline: int(unix-time)?, currently_due: [str]?, disabled_reason: str?, errors: [map]?, eventually_due: [str]?, past_due: [str]?, pending_verification: [str]?}, groups: any?, id: str, individual: map{account: str, additional_tos_acceptances: map{account: any?}, address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, address_kana: any?, address_kanji: any?, created: int(unix-time), dob: map{day: int?, month: int?, year: int?}, email: str?, first_name: str?, first_name_kana: str?, first_name_kanji: str?, full_name_aliases: [str], future_requirements: any?, gender: str?, id: str, id_number_provided: bool, id_number_secondary_provided: bool, last_name: str?, last_name_kana: str?, last_name_kanji: str?, maiden_name: str?, metadata: map, nationality: str?, object: str, phone: str?, political_exposure: str, registered_address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, relationship: map{authorizer: bool?, director: bool?, executive: bool?, legal_guardian: bool?, owner: bool?, percent_ownership: num?, representative: bool?, title: str?}, requirements: any?, ssn_last_4_provided: bool, us_cfpb_data: any?, verification: map{additional_document: any?, details: str?, details_code: str?, document: map{back: any?, details: str?, details_code: str?, front: any?}, status: str}}, metadata: map, object: str, payouts_enabled: bool, requirements: map{alternatives: [map]?, current_deadline: int(unix-time)?, currently_due: [str]?, disabled_reason: str?, errors: [map]?, eventually_due: [str]?, past_due: [str]?, pending_verification: [str]?}, settings: any?, tos_acceptance: map{date: int(unix-time)?, ip: str?, service_agreement: str, user_agent: str?}, type: str}

@endgroup

@group apple_pay
@endpoint GET /v1/apple_pay/domains
@optional {domain_name: str, ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/apple_pay/domains
@returns(200) {created: int(unix-time), domain_name: str, id: str, livemode: bool, object: str}

@endpoint DELETE /v1/apple_pay/domains/{domain}
@required {domain: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/apple_pay/domains/{domain}
@required {domain: str}
@optional {expand: [str]}
@returns(200) {created: int(unix-time), domain_name: str, id: str, livemode: bool, object: str}

@endgroup

@group application_fees
@endpoint GET /v1/application_fees
@optional {charge: str, created: any, ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/application_fees/{fee}/refunds/{id}
@required {fee: str, id: str}
@optional {expand: [str]}
@returns(200) {amount: int, balance_transaction: any?, created: int(unix-time), currency: str(currency), fee: any, id: str, metadata: map?, object: str}

@endpoint POST /v1/application_fees/{fee}/refunds/{id}
@required {fee: str, id: str}
@returns(200) {amount: int, balance_transaction: any?, created: int(unix-time), currency: str(currency), fee: any, id: str, metadata: map?, object: str}

@endpoint GET /v1/application_fees/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {account: any, amount: int, amount_refunded: int, application: any, balance_transaction: any?, charge: any, created: int(unix-time), currency: str(currency), fee_source: any?, id: str, livemode: bool, object: str, originating_transaction: any?, refunded: bool, refunds: map{data: [map], has_more: bool, object: str, url: str}}

@endpoint POST /v1/application_fees/{id}/refund
@required {id: str}
@returns(200) {account: any, amount: int, amount_refunded: int, application: any, balance_transaction: any?, charge: any, created: int(unix-time), currency: str(currency), fee_source: any?, id: str, livemode: bool, object: str, originating_transaction: any?, refunded: bool, refunds: map{data: [map], has_more: bool, object: str, url: str}}

@endpoint GET /v1/application_fees/{id}/refunds
@required {id: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/application_fees/{id}/refunds
@required {id: str}
@returns(200) {amount: int, balance_transaction: any?, created: int(unix-time), currency: str(currency), fee: any, id: str, metadata: map?, object: str}

@endgroup

@group apps
@endpoint GET /v1/apps/secrets
@required {scope: map}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/apps/secrets
@returns(200) {created: int(unix-time), deleted: bool, expires_at: int(unix-time)?, id: str, livemode: bool, name: str, object: str, payload: str?, scope: map{type: str, user: str}}

@endpoint POST /v1/apps/secrets/delete
@returns(200) {created: int(unix-time), deleted: bool, expires_at: int(unix-time)?, id: str, livemode: bool, name: str, object: str, payload: str?, scope: map{type: str, user: str}}

@endpoint GET /v1/apps/secrets/find
@required {name: str, scope: map}
@optional {expand: [str]}
@returns(200) {created: int(unix-time), deleted: bool, expires_at: int(unix-time)?, id: str, livemode: bool, name: str, object: str, payload: str?, scope: map{type: str, user: str}}

@endgroup

@group balance
@endpoint GET /v1/balance
@optional {expand: [str]}
@returns(200) {available: [map], connect_reserved: [map], instant_available: [map], issuing: map{available: [map]}, livemode: bool, object: str, pending: [map], refund_and_dispute_prefunding: map{available: [map], pending: [map]}}

@endpoint GET /v1/balance/history
@optional {created: any, currency: str(currency), ending_before: str, expand: [str], limit: int, payout: str, source: str, starting_after: str, type: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/balance/history/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {amount: int, available_on: int(unix-time), balance_type: str, created: int(unix-time), currency: str(currency), description: str?, exchange_rate: num?, fee: int, fee_details: [map], id: str, net: int, object: str, reporting_category: str, source: any?, status: str, type: str}

@endgroup

@group balance_settings
@endpoint GET /v1/balance_settings
@optional {expand: [str]}
@returns(200) {object: str, payments: map{debit_negative_balances: bool?, payouts: any?, settlement_timing: map{delay_days: int, delay_days_override: int}}}

@endpoint POST /v1/balance_settings
@returns(200) {object: str, payments: map{debit_negative_balances: bool?, payouts: any?, settlement_timing: map{delay_days: int, delay_days_override: int}}}

@endgroup

@group balance_transactions
@endpoint GET /v1/balance_transactions
@optional {created: any, currency: str(currency), ending_before: str, expand: [str], limit: int, payout: str, source: str, starting_after: str, type: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/balance_transactions/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {amount: int, available_on: int(unix-time), balance_type: str, created: int(unix-time), currency: str(currency), description: str?, exchange_rate: num?, fee: int, fee_details: [map], id: str, net: int, object: str, reporting_category: str, source: any?, status: str, type: str}

@endgroup

@group billing
@endpoint GET /v1/billing/alerts
@optional {alert_type: str, ending_before: str, expand: [str], limit: int, meter: str, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/billing/alerts
@returns(200) {alert_type: str, id: str, livemode: bool, object: str, status: str?, title: str, usage_threshold: any?}

@endpoint GET /v1/billing/alerts/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {alert_type: str, id: str, livemode: bool, object: str, status: str?, title: str, usage_threshold: any?}

@endpoint POST /v1/billing/alerts/{id}/activate
@required {id: str}
@returns(200) {alert_type: str, id: str, livemode: bool, object: str, status: str?, title: str, usage_threshold: any?}

@endpoint POST /v1/billing/alerts/{id}/archive
@required {id: str}
@returns(200) {alert_type: str, id: str, livemode: bool, object: str, status: str?, title: str, usage_threshold: any?}

@endpoint POST /v1/billing/alerts/{id}/deactivate
@required {id: str}
@returns(200) {alert_type: str, id: str, livemode: bool, object: str, status: str?, title: str, usage_threshold: any?}

@endpoint GET /v1/billing/credit_balance_summary
@required {filter: map}
@optional {customer: str, customer_account: str, expand: [str]}
@returns(200) {balances: [map], customer: any, customer_account: str?, livemode: bool, object: str}

@endpoint GET /v1/billing/credit_balance_transactions
@optional {credit_grant: str, customer: str, customer_account: str, ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/billing/credit_balance_transactions/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {created: int(unix-time), credit: any?, credit_grant: any, debit: any?, effective_at: int(unix-time), id: str, livemode: bool, object: str, test_clock: any?, type: str?}

@endpoint GET /v1/billing/credit_grants
@optional {customer: str, customer_account: str, ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/billing/credit_grants
@returns(200) {amount: map{monetary: any?, type: str}, applicability_config: map{scope: map{price_type: str, prices: [map]}}, category: str, created: int(unix-time), customer: any, customer_account: str?, effective_at: int(unix-time)?, expires_at: int(unix-time)?, id: str, livemode: bool, metadata: map, name: str?, object: str, priority: int?, test_clock: any?, updated: int(unix-time), voided_at: int(unix-time)?}

@endpoint GET /v1/billing/credit_grants/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {amount: map{monetary: any?, type: str}, applicability_config: map{scope: map{price_type: str, prices: [map]}}, category: str, created: int(unix-time), customer: any, customer_account: str?, effective_at: int(unix-time)?, expires_at: int(unix-time)?, id: str, livemode: bool, metadata: map, name: str?, object: str, priority: int?, test_clock: any?, updated: int(unix-time), voided_at: int(unix-time)?}

@endpoint POST /v1/billing/credit_grants/{id}
@required {id: str}
@returns(200) {amount: map{monetary: any?, type: str}, applicability_config: map{scope: map{price_type: str, prices: [map]}}, category: str, created: int(unix-time), customer: any, customer_account: str?, effective_at: int(unix-time)?, expires_at: int(unix-time)?, id: str, livemode: bool, metadata: map, name: str?, object: str, priority: int?, test_clock: any?, updated: int(unix-time), voided_at: int(unix-time)?}

@endpoint POST /v1/billing/credit_grants/{id}/expire
@required {id: str}
@returns(200) {amount: map{monetary: any?, type: str}, applicability_config: map{scope: map{price_type: str, prices: [map]}}, category: str, created: int(unix-time), customer: any, customer_account: str?, effective_at: int(unix-time)?, expires_at: int(unix-time)?, id: str, livemode: bool, metadata: map, name: str?, object: str, priority: int?, test_clock: any?, updated: int(unix-time), voided_at: int(unix-time)?}

@endpoint POST /v1/billing/credit_grants/{id}/void
@required {id: str}
@returns(200) {amount: map{monetary: any?, type: str}, applicability_config: map{scope: map{price_type: str, prices: [map]}}, category: str, created: int(unix-time), customer: any, customer_account: str?, effective_at: int(unix-time)?, expires_at: int(unix-time)?, id: str, livemode: bool, metadata: map, name: str?, object: str, priority: int?, test_clock: any?, updated: int(unix-time), voided_at: int(unix-time)?}

@endpoint POST /v1/billing/meter_event_adjustments
@returns(200) {cancel: any?, event_name: str, livemode: bool, object: str, status: str, type: str}

@endpoint POST /v1/billing/meter_events
@returns(200) {created: int(unix-time), event_name: str, identifier: str, livemode: bool, object: str, payload: map, timestamp: int(unix-time)}

@endpoint GET /v1/billing/meters
@optional {ending_before: str, expand: [str], limit: int, starting_after: str, status: str(active/inactive)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/billing/meters
@returns(200) {created: int(unix-time), customer_mapping: map{event_payload_key: str, type: str}, default_aggregation: map{formula: str}, display_name: str, event_name: str, event_time_window: str?, id: str, livemode: bool, object: str, status: str, status_transitions: map{deactivated_at: int(unix-time)?}, updated: int(unix-time), value_settings: map{event_payload_key: str}}

@endpoint GET /v1/billing/meters/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {created: int(unix-time), customer_mapping: map{event_payload_key: str, type: str}, default_aggregation: map{formula: str}, display_name: str, event_name: str, event_time_window: str?, id: str, livemode: bool, object: str, status: str, status_transitions: map{deactivated_at: int(unix-time)?}, updated: int(unix-time), value_settings: map{event_payload_key: str}}

@endpoint POST /v1/billing/meters/{id}
@required {id: str}
@returns(200) {created: int(unix-time), customer_mapping: map{event_payload_key: str, type: str}, default_aggregation: map{formula: str}, display_name: str, event_name: str, event_time_window: str?, id: str, livemode: bool, object: str, status: str, status_transitions: map{deactivated_at: int(unix-time)?}, updated: int(unix-time), value_settings: map{event_payload_key: str}}

@endpoint POST /v1/billing/meters/{id}/deactivate
@required {id: str}
@returns(200) {created: int(unix-time), customer_mapping: map{event_payload_key: str, type: str}, default_aggregation: map{formula: str}, display_name: str, event_name: str, event_time_window: str?, id: str, livemode: bool, object: str, status: str, status_transitions: map{deactivated_at: int(unix-time)?}, updated: int(unix-time), value_settings: map{event_payload_key: str}}

@endpoint GET /v1/billing/meters/{id}/event_summaries
@required {customer: str, end_time: int(unix-time), id: str, start_time: int(unix-time)}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str, value_grouping_window: str(day/hour)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/billing/meters/{id}/reactivate
@required {id: str}
@returns(200) {created: int(unix-time), customer_mapping: map{event_payload_key: str, type: str}, default_aggregation: map{formula: str}, display_name: str, event_name: str, event_time_window: str?, id: str, livemode: bool, object: str, status: str, status_transitions: map{deactivated_at: int(unix-time)?}, updated: int(unix-time), value_settings: map{event_payload_key: str}}

@endgroup

@group billing_portal
@endpoint GET /v1/billing_portal/configurations
@optional {active: bool, ending_before: str, expand: [str], is_default: bool, limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/billing_portal/configurations
@returns(200) {active: bool, application: any?, business_profile: map{headline: str?, privacy_policy_url: str?, terms_of_service_url: str?}, created: int(unix-time), default_return_url: str?, features: map{customer_update: map{allowed_updates: [str], enabled: bool}, invoice_history: map{enabled: bool}, payment_method_update: map{enabled: bool, payment_method_configuration: str?}, subscription_cancel: map{cancellation_reason: map{enabled: bool, options: [str]}, enabled: bool, mode: str, proration_behavior: str}, subscription_update: map{billing_cycle_anchor: str?, default_allowed_updates: [str], enabled: bool, products: [map]?, proration_behavior: str, schedule_at_period_end: map{conditions: [map]}, trial_update_behavior: str}}, id: str, is_default: bool, livemode: bool, login_page: map{enabled: bool, url: str?}, metadata: map?, name: str?, object: str, updated: int(unix-time)}

@endpoint GET /v1/billing_portal/configurations/{configuration}
@required {configuration: str}
@optional {expand: [str]}
@returns(200) {active: bool, application: any?, business_profile: map{headline: str?, privacy_policy_url: str?, terms_of_service_url: str?}, created: int(unix-time), default_return_url: str?, features: map{customer_update: map{allowed_updates: [str], enabled: bool}, invoice_history: map{enabled: bool}, payment_method_update: map{enabled: bool, payment_method_configuration: str?}, subscription_cancel: map{cancellation_reason: map{enabled: bool, options: [str]}, enabled: bool, mode: str, proration_behavior: str}, subscription_update: map{billing_cycle_anchor: str?, default_allowed_updates: [str], enabled: bool, products: [map]?, proration_behavior: str, schedule_at_period_end: map{conditions: [map]}, trial_update_behavior: str}}, id: str, is_default: bool, livemode: bool, login_page: map{enabled: bool, url: str?}, metadata: map?, name: str?, object: str, updated: int(unix-time)}

@endpoint POST /v1/billing_portal/configurations/{configuration}
@required {configuration: str}
@returns(200) {active: bool, application: any?, business_profile: map{headline: str?, privacy_policy_url: str?, terms_of_service_url: str?}, created: int(unix-time), default_return_url: str?, features: map{customer_update: map{allowed_updates: [str], enabled: bool}, invoice_history: map{enabled: bool}, payment_method_update: map{enabled: bool, payment_method_configuration: str?}, subscription_cancel: map{cancellation_reason: map{enabled: bool, options: [str]}, enabled: bool, mode: str, proration_behavior: str}, subscription_update: map{billing_cycle_anchor: str?, default_allowed_updates: [str], enabled: bool, products: [map]?, proration_behavior: str, schedule_at_period_end: map{conditions: [map]}, trial_update_behavior: str}}, id: str, is_default: bool, livemode: bool, login_page: map{enabled: bool, url: str?}, metadata: map?, name: str?, object: str, updated: int(unix-time)}

@endpoint POST /v1/billing_portal/sessions
@returns(200) {configuration: any, created: int(unix-time), customer: str, customer_account: str?, flow: any?, id: str, livemode: bool, locale: str?, object: str, on_behalf_of: str?, return_url: str?, url: str}

@endgroup

@group charges
@endpoint GET /v1/charges
@optional {created: any, customer: str, ending_before: str, expand: [str], limit: int, payment_intent: str, starting_after: str, transfer_group: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/charges
@returns(200) {amount: int, amount_captured: int, amount_refunded: int, application: any?, application_fee: any?, application_fee_amount: int?, balance_transaction: any?, billing_details: map{address: any?, email: str?, name: str?, phone: str?, tax_id: str?}, calculated_statement_descriptor: str?, captured: bool, created: int(unix-time), currency: str(currency), customer: any?, description: str?, disputed: bool, failure_balance_transaction: any?, failure_code: str?, failure_message: str?, fraud_details: any?, id: str, livemode: bool, metadata: map, object: str, on_behalf_of: any?, outcome: any?, paid: bool, payment_intent: any?, payment_method: str?, payment_method_details: any?, presentment_details: map{presentment_amount: int, presentment_currency: str}, radar_options: map{session: str}, receipt_email: str?, receipt_number: str?, receipt_url: str?, refunded: bool, refunds: map?{data: [map], has_more: bool, object: str, url: str}, review: any?, shipping: any?, source_transfer: any?, statement_descriptor: str?, statement_descriptor_suffix: str?, status: str, transfer: any, transfer_data: any?, transfer_group: str?}

@endpoint GET /v1/charges/search
@required {query: str}
@optional {expand: [str], limit: int, page: str}
@returns(200) {data: [map], has_more: bool, next_page: str?, object: str, total_count: int, url: str}

@endpoint GET /v1/charges/{charge}
@required {charge: str}
@optional {expand: [str]}
@returns(200) {amount: int, amount_captured: int, amount_refunded: int, application: any?, application_fee: any?, application_fee_amount: int?, balance_transaction: any?, billing_details: map{address: any?, email: str?, name: str?, phone: str?, tax_id: str?}, calculated_statement_descriptor: str?, captured: bool, created: int(unix-time), currency: str(currency), customer: any?, description: str?, disputed: bool, failure_balance_transaction: any?, failure_code: str?, failure_message: str?, fraud_details: any?, id: str, livemode: bool, metadata: map, object: str, on_behalf_of: any?, outcome: any?, paid: bool, payment_intent: any?, payment_method: str?, payment_method_details: any?, presentment_details: map{presentment_amount: int, presentment_currency: str}, radar_options: map{session: str}, receipt_email: str?, receipt_number: str?, receipt_url: str?, refunded: bool, refunds: map?{data: [map], has_more: bool, object: str, url: str}, review: any?, shipping: any?, source_transfer: any?, statement_descriptor: str?, statement_descriptor_suffix: str?, status: str, transfer: any, transfer_data: any?, transfer_group: str?}

@endpoint POST /v1/charges/{charge}
@required {charge: str}
@returns(200) {amount: int, amount_captured: int, amount_refunded: int, application: any?, application_fee: any?, application_fee_amount: int?, balance_transaction: any?, billing_details: map{address: any?, email: str?, name: str?, phone: str?, tax_id: str?}, calculated_statement_descriptor: str?, captured: bool, created: int(unix-time), currency: str(currency), customer: any?, description: str?, disputed: bool, failure_balance_transaction: any?, failure_code: str?, failure_message: str?, fraud_details: any?, id: str, livemode: bool, metadata: map, object: str, on_behalf_of: any?, outcome: any?, paid: bool, payment_intent: any?, payment_method: str?, payment_method_details: any?, presentment_details: map{presentment_amount: int, presentment_currency: str}, radar_options: map{session: str}, receipt_email: str?, receipt_number: str?, receipt_url: str?, refunded: bool, refunds: map?{data: [map], has_more: bool, object: str, url: str}, review: any?, shipping: any?, source_transfer: any?, statement_descriptor: str?, statement_descriptor_suffix: str?, status: str, transfer: any, transfer_data: any?, transfer_group: str?}

@endpoint POST /v1/charges/{charge}/capture
@required {charge: str}
@returns(200) {amount: int, amount_captured: int, amount_refunded: int, application: any?, application_fee: any?, application_fee_amount: int?, balance_transaction: any?, billing_details: map{address: any?, email: str?, name: str?, phone: str?, tax_id: str?}, calculated_statement_descriptor: str?, captured: bool, created: int(unix-time), currency: str(currency), customer: any?, description: str?, disputed: bool, failure_balance_transaction: any?, failure_code: str?, failure_message: str?, fraud_details: any?, id: str, livemode: bool, metadata: map, object: str, on_behalf_of: any?, outcome: any?, paid: bool, payment_intent: any?, payment_method: str?, payment_method_details: any?, presentment_details: map{presentment_amount: int, presentment_currency: str}, radar_options: map{session: str}, receipt_email: str?, receipt_number: str?, receipt_url: str?, refunded: bool, refunds: map?{data: [map], has_more: bool, object: str, url: str}, review: any?, shipping: any?, source_transfer: any?, statement_descriptor: str?, statement_descriptor_suffix: str?, status: str, transfer: any, transfer_data: any?, transfer_group: str?}

@endpoint GET /v1/charges/{charge}/dispute
@required {charge: str}
@optional {expand: [str]}
@returns(200) {amount: int, balance_transactions: [map], charge: any, created: int(unix-time), currency: str(currency), enhanced_eligibility_types: [str], evidence: map{access_activity_log: str?, billing_address: str?, cancellation_policy: any?, cancellation_policy_disclosure: str?, cancellation_rebuttal: str?, customer_communication: any?, customer_email_address: str?, customer_name: str?, customer_purchase_ip: str?, customer_signature: any?, duplicate_charge_documentation: any?, duplicate_charge_explanation: str?, duplicate_charge_id: str?, enhanced_evidence: map{visa_compelling_evidence_3: map{disputed_transaction: any?, prior_undisputed_transactions: [map]}, visa_compliance: map{fee_acknowledged: bool}}, product_description: str?, receipt: any?, refund_policy: any?, refund_policy_disclosure: str?, refund_refusal_explanation: str?, service_date: str?, service_documentation: any?, shipping_address: str?, shipping_carrier: str?, shipping_date: str?, shipping_documentation: any?, shipping_tracking_number: str?, uncategorized_file: any?, uncategorized_text: str?}, evidence_details: map{due_by: int(unix-time)?, enhanced_eligibility: map{visa_compelling_evidence_3: map{required_actions: [str], status: str}, visa_compliance: map{status: str}}, has_evidence: bool, past_due: bool, submission_count: int}, id: str, is_charge_refundable: bool, livemode: bool, metadata: map, object: str, payment_intent: any?, payment_method_details: map{amazon_pay: map{dispute_type: str?}, card: map{brand: str, case_type: str, network_reason_code: str?}, klarna: map{chargeback_loss_reason_code: str, reason_code: str?}, paypal: map{case_id: str?, reason_code: str?}, type: str}, reason: str, status: str}

@endpoint POST /v1/charges/{charge}/dispute
@required {charge: str}
@returns(200) {amount: int, balance_transactions: [map], charge: any, created: int(unix-time), currency: str(currency), enhanced_eligibility_types: [str], evidence: map{access_activity_log: str?, billing_address: str?, cancellation_policy: any?, cancellation_policy_disclosure: str?, cancellation_rebuttal: str?, customer_communication: any?, customer_email_address: str?, customer_name: str?, customer_purchase_ip: str?, customer_signature: any?, duplicate_charge_documentation: any?, duplicate_charge_explanation: str?, duplicate_charge_id: str?, enhanced_evidence: map{visa_compelling_evidence_3: map{disputed_transaction: any?, prior_undisputed_transactions: [map]}, visa_compliance: map{fee_acknowledged: bool}}, product_description: str?, receipt: any?, refund_policy: any?, refund_policy_disclosure: str?, refund_refusal_explanation: str?, service_date: str?, service_documentation: any?, shipping_address: str?, shipping_carrier: str?, shipping_date: str?, shipping_documentation: any?, shipping_tracking_number: str?, uncategorized_file: any?, uncategorized_text: str?}, evidence_details: map{due_by: int(unix-time)?, enhanced_eligibility: map{visa_compelling_evidence_3: map{required_actions: [str], status: str}, visa_compliance: map{status: str}}, has_evidence: bool, past_due: bool, submission_count: int}, id: str, is_charge_refundable: bool, livemode: bool, metadata: map, object: str, payment_intent: any?, payment_method_details: map{amazon_pay: map{dispute_type: str?}, card: map{brand: str, case_type: str, network_reason_code: str?}, klarna: map{chargeback_loss_reason_code: str, reason_code: str?}, paypal: map{case_id: str?, reason_code: str?}, type: str}, reason: str, status: str}

@endpoint POST /v1/charges/{charge}/dispute/close
@required {charge: str}
@returns(200) {amount: int, balance_transactions: [map], charge: any, created: int(unix-time), currency: str(currency), enhanced_eligibility_types: [str], evidence: map{access_activity_log: str?, billing_address: str?, cancellation_policy: any?, cancellation_policy_disclosure: str?, cancellation_rebuttal: str?, customer_communication: any?, customer_email_address: str?, customer_name: str?, customer_purchase_ip: str?, customer_signature: any?, duplicate_charge_documentation: any?, duplicate_charge_explanation: str?, duplicate_charge_id: str?, enhanced_evidence: map{visa_compelling_evidence_3: map{disputed_transaction: any?, prior_undisputed_transactions: [map]}, visa_compliance: map{fee_acknowledged: bool}}, product_description: str?, receipt: any?, refund_policy: any?, refund_policy_disclosure: str?, refund_refusal_explanation: str?, service_date: str?, service_documentation: any?, shipping_address: str?, shipping_carrier: str?, shipping_date: str?, shipping_documentation: any?, shipping_tracking_number: str?, uncategorized_file: any?, uncategorized_text: str?}, evidence_details: map{due_by: int(unix-time)?, enhanced_eligibility: map{visa_compelling_evidence_3: map{required_actions: [str], status: str}, visa_compliance: map{status: str}}, has_evidence: bool, past_due: bool, submission_count: int}, id: str, is_charge_refundable: bool, livemode: bool, metadata: map, object: str, payment_intent: any?, payment_method_details: map{amazon_pay: map{dispute_type: str?}, card: map{brand: str, case_type: str, network_reason_code: str?}, klarna: map{chargeback_loss_reason_code: str, reason_code: str?}, paypal: map{case_id: str?, reason_code: str?}, type: str}, reason: str, status: str}

@endpoint POST /v1/charges/{charge}/refund
@required {charge: str}
@returns(200) {amount: int, amount_captured: int, amount_refunded: int, application: any?, application_fee: any?, application_fee_amount: int?, balance_transaction: any?, billing_details: map{address: any?, email: str?, name: str?, phone: str?, tax_id: str?}, calculated_statement_descriptor: str?, captured: bool, created: int(unix-time), currency: str(currency), customer: any?, description: str?, disputed: bool, failure_balance_transaction: any?, failure_code: str?, failure_message: str?, fraud_details: any?, id: str, livemode: bool, metadata: map, object: str, on_behalf_of: any?, outcome: any?, paid: bool, payment_intent: any?, payment_method: str?, payment_method_details: any?, presentment_details: map{presentment_amount: int, presentment_currency: str}, radar_options: map{session: str}, receipt_email: str?, receipt_number: str?, receipt_url: str?, refunded: bool, refunds: map?{data: [map], has_more: bool, object: str, url: str}, review: any?, shipping: any?, source_transfer: any?, statement_descriptor: str?, statement_descriptor_suffix: str?, status: str, transfer: any, transfer_data: any?, transfer_group: str?}

@endpoint GET /v1/charges/{charge}/refunds
@required {charge: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/charges/{charge}/refunds
@required {charge: str}
@returns(200) {amount: int, balance_transaction: any?, charge: any?, created: int(unix-time), currency: str(currency), description: str, destination_details: map{affirm: map, afterpay_clearpay: map, alipay: map, alma: map, amazon_pay: map, au_bank_transfer: map, blik: map{network_decline_code: str?, reference: str?, reference_status: str?}, br_bank_transfer: map{reference: str?, reference_status: str?}, card: map{reference: str, reference_status: str, reference_type: str, type: str}, cashapp: map, crypto: map{reference: str?}, customer_cash_balance: map, eps: map, eu_bank_transfer: map{reference: str?, reference_status: str?}, gb_bank_transfer: map{reference: str?, reference_status: str?}, giropay: map, grabpay: map, jp_bank_transfer: map{reference: str?, reference_status: str?}, klarna: map, mb_way: map{reference: str?, reference_status: str?}, multibanco: map{reference: str?, reference_status: str?}, mx_bank_transfer: map{reference: str?, reference_status: str?}, nz_bank_transfer: map, p24: map{reference: str?, reference_status: str?}, paynow: map, paypal: map{network_decline_code: str?}, pix: map, revolut: map, sofort: map, swish: map{network_decline_code: str?, reference: str?, reference_status: str?}, th_bank_transfer: map{reference: str?, reference_status: str?}, twint: map, type: str, us_bank_transfer: map{reference: str?, reference_status: str?}, wechat_pay: map, zip: map}, failure_balance_transaction: any, failure_reason: str, id: str, instructions_email: str, metadata: map?, next_action: map{display_details: map{email_sent: map{email_sent_at: int(unix-time), email_sent_to: str}, expires_at: int(unix-time)}, type: str}, object: str, payment_intent: any?, pending_reason: str, presentment_details: map{presentment_amount: int, presentment_currency: str}, reason: str?, receipt_number: str?, source_transfer_reversal: any?, status: str?, transfer_reversal: any?}

@endpoint GET /v1/charges/{charge}/refunds/{refund}
@required {charge: str, refund: str}
@optional {expand: [str]}
@returns(200) {amount: int, balance_transaction: any?, charge: any?, created: int(unix-time), currency: str(currency), description: str, destination_details: map{affirm: map, afterpay_clearpay: map, alipay: map, alma: map, amazon_pay: map, au_bank_transfer: map, blik: map{network_decline_code: str?, reference: str?, reference_status: str?}, br_bank_transfer: map{reference: str?, reference_status: str?}, card: map{reference: str, reference_status: str, reference_type: str, type: str}, cashapp: map, crypto: map{reference: str?}, customer_cash_balance: map, eps: map, eu_bank_transfer: map{reference: str?, reference_status: str?}, gb_bank_transfer: map{reference: str?, reference_status: str?}, giropay: map, grabpay: map, jp_bank_transfer: map{reference: str?, reference_status: str?}, klarna: map, mb_way: map{reference: str?, reference_status: str?}, multibanco: map{reference: str?, reference_status: str?}, mx_bank_transfer: map{reference: str?, reference_status: str?}, nz_bank_transfer: map, p24: map{reference: str?, reference_status: str?}, paynow: map, paypal: map{network_decline_code: str?}, pix: map, revolut: map, sofort: map, swish: map{network_decline_code: str?, reference: str?, reference_status: str?}, th_bank_transfer: map{reference: str?, reference_status: str?}, twint: map, type: str, us_bank_transfer: map{reference: str?, reference_status: str?}, wechat_pay: map, zip: map}, failure_balance_transaction: any, failure_reason: str, id: str, instructions_email: str, metadata: map?, next_action: map{display_details: map{email_sent: map{email_sent_at: int(unix-time), email_sent_to: str}, expires_at: int(unix-time)}, type: str}, object: str, payment_intent: any?, pending_reason: str, presentment_details: map{presentment_amount: int, presentment_currency: str}, reason: str?, receipt_number: str?, source_transfer_reversal: any?, status: str?, transfer_reversal: any?}

@endpoint POST /v1/charges/{charge}/refunds/{refund}
@required {charge: str, refund: str}
@returns(200) {amount: int, balance_transaction: any?, charge: any?, created: int(unix-time), currency: str(currency), description: str, destination_details: map{affirm: map, afterpay_clearpay: map, alipay: map, alma: map, amazon_pay: map, au_bank_transfer: map, blik: map{network_decline_code: str?, reference: str?, reference_status: str?}, br_bank_transfer: map{reference: str?, reference_status: str?}, card: map{reference: str, reference_status: str, reference_type: str, type: str}, cashapp: map, crypto: map{reference: str?}, customer_cash_balance: map, eps: map, eu_bank_transfer: map{reference: str?, reference_status: str?}, gb_bank_transfer: map{reference: str?, reference_status: str?}, giropay: map, grabpay: map, jp_bank_transfer: map{reference: str?, reference_status: str?}, klarna: map, mb_way: map{reference: str?, reference_status: str?}, multibanco: map{reference: str?, reference_status: str?}, mx_bank_transfer: map{reference: str?, reference_status: str?}, nz_bank_transfer: map, p24: map{reference: str?, reference_status: str?}, paynow: map, paypal: map{network_decline_code: str?}, pix: map, revolut: map, sofort: map, swish: map{network_decline_code: str?, reference: str?, reference_status: str?}, th_bank_transfer: map{reference: str?, reference_status: str?}, twint: map, type: str, us_bank_transfer: map{reference: str?, reference_status: str?}, wechat_pay: map, zip: map}, failure_balance_transaction: any, failure_reason: str, id: str, instructions_email: str, metadata: map?, next_action: map{display_details: map{email_sent: map{email_sent_at: int(unix-time), email_sent_to: str}, expires_at: int(unix-time)}, type: str}, object: str, payment_intent: any?, pending_reason: str, presentment_details: map{presentment_amount: int, presentment_currency: str}, reason: str?, receipt_number: str?, source_transfer_reversal: any?, status: str?, transfer_reversal: any?}

@endgroup

@group checkout
@endpoint GET /v1/checkout/sessions
@optional {created: any, customer: str, customer_account: str, customer_details: map, ending_before: str, expand: [str], limit: int, payment_intent: str, payment_link: str, starting_after: str, status: str(complete/expired/open), subscription: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/checkout/sessions
@returns(200) {adaptive_pricing: any?, after_expiration: any?, allow_promotion_codes: bool?, amount_subtotal: int?, amount_total: int?, automatic_tax: map{enabled: bool, liability: any?, provider: str?, status: str?}, billing_address_collection: str?, branding_settings: map{background_color: str, border_style: str, button_color: str, display_name: str, font_family: str, icon: any?, logo: any?}, cancel_url: str?, client_reference_id: str?, client_secret: str?, collected_information: any?, consent: any?, consent_collection: any?, created: int(unix-time), currency: str(currency)?, currency_conversion: any?, custom_fields: [map], custom_text: map{after_submit: any?, shipping_address: any?, submit: any?, terms_of_service_acceptance: any?}, customer: any?, customer_account: str?, customer_creation: str?, customer_details: any?, customer_email: str?, discounts: [map]?, excluded_payment_method_types: [str], expires_at: int(unix-time), id: str, integration_identifier: str?, invoice: any?, invoice_creation: any?, line_items: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, locale: str?, metadata: map?, mode: str, name_collection: map{business: map{enabled: bool, optional: bool}, individual: map{enabled: bool, optional: bool}}, object: str, optional_items: [map]?, origin_context: str?, payment_intent: any?, payment_link: any?, payment_method_collection: str?, payment_method_configuration_details: any?, payment_method_options: any?, payment_method_types: [str], payment_status: str, permissions: any?, phone_number_collection: map{enabled: bool}, presentment_details: map{presentment_amount: int, presentment_currency: str}, recovered_from: str?, redirect_on_completion: str, return_url: str, saved_payment_method_options: any?, setup_intent: any?, shipping_address_collection: any?, shipping_cost: any?, shipping_options: [map], status: str?, submit_type: str?, subscription: any?, success_url: str?, tax_id_collection: map{enabled: bool, required: str}, total_details: any?, ui_mode: str?, url: str?, wallet_options: any?}

@endpoint GET /v1/checkout/sessions/{session}
@required {session: str}
@optional {expand: [str]}
@returns(200) {adaptive_pricing: any?, after_expiration: any?, allow_promotion_codes: bool?, amount_subtotal: int?, amount_total: int?, automatic_tax: map{enabled: bool, liability: any?, provider: str?, status: str?}, billing_address_collection: str?, branding_settings: map{background_color: str, border_style: str, button_color: str, display_name: str, font_family: str, icon: any?, logo: any?}, cancel_url: str?, client_reference_id: str?, client_secret: str?, collected_information: any?, consent: any?, consent_collection: any?, created: int(unix-time), currency: str(currency)?, currency_conversion: any?, custom_fields: [map], custom_text: map{after_submit: any?, shipping_address: any?, submit: any?, terms_of_service_acceptance: any?}, customer: any?, customer_account: str?, customer_creation: str?, customer_details: any?, customer_email: str?, discounts: [map]?, excluded_payment_method_types: [str], expires_at: int(unix-time), id: str, integration_identifier: str?, invoice: any?, invoice_creation: any?, line_items: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, locale: str?, metadata: map?, mode: str, name_collection: map{business: map{enabled: bool, optional: bool}, individual: map{enabled: bool, optional: bool}}, object: str, optional_items: [map]?, origin_context: str?, payment_intent: any?, payment_link: any?, payment_method_collection: str?, payment_method_configuration_details: any?, payment_method_options: any?, payment_method_types: [str], payment_status: str, permissions: any?, phone_number_collection: map{enabled: bool}, presentment_details: map{presentment_amount: int, presentment_currency: str}, recovered_from: str?, redirect_on_completion: str, return_url: str, saved_payment_method_options: any?, setup_intent: any?, shipping_address_collection: any?, shipping_cost: any?, shipping_options: [map], status: str?, submit_type: str?, subscription: any?, success_url: str?, tax_id_collection: map{enabled: bool, required: str}, total_details: any?, ui_mode: str?, url: str?, wallet_options: any?}

@endpoint POST /v1/checkout/sessions/{session}
@required {session: str}
@returns(200) {adaptive_pricing: any?, after_expiration: any?, allow_promotion_codes: bool?, amount_subtotal: int?, amount_total: int?, automatic_tax: map{enabled: bool, liability: any?, provider: str?, status: str?}, billing_address_collection: str?, branding_settings: map{background_color: str, border_style: str, button_color: str, display_name: str, font_family: str, icon: any?, logo: any?}, cancel_url: str?, client_reference_id: str?, client_secret: str?, collected_information: any?, consent: any?, consent_collection: any?, created: int(unix-time), currency: str(currency)?, currency_conversion: any?, custom_fields: [map], custom_text: map{after_submit: any?, shipping_address: any?, submit: any?, terms_of_service_acceptance: any?}, customer: any?, customer_account: str?, customer_creation: str?, customer_details: any?, customer_email: str?, discounts: [map]?, excluded_payment_method_types: [str], expires_at: int(unix-time), id: str, integration_identifier: str?, invoice: any?, invoice_creation: any?, line_items: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, locale: str?, metadata: map?, mode: str, name_collection: map{business: map{enabled: bool, optional: bool}, individual: map{enabled: bool, optional: bool}}, object: str, optional_items: [map]?, origin_context: str?, payment_intent: any?, payment_link: any?, payment_method_collection: str?, payment_method_configuration_details: any?, payment_method_options: any?, payment_method_types: [str], payment_status: str, permissions: any?, phone_number_collection: map{enabled: bool}, presentment_details: map{presentment_amount: int, presentment_currency: str}, recovered_from: str?, redirect_on_completion: str, return_url: str, saved_payment_method_options: any?, setup_intent: any?, shipping_address_collection: any?, shipping_cost: any?, shipping_options: [map], status: str?, submit_type: str?, subscription: any?, success_url: str?, tax_id_collection: map{enabled: bool, required: str}, total_details: any?, ui_mode: str?, url: str?, wallet_options: any?}

@endpoint POST /v1/checkout/sessions/{session}/expire
@required {session: str}
@returns(200) {adaptive_pricing: any?, after_expiration: any?, allow_promotion_codes: bool?, amount_subtotal: int?, amount_total: int?, automatic_tax: map{enabled: bool, liability: any?, provider: str?, status: str?}, billing_address_collection: str?, branding_settings: map{background_color: str, border_style: str, button_color: str, display_name: str, font_family: str, icon: any?, logo: any?}, cancel_url: str?, client_reference_id: str?, client_secret: str?, collected_information: any?, consent: any?, consent_collection: any?, created: int(unix-time), currency: str(currency)?, currency_conversion: any?, custom_fields: [map], custom_text: map{after_submit: any?, shipping_address: any?, submit: any?, terms_of_service_acceptance: any?}, customer: any?, customer_account: str?, customer_creation: str?, customer_details: any?, customer_email: str?, discounts: [map]?, excluded_payment_method_types: [str], expires_at: int(unix-time), id: str, integration_identifier: str?, invoice: any?, invoice_creation: any?, line_items: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, locale: str?, metadata: map?, mode: str, name_collection: map{business: map{enabled: bool, optional: bool}, individual: map{enabled: bool, optional: bool}}, object: str, optional_items: [map]?, origin_context: str?, payment_intent: any?, payment_link: any?, payment_method_collection: str?, payment_method_configuration_details: any?, payment_method_options: any?, payment_method_types: [str], payment_status: str, permissions: any?, phone_number_collection: map{enabled: bool}, presentment_details: map{presentment_amount: int, presentment_currency: str}, recovered_from: str?, redirect_on_completion: str, return_url: str, saved_payment_method_options: any?, setup_intent: any?, shipping_address_collection: any?, shipping_cost: any?, shipping_options: [map], status: str?, submit_type: str?, subscription: any?, success_url: str?, tax_id_collection: map{enabled: bool, required: str}, total_details: any?, ui_mode: str?, url: str?, wallet_options: any?}

@endpoint GET /v1/checkout/sessions/{session}/line_items
@required {session: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endgroup

@group climate
@endpoint GET /v1/climate/orders
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/climate/orders
@returns(200) {amount_fees: int, amount_subtotal: int, amount_total: int, beneficiary: map{public_name: str}, canceled_at: int(unix-time)?, cancellation_reason: str?, certificate: str?, confirmed_at: int(unix-time)?, created: int(unix-time), currency: str, delayed_at: int(unix-time)?, delivered_at: int(unix-time)?, delivery_details: [map], expected_delivery_year: int, id: str, livemode: bool, metadata: map, metric_tons: str(decimal), object: str, product: any, product_substituted_at: int(unix-time)?, status: str}

@endpoint GET /v1/climate/orders/{order}
@required {order: str}
@optional {expand: [str]}
@returns(200) {amount_fees: int, amount_subtotal: int, amount_total: int, beneficiary: map{public_name: str}, canceled_at: int(unix-time)?, cancellation_reason: str?, certificate: str?, confirmed_at: int(unix-time)?, created: int(unix-time), currency: str, delayed_at: int(unix-time)?, delivered_at: int(unix-time)?, delivery_details: [map], expected_delivery_year: int, id: str, livemode: bool, metadata: map, metric_tons: str(decimal), object: str, product: any, product_substituted_at: int(unix-time)?, status: str}

@endpoint POST /v1/climate/orders/{order}
@required {order: str}
@returns(200) {amount_fees: int, amount_subtotal: int, amount_total: int, beneficiary: map{public_name: str}, canceled_at: int(unix-time)?, cancellation_reason: str?, certificate: str?, confirmed_at: int(unix-time)?, created: int(unix-time), currency: str, delayed_at: int(unix-time)?, delivered_at: int(unix-time)?, delivery_details: [map], expected_delivery_year: int, id: str, livemode: bool, metadata: map, metric_tons: str(decimal), object: str, product: any, product_substituted_at: int(unix-time)?, status: str}

@endpoint POST /v1/climate/orders/{order}/cancel
@required {order: str}
@returns(200) {amount_fees: int, amount_subtotal: int, amount_total: int, beneficiary: map{public_name: str}, canceled_at: int(unix-time)?, cancellation_reason: str?, certificate: str?, confirmed_at: int(unix-time)?, created: int(unix-time), currency: str, delayed_at: int(unix-time)?, delivered_at: int(unix-time)?, delivery_details: [map], expected_delivery_year: int, id: str, livemode: bool, metadata: map, metric_tons: str(decimal), object: str, product: any, product_substituted_at: int(unix-time)?, status: str}

@endpoint GET /v1/climate/products
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/climate/products/{product}
@required {product: str}
@optional {expand: [str]}
@returns(200) {created: int(unix-time), current_prices_per_metric_ton: map, delivery_year: int?, id: str, livemode: bool, metric_tons_available: str(decimal), name: str, object: str, suppliers: [map]}

@endpoint GET /v1/climate/suppliers
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/climate/suppliers/{supplier}
@required {supplier: str}
@optional {expand: [str]}
@returns(200) {id: str, info_url: str, livemode: bool, locations: [map], name: str, object: str, removal_pathway: str}

@endgroup

@group confirmation_tokens
@endpoint GET /v1/confirmation_tokens/{confirmation_token}
@required {confirmation_token: str}
@optional {expand: [str]}
@returns(200) {created: int(unix-time), expires_at: int(unix-time)?, id: str, livemode: bool, mandate_data: any?, object: str, payment_intent: str?, payment_method_options: any?, payment_method_preview: any?, return_url: str?, setup_future_usage: str?, setup_intent: str?, shipping: any?, use_stripe_sdk: bool}

@endgroup

@group country_specs
@endpoint GET /v1/country_specs
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/country_specs/{country}
@required {country: str}
@optional {expand: [str]}
@returns(200) {default_currency: str, id: str, object: str, supported_bank_account_currencies: map, supported_payment_currencies: [str], supported_payment_methods: [str], supported_transfer_countries: [str], verification_fields: map{company: map{additional: [str], minimum: [str]}, individual: map{additional: [str], minimum: [str]}}}

@endgroup

@group coupons
@endpoint GET /v1/coupons
@optional {created: any, ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/coupons
@returns(200) {amount_off: int?, applies_to: map{products: [str]}, created: int(unix-time), currency: str(currency)?, currency_options: map, duration: str, duration_in_months: int?, id: str, livemode: bool, max_redemptions: int?, metadata: map?, name: str?, object: str, percent_off: num?, redeem_by: int(unix-time)?, times_redeemed: int, valid: bool}

@endpoint DELETE /v1/coupons/{coupon}
@required {coupon: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/coupons/{coupon}
@required {coupon: str}
@optional {expand: [str]}
@returns(200) {amount_off: int?, applies_to: map{products: [str]}, created: int(unix-time), currency: str(currency)?, currency_options: map, duration: str, duration_in_months: int?, id: str, livemode: bool, max_redemptions: int?, metadata: map?, name: str?, object: str, percent_off: num?, redeem_by: int(unix-time)?, times_redeemed: int, valid: bool}

@endpoint POST /v1/coupons/{coupon}
@required {coupon: str}
@returns(200) {amount_off: int?, applies_to: map{products: [str]}, created: int(unix-time), currency: str(currency)?, currency_options: map, duration: str, duration_in_months: int?, id: str, livemode: bool, max_redemptions: int?, metadata: map?, name: str?, object: str, percent_off: num?, redeem_by: int(unix-time)?, times_redeemed: int, valid: bool}

@endgroup

@group credit_notes
@endpoint GET /v1/credit_notes
@optional {created: any, customer: str, customer_account: str, ending_before: str, expand: [str], invoice: str, limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/credit_notes
@returns(200) {amount: int, amount_shipping: int, created: int(unix-time), currency: str(currency), customer: any, customer_account: str?, customer_balance_transaction: any?, discount_amount: int, discount_amounts: [map], effective_at: int(unix-time)?, id: str, invoice: any, lines: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, memo: str?, metadata: map?, number: str, object: str, out_of_band_amount: int?, pdf: str, post_payment_amount: int, pre_payment_amount: int, pretax_credit_amounts: [map], reason: str?, refunds: [map], shipping_cost: any?, status: str, subtotal: int, subtotal_excluding_tax: int?, total: int, total_excluding_tax: int?, total_taxes: [map]?, type: str, voided_at: int(unix-time)?}

@endpoint GET /v1/credit_notes/preview
@required {invoice: str}
@optional {amount: int, credit_amount: int, effective_at: int(unix-time), email_type: str(credit_note/none), expand: [str], lines: [map], memo: str, metadata: map, out_of_band_amount: int, reason: str(duplicate/fraudulent/order_change/product_unsatisfactory), refund_amount: int, refunds: [map], shipping_cost: map}
@returns(200) {amount: int, amount_shipping: int, created: int(unix-time), currency: str(currency), customer: any, customer_account: str?, customer_balance_transaction: any?, discount_amount: int, discount_amounts: [map], effective_at: int(unix-time)?, id: str, invoice: any, lines: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, memo: str?, metadata: map?, number: str, object: str, out_of_band_amount: int?, pdf: str, post_payment_amount: int, pre_payment_amount: int, pretax_credit_amounts: [map], reason: str?, refunds: [map], shipping_cost: any?, status: str, subtotal: int, subtotal_excluding_tax: int?, total: int, total_excluding_tax: int?, total_taxes: [map]?, type: str, voided_at: int(unix-time)?}

@endpoint GET /v1/credit_notes/preview/lines
@required {invoice: str}
@optional {amount: int, credit_amount: int, effective_at: int(unix-time), email_type: str(credit_note/none), ending_before: str, expand: [str], limit: int, lines: [map], memo: str, metadata: map, out_of_band_amount: int, reason: str(duplicate/fraudulent/order_change/product_unsatisfactory), refund_amount: int, refunds: [map], shipping_cost: map, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/credit_notes/{credit_note}/lines
@required {credit_note: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/credit_notes/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {amount: int, amount_shipping: int, created: int(unix-time), currency: str(currency), customer: any, customer_account: str?, customer_balance_transaction: any?, discount_amount: int, discount_amounts: [map], effective_at: int(unix-time)?, id: str, invoice: any, lines: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, memo: str?, metadata: map?, number: str, object: str, out_of_band_amount: int?, pdf: str, post_payment_amount: int, pre_payment_amount: int, pretax_credit_amounts: [map], reason: str?, refunds: [map], shipping_cost: any?, status: str, subtotal: int, subtotal_excluding_tax: int?, total: int, total_excluding_tax: int?, total_taxes: [map]?, type: str, voided_at: int(unix-time)?}

@endpoint POST /v1/credit_notes/{id}
@required {id: str}
@returns(200) {amount: int, amount_shipping: int, created: int(unix-time), currency: str(currency), customer: any, customer_account: str?, customer_balance_transaction: any?, discount_amount: int, discount_amounts: [map], effective_at: int(unix-time)?, id: str, invoice: any, lines: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, memo: str?, metadata: map?, number: str, object: str, out_of_band_amount: int?, pdf: str, post_payment_amount: int, pre_payment_amount: int, pretax_credit_amounts: [map], reason: str?, refunds: [map], shipping_cost: any?, status: str, subtotal: int, subtotal_excluding_tax: int?, total: int, total_excluding_tax: int?, total_taxes: [map]?, type: str, voided_at: int(unix-time)?}

@endpoint POST /v1/credit_notes/{id}/void
@required {id: str}
@returns(200) {amount: int, amount_shipping: int, created: int(unix-time), currency: str(currency), customer: any, customer_account: str?, customer_balance_transaction: any?, discount_amount: int, discount_amounts: [map], effective_at: int(unix-time)?, id: str, invoice: any, lines: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, memo: str?, metadata: map?, number: str, object: str, out_of_band_amount: int?, pdf: str, post_payment_amount: int, pre_payment_amount: int, pretax_credit_amounts: [map], reason: str?, refunds: [map], shipping_cost: any?, status: str, subtotal: int, subtotal_excluding_tax: int?, total: int, total_excluding_tax: int?, total_taxes: [map]?, type: str, voided_at: int(unix-time)?}

@endgroup

@group customer_sessions
@endpoint POST /v1/customer_sessions
@returns(200) {client_secret: str, components: map{buy_button: map{enabled: bool}, customer_sheet: map{enabled: bool, features: any?}, mobile_payment_element: map{enabled: bool, features: any?}, payment_element: map{enabled: bool, features: any?}, pricing_table: map{enabled: bool}}, created: int(unix-time), customer: any, customer_account: str?, expires_at: int(unix-time), livemode: bool, object: str}

@endgroup

@group customers
@endpoint GET /v1/customers
@optional {created: any, email: str, ending_before: str, expand: [str], limit: int, starting_after: str, test_clock: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/customers
@returns(200) {address: any?, balance: int, business_name: str, cash_balance: any?, created: int(unix-time), currency: str?, customer_account: str?, default_source: any?, delinquent: bool?, description: str?, discount: any?, email: str?, id: str, individual_name: str, invoice_credit_balance: map, invoice_prefix: str?, invoice_settings: map{custom_fields: [map]?, default_payment_method: any?, footer: str?, rendering_options: any?}, livemode: bool, metadata: map, name: str?, next_invoice_sequence: int, object: str, phone: str?, preferred_locales: [str]?, shipping: any?, sources: map{data: [any], has_more: bool, object: str, url: str}, subscriptions: map{data: [map], has_more: bool, object: str, url: str}, tax: map{automatic_tax: str, ip_address: str?, location: any?, provider: str}, tax_exempt: str?, tax_ids: map{data: [map], has_more: bool, object: str, url: str}, test_clock: any?}

@endpoint GET /v1/customers/search
@required {query: str}
@optional {expand: [str], limit: int, page: str}
@returns(200) {data: [map], has_more: bool, next_page: str?, object: str, total_count: int, url: str}

@endpoint DELETE /v1/customers/{customer}
@required {customer: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/customers/{customer}
@required {customer: str}
@optional {expand: [str]}
@returns(200)

@endpoint POST /v1/customers/{customer}
@required {customer: str}
@returns(200) {address: any?, balance: int, business_name: str, cash_balance: any?, created: int(unix-time), currency: str?, customer_account: str?, default_source: any?, delinquent: bool?, description: str?, discount: any?, email: str?, id: str, individual_name: str, invoice_credit_balance: map, invoice_prefix: str?, invoice_settings: map{custom_fields: [map]?, default_payment_method: any?, footer: str?, rendering_options: any?}, livemode: bool, metadata: map, name: str?, next_invoice_sequence: int, object: str, phone: str?, preferred_locales: [str]?, shipping: any?, sources: map{data: [any], has_more: bool, object: str, url: str}, subscriptions: map{data: [map], has_more: bool, object: str, url: str}, tax: map{automatic_tax: str, ip_address: str?, location: any?, provider: str}, tax_exempt: str?, tax_ids: map{data: [map], has_more: bool, object: str, url: str}, test_clock: any?}

@endpoint GET /v1/customers/{customer}/balance_transactions
@required {customer: str}
@optional {created: any, ending_before: str, expand: [str], invoice: str, limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/customers/{customer}/balance_transactions
@required {customer: str}
@returns(200) {amount: int, checkout_session: any?, created: int(unix-time), credit_note: any?, currency: str(currency), customer: any, customer_account: str?, description: str?, ending_balance: int, id: str, invoice: any?, livemode: bool, metadata: map?, object: str, type: str}

@endpoint GET /v1/customers/{customer}/balance_transactions/{transaction}
@required {customer: str, transaction: str}
@optional {expand: [str]}
@returns(200) {amount: int, checkout_session: any?, created: int(unix-time), credit_note: any?, currency: str(currency), customer: any, customer_account: str?, description: str?, ending_balance: int, id: str, invoice: any?, livemode: bool, metadata: map?, object: str, type: str}

@endpoint POST /v1/customers/{customer}/balance_transactions/{transaction}
@required {customer: str, transaction: str}
@returns(200) {amount: int, checkout_session: any?, created: int(unix-time), credit_note: any?, currency: str(currency), customer: any, customer_account: str?, description: str?, ending_balance: int, id: str, invoice: any?, livemode: bool, metadata: map?, object: str, type: str}

@endpoint GET /v1/customers/{customer}/bank_accounts
@required {customer: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/customers/{customer}/bank_accounts
@required {customer: str}
@returns(200)

@endpoint DELETE /v1/customers/{customer}/bank_accounts/{id}
@required {customer: str, id: str}
@returns(200)

@endpoint GET /v1/customers/{customer}/bank_accounts/{id}
@required {customer: str, id: str}
@optional {expand: [str]}
@returns(200) {account: any?, account_holder_name: str?, account_holder_type: str?, account_type: str?, available_payout_methods: [str]?, bank_name: str?, country: str, currency: str(currency), customer: any?, default_for_currency: bool?, fingerprint: str?, future_requirements: any?, id: str, last4: str, metadata: map?, object: str, requirements: any?, routing_number: str?, status: str}

@endpoint POST /v1/customers/{customer}/bank_accounts/{id}
@required {customer: str, id: str}
@returns(200)

@endpoint POST /v1/customers/{customer}/bank_accounts/{id}/verify
@required {customer: str, id: str}
@returns(200) {account: any?, account_holder_name: str?, account_holder_type: str?, account_type: str?, available_payout_methods: [str]?, bank_name: str?, country: str, currency: str(currency), customer: any?, default_for_currency: bool?, fingerprint: str?, future_requirements: any?, id: str, last4: str, metadata: map?, object: str, requirements: any?, routing_number: str?, status: str}

@endpoint GET /v1/customers/{customer}/cards
@required {customer: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/customers/{customer}/cards
@required {customer: str}
@returns(200)

@endpoint DELETE /v1/customers/{customer}/cards/{id}
@required {customer: str, id: str}
@returns(200)

@endpoint GET /v1/customers/{customer}/cards/{id}
@required {customer: str, id: str}
@optional {expand: [str]}
@returns(200) {account: any?, address_city: str?, address_country: str?, address_line1: str?, address_line1_check: str?, address_line2: str?, address_state: str?, address_zip: str?, address_zip_check: str?, allow_redisplay: str?, available_payout_methods: [str]?, brand: str, country: str?, currency: str(currency)?, customer: any?, cvc_check: str?, default_for_currency: bool?, dynamic_last4: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str, id: str, iin: str, last4: str, metadata: map?, name: str?, networks: map{preferred: str?}, object: str, regulated_status: str?, status: str?, tokenization_method: str?}

@endpoint POST /v1/customers/{customer}/cards/{id}
@required {customer: str, id: str}
@returns(200)

@endpoint GET /v1/customers/{customer}/cash_balance
@required {customer: str}
@optional {expand: [str]}
@returns(200) {available: map?, customer: str, customer_account: str?, livemode: bool, object: str, settings: map{reconciliation_mode: str, using_merchant_default: bool}}

@endpoint POST /v1/customers/{customer}/cash_balance
@required {customer: str}
@returns(200) {available: map?, customer: str, customer_account: str?, livemode: bool, object: str, settings: map{reconciliation_mode: str, using_merchant_default: bool}}

@endpoint GET /v1/customers/{customer}/cash_balance_transactions
@required {customer: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/customers/{customer}/cash_balance_transactions/{transaction}
@required {customer: str, transaction: str}
@optional {expand: [str]}
@returns(200) {adjusted_for_overdraft: map{balance_transaction: any, linked_transaction: any}, applied_to_payment: map{payment_intent: any}, created: int(unix-time), currency: str, customer: any, customer_account: str?, ending_balance: int, funded: map{bank_transfer: map{eu_bank_transfer: map{bic: str?, iban_last4: str?, sender_name: str?}, gb_bank_transfer: map{account_number_last4: str?, sender_name: str?, sort_code: str?}, jp_bank_transfer: map{sender_bank: str?, sender_branch: str?, sender_name: str?}, reference: str?, type: str, us_bank_transfer: map{network: str, sender_name: str?}}}, id: str, livemode: bool, net_amount: int, object: str, refunded_from_payment: map{refund: any}, transferred_to_balance: map{balance_transaction: any}, type: str, unapplied_from_payment: map{payment_intent: any}}

@endpoint DELETE /v1/customers/{customer}/discount
@required {customer: str}
@returns(200) {checkout_session: str?, customer: any?, customer_account: str?, deleted: bool, id: str, invoice: str?, invoice_item: str?, object: str, promotion_code: any?, source: map{coupon: any?, type: str}, start: int(unix-time), subscription: str?, subscription_item: str?}

@endpoint GET /v1/customers/{customer}/discount
@required {customer: str}
@optional {expand: [str]}
@returns(200) {checkout_session: str?, customer: any?, customer_account: str?, end: int(unix-time)?, id: str, invoice: str?, invoice_item: str?, object: str, promotion_code: any?, source: map{coupon: any?, type: str}, start: int(unix-time), subscription: str?, subscription_item: str?}

@endpoint POST /v1/customers/{customer}/funding_instructions
@required {customer: str}
@returns(200) {bank_transfer: map{country: str, financial_addresses: [map], type: str}, currency: str, funding_type: str, livemode: bool, object: str}

@endpoint GET /v1/customers/{customer}/payment_methods
@required {customer: str}
@optional {allow_redisplay: str(always/limited/unspecified), ending_before: str, expand: [str], limit: int, starting_after: str, type: str(acss_debit/affirm/afterpay_clearpay/alipay/alma/amazon_pay/au_becs_debit/bacs_debit/bancontact/billie/blik/boleto/card/cashapp/crypto/custom/customer_balance/eps/fpx/giropay/grabpay/ideal/kakao_pay/klarna/konbini/kr_card/link/mb_way/mobilepay/multibanco/naver_pay/nz_bank_account/oxxo/p24/pay_by_bank/payco/paynow/paypal/payto/pix/promptpay/revolut_pay/samsung_pay/satispay/sepa_debit/sofort/swish/twint/upi/us_bank_account/wechat_pay/zip)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/customers/{customer}/payment_methods/{payment_method}
@required {customer: str, payment_method: str}
@optional {expand: [str]}
@returns(200) {acss_debit: map{bank_name: str?, fingerprint: str?, institution_number: str?, last4: str?, transit_number: str?}, affirm: map, afterpay_clearpay: map, alipay: map, allow_redisplay: str, alma: map, amazon_pay: map, au_becs_debit: map{bsb_number: str?, fingerprint: str?, last4: str?}, bacs_debit: map{fingerprint: str?, last4: str?, sort_code: str?}, bancontact: map, billie: map, billing_details: map{address: any?, email: str?, name: str?, phone: str?, tax_id: str?}, blik: map, boleto: map{tax_id: str}, card: map{brand: str, checks: any?, country: str?, display_brand: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str, generated_from: any?, last4: str, networks: any?, regulated_status: str?, three_d_secure_usage: any?, wallet: any?}, card_present: map{brand: str?, brand_product: str?, cardholder_name: str?, country: str?, description: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str?, issuer: str?, last4: str?, networks: any?, offline: any?, preferred_locales: [str]?, read_method: str?, wallet: map{type: str}}, cashapp: map{buyer_id: str?, cashtag: str?}, created: int(unix-time), crypto: map, custom: map{display_name: str?, logo: any?, type: str}, customer: any?, customer_account: str?, customer_balance: map, eps: map{bank: str?}, fpx: map{bank: str}, giropay: map, grabpay: map, id: str, ideal: map{bank: str?, bic: str?}, interac_present: map{brand: str?, cardholder_name: str?, country: str?, description: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str?, issuer: str?, last4: str?, networks: any?, preferred_locales: [str]?, read_method: str?}, kakao_pay: map, klarna: map{dob: any?}, konbini: map, kr_card: map{brand: str?, last4: str?}, link: map{email: str?}, livemode: bool, mb_way: map, metadata: map?, mobilepay: map, multibanco: map, naver_pay: map{buyer_id: str?, funding: str}, nz_bank_account: map{account_holder_name: str?, bank_code: str, bank_name: str, branch_code: str, last4: str, suffix: str?}, object: str, oxxo: map, p24: map{bank: str?}, pay_by_bank: map, payco: map, paynow: map, paypal: map{country: str?, payer_email: str?, payer_id: str?}, payto: map{bsb_number: str?, last4: str?, pay_id: str?}, pix: map, promptpay: map, radar_options: map{session: str}, revolut_pay: map, samsung_pay: map, satispay: map, sepa_debit: map{bank_code: str?, branch_code: str?, country: str?, fingerprint: str?, generated_from: any?, last4: str?}, sofort: map{country: str?}, swish: map, twint: map, type: str, upi: map{vpa: str?}, us_bank_account: map{account_holder_type: str?, account_type: str?, bank_name: str?, financial_connections_account: str?, fingerprint: str?, last4: str?, networks: any?, routing_number: str?, status_details: any?}, wechat_pay: map, zip: map}

@endpoint GET /v1/customers/{customer}/sources
@required {customer: str}
@optional {ending_before: str, expand: [str], limit: int, object: str, starting_after: str}
@returns(200) {data: [any], has_more: bool, object: str, url: str}

@endpoint POST /v1/customers/{customer}/sources
@required {customer: str}
@returns(200)

@endpoint DELETE /v1/customers/{customer}/sources/{id}
@required {customer: str, id: str}
@returns(200)

@endpoint GET /v1/customers/{customer}/sources/{id}
@required {customer: str, id: str}
@optional {expand: [str]}
@returns(200)

@endpoint POST /v1/customers/{customer}/sources/{id}
@required {customer: str, id: str}
@returns(200)

@endpoint POST /v1/customers/{customer}/sources/{id}/verify
@required {customer: str, id: str}
@returns(200) {account: any?, account_holder_name: str?, account_holder_type: str?, account_type: str?, available_payout_methods: [str]?, bank_name: str?, country: str, currency: str(currency), customer: any?, default_for_currency: bool?, fingerprint: str?, future_requirements: any?, id: str, last4: str, metadata: map?, object: str, requirements: any?, routing_number: str?, status: str}

@endpoint GET /v1/customers/{customer}/subscriptions
@required {customer: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/customers/{customer}/subscriptions
@required {customer: str}
@returns(200) {application: any?, application_fee_percent: num?, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?}, billing_cycle_anchor: int(unix-time), billing_cycle_anchor_config: any?, billing_mode: map{flexible: any?, type: str, updated_at: int(unix-time)}, billing_thresholds: any?, cancel_at: int(unix-time)?, cancel_at_period_end: bool, canceled_at: int(unix-time)?, cancellation_details: any?, collection_method: str, created: int(unix-time), currency: str(currency), customer: any, customer_account: str?, days_until_due: int?, default_payment_method: any?, default_source: any?, default_tax_rates: [map]?, description: str?, discounts: [any], ended_at: int(unix-time)?, id: str, invoice_settings: map{account_tax_ids: [any]?, issuer: map{account: any, type: str}}, items: map{data: [map], has_more: bool, object: str, url: str}, latest_invoice: any?, livemode: bool, metadata: map, next_pending_invoice_item_invoice: int(unix-time)?, object: str, on_behalf_of: any?, pause_collection: any?, payment_settings: any?, pending_invoice_item_interval: any?, pending_setup_intent: any?, pending_update: any?, presentment_details: map{presentment_currency: str}, schedule: any?, start_date: int(unix-time), status: str, test_clock: any?, transfer_data: any?, trial_end: int(unix-time)?, trial_settings: any?, trial_start: int(unix-time)?}

@endpoint DELETE /v1/customers/{customer}/subscriptions/{subscription_exposed_id}
@required {customer: str, subscription_exposed_id: str}
@returns(200) {application: any?, application_fee_percent: num?, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?}, billing_cycle_anchor: int(unix-time), billing_cycle_anchor_config: any?, billing_mode: map{flexible: any?, type: str, updated_at: int(unix-time)}, billing_thresholds: any?, cancel_at: int(unix-time)?, cancel_at_period_end: bool, canceled_at: int(unix-time)?, cancellation_details: any?, collection_method: str, created: int(unix-time), currency: str(currency), customer: any, customer_account: str?, days_until_due: int?, default_payment_method: any?, default_source: any?, default_tax_rates: [map]?, description: str?, discounts: [any], ended_at: int(unix-time)?, id: str, invoice_settings: map{account_tax_ids: [any]?, issuer: map{account: any, type: str}}, items: map{data: [map], has_more: bool, object: str, url: str}, latest_invoice: any?, livemode: bool, metadata: map, next_pending_invoice_item_invoice: int(unix-time)?, object: str, on_behalf_of: any?, pause_collection: any?, payment_settings: any?, pending_invoice_item_interval: any?, pending_setup_intent: any?, pending_update: any?, presentment_details: map{presentment_currency: str}, schedule: any?, start_date: int(unix-time), status: str, test_clock: any?, transfer_data: any?, trial_end: int(unix-time)?, trial_settings: any?, trial_start: int(unix-time)?}

@endpoint GET /v1/customers/{customer}/subscriptions/{subscription_exposed_id}
@required {customer: str, subscription_exposed_id: str}
@optional {expand: [str]}
@returns(200) {application: any?, application_fee_percent: num?, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?}, billing_cycle_anchor: int(unix-time), billing_cycle_anchor_config: any?, billing_mode: map{flexible: any?, type: str, updated_at: int(unix-time)}, billing_thresholds: any?, cancel_at: int(unix-time)?, cancel_at_period_end: bool, canceled_at: int(unix-time)?, cancellation_details: any?, collection_method: str, created: int(unix-time), currency: str(currency), customer: any, customer_account: str?, days_until_due: int?, default_payment_method: any?, default_source: any?, default_tax_rates: [map]?, description: str?, discounts: [any], ended_at: int(unix-time)?, id: str, invoice_settings: map{account_tax_ids: [any]?, issuer: map{account: any, type: str}}, items: map{data: [map], has_more: bool, object: str, url: str}, latest_invoice: any?, livemode: bool, metadata: map, next_pending_invoice_item_invoice: int(unix-time)?, object: str, on_behalf_of: any?, pause_collection: any?, payment_settings: any?, pending_invoice_item_interval: any?, pending_setup_intent: any?, pending_update: any?, presentment_details: map{presentment_currency: str}, schedule: any?, start_date: int(unix-time), status: str, test_clock: any?, transfer_data: any?, trial_end: int(unix-time)?, trial_settings: any?, trial_start: int(unix-time)?}

@endpoint POST /v1/customers/{customer}/subscriptions/{subscription_exposed_id}
@required {customer: str, subscription_exposed_id: str}
@returns(200) {application: any?, application_fee_percent: num?, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?}, billing_cycle_anchor: int(unix-time), billing_cycle_anchor_config: any?, billing_mode: map{flexible: any?, type: str, updated_at: int(unix-time)}, billing_thresholds: any?, cancel_at: int(unix-time)?, cancel_at_period_end: bool, canceled_at: int(unix-time)?, cancellation_details: any?, collection_method: str, created: int(unix-time), currency: str(currency), customer: any, customer_account: str?, days_until_due: int?, default_payment_method: any?, default_source: any?, default_tax_rates: [map]?, description: str?, discounts: [any], ended_at: int(unix-time)?, id: str, invoice_settings: map{account_tax_ids: [any]?, issuer: map{account: any, type: str}}, items: map{data: [map], has_more: bool, object: str, url: str}, latest_invoice: any?, livemode: bool, metadata: map, next_pending_invoice_item_invoice: int(unix-time)?, object: str, on_behalf_of: any?, pause_collection: any?, payment_settings: any?, pending_invoice_item_interval: any?, pending_setup_intent: any?, pending_update: any?, presentment_details: map{presentment_currency: str}, schedule: any?, start_date: int(unix-time), status: str, test_clock: any?, transfer_data: any?, trial_end: int(unix-time)?, trial_settings: any?, trial_start: int(unix-time)?}

@endpoint DELETE /v1/customers/{customer}/subscriptions/{subscription_exposed_id}/discount
@required {customer: str, subscription_exposed_id: str}
@returns(200) {checkout_session: str?, customer: any?, customer_account: str?, deleted: bool, id: str, invoice: str?, invoice_item: str?, object: str, promotion_code: any?, source: map{coupon: any?, type: str}, start: int(unix-time), subscription: str?, subscription_item: str?}

@endpoint GET /v1/customers/{customer}/subscriptions/{subscription_exposed_id}/discount
@required {customer: str, subscription_exposed_id: str}
@optional {expand: [str]}
@returns(200) {checkout_session: str?, customer: any?, customer_account: str?, end: int(unix-time)?, id: str, invoice: str?, invoice_item: str?, object: str, promotion_code: any?, source: map{coupon: any?, type: str}, start: int(unix-time), subscription: str?, subscription_item: str?}

@endpoint GET /v1/customers/{customer}/tax_ids
@required {customer: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/customers/{customer}/tax_ids
@required {customer: str}
@returns(200) {country: str?, created: int(unix-time), customer: any?, customer_account: str?, id: str, livemode: bool, object: str, owner: any?, type: str, value: str, verification: any?}

@endpoint DELETE /v1/customers/{customer}/tax_ids/{id}
@required {customer: str, id: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/customers/{customer}/tax_ids/{id}
@required {customer: str, id: str}
@optional {expand: [str]}
@returns(200) {country: str?, created: int(unix-time), customer: any?, customer_account: str?, id: str, livemode: bool, object: str, owner: any?, type: str, value: str, verification: any?}

@endgroup

@group disputes
@endpoint GET /v1/disputes
@optional {charge: str, created: any, ending_before: str, expand: [str], limit: int, payment_intent: str, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/disputes/{dispute}
@required {dispute: str}
@optional {expand: [str]}
@returns(200) {amount: int, balance_transactions: [map], charge: any, created: int(unix-time), currency: str(currency), enhanced_eligibility_types: [str], evidence: map{access_activity_log: str?, billing_address: str?, cancellation_policy: any?, cancellation_policy_disclosure: str?, cancellation_rebuttal: str?, customer_communication: any?, customer_email_address: str?, customer_name: str?, customer_purchase_ip: str?, customer_signature: any?, duplicate_charge_documentation: any?, duplicate_charge_explanation: str?, duplicate_charge_id: str?, enhanced_evidence: map{visa_compelling_evidence_3: map{disputed_transaction: any?, prior_undisputed_transactions: [map]}, visa_compliance: map{fee_acknowledged: bool}}, product_description: str?, receipt: any?, refund_policy: any?, refund_policy_disclosure: str?, refund_refusal_explanation: str?, service_date: str?, service_documentation: any?, shipping_address: str?, shipping_carrier: str?, shipping_date: str?, shipping_documentation: any?, shipping_tracking_number: str?, uncategorized_file: any?, uncategorized_text: str?}, evidence_details: map{due_by: int(unix-time)?, enhanced_eligibility: map{visa_compelling_evidence_3: map{required_actions: [str], status: str}, visa_compliance: map{status: str}}, has_evidence: bool, past_due: bool, submission_count: int}, id: str, is_charge_refundable: bool, livemode: bool, metadata: map, object: str, payment_intent: any?, payment_method_details: map{amazon_pay: map{dispute_type: str?}, card: map{brand: str, case_type: str, network_reason_code: str?}, klarna: map{chargeback_loss_reason_code: str, reason_code: str?}, paypal: map{case_id: str?, reason_code: str?}, type: str}, reason: str, status: str}

@endpoint POST /v1/disputes/{dispute}
@required {dispute: str}
@returns(200) {amount: int, balance_transactions: [map], charge: any, created: int(unix-time), currency: str(currency), enhanced_eligibility_types: [str], evidence: map{access_activity_log: str?, billing_address: str?, cancellation_policy: any?, cancellation_policy_disclosure: str?, cancellation_rebuttal: str?, customer_communication: any?, customer_email_address: str?, customer_name: str?, customer_purchase_ip: str?, customer_signature: any?, duplicate_charge_documentation: any?, duplicate_charge_explanation: str?, duplicate_charge_id: str?, enhanced_evidence: map{visa_compelling_evidence_3: map{disputed_transaction: any?, prior_undisputed_transactions: [map]}, visa_compliance: map{fee_acknowledged: bool}}, product_description: str?, receipt: any?, refund_policy: any?, refund_policy_disclosure: str?, refund_refusal_explanation: str?, service_date: str?, service_documentation: any?, shipping_address: str?, shipping_carrier: str?, shipping_date: str?, shipping_documentation: any?, shipping_tracking_number: str?, uncategorized_file: any?, uncategorized_text: str?}, evidence_details: map{due_by: int(unix-time)?, enhanced_eligibility: map{visa_compelling_evidence_3: map{required_actions: [str], status: str}, visa_compliance: map{status: str}}, has_evidence: bool, past_due: bool, submission_count: int}, id: str, is_charge_refundable: bool, livemode: bool, metadata: map, object: str, payment_intent: any?, payment_method_details: map{amazon_pay: map{dispute_type: str?}, card: map{brand: str, case_type: str, network_reason_code: str?}, klarna: map{chargeback_loss_reason_code: str, reason_code: str?}, paypal: map{case_id: str?, reason_code: str?}, type: str}, reason: str, status: str}

@endpoint POST /v1/disputes/{dispute}/close
@required {dispute: str}
@returns(200) {amount: int, balance_transactions: [map], charge: any, created: int(unix-time), currency: str(currency), enhanced_eligibility_types: [str], evidence: map{access_activity_log: str?, billing_address: str?, cancellation_policy: any?, cancellation_policy_disclosure: str?, cancellation_rebuttal: str?, customer_communication: any?, customer_email_address: str?, customer_name: str?, customer_purchase_ip: str?, customer_signature: any?, duplicate_charge_documentation: any?, duplicate_charge_explanation: str?, duplicate_charge_id: str?, enhanced_evidence: map{visa_compelling_evidence_3: map{disputed_transaction: any?, prior_undisputed_transactions: [map]}, visa_compliance: map{fee_acknowledged: bool}}, product_description: str?, receipt: any?, refund_policy: any?, refund_policy_disclosure: str?, refund_refusal_explanation: str?, service_date: str?, service_documentation: any?, shipping_address: str?, shipping_carrier: str?, shipping_date: str?, shipping_documentation: any?, shipping_tracking_number: str?, uncategorized_file: any?, uncategorized_text: str?}, evidence_details: map{due_by: int(unix-time)?, enhanced_eligibility: map{visa_compelling_evidence_3: map{required_actions: [str], status: str}, visa_compliance: map{status: str}}, has_evidence: bool, past_due: bool, submission_count: int}, id: str, is_charge_refundable: bool, livemode: bool, metadata: map, object: str, payment_intent: any?, payment_method_details: map{amazon_pay: map{dispute_type: str?}, card: map{brand: str, case_type: str, network_reason_code: str?}, klarna: map{chargeback_loss_reason_code: str, reason_code: str?}, paypal: map{case_id: str?, reason_code: str?}, type: str}, reason: str, status: str}

@endgroup

@group entitlements
@endpoint GET /v1/entitlements/active_entitlements
@required {customer: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/entitlements/active_entitlements/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {feature: any, id: str, livemode: bool, lookup_key: str, object: str}

@endpoint GET /v1/entitlements/features
@optional {archived: bool, ending_before: str, expand: [str], limit: int, lookup_key: str, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/entitlements/features
@returns(200) {active: bool, id: str, livemode: bool, lookup_key: str, metadata: map, name: str, object: str}

@endpoint GET /v1/entitlements/features/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {active: bool, id: str, livemode: bool, lookup_key: str, metadata: map, name: str, object: str}

@endpoint POST /v1/entitlements/features/{id}
@required {id: str}
@returns(200) {active: bool, id: str, livemode: bool, lookup_key: str, metadata: map, name: str, object: str}

@endgroup

@group ephemeral_keys
@endpoint POST /v1/ephemeral_keys
@returns(200) {created: int(unix-time), expires: int(unix-time), id: str, livemode: bool, object: str, secret: str}

@endpoint DELETE /v1/ephemeral_keys/{key}
@required {key: str}
@returns(200) {created: int(unix-time), expires: int(unix-time), id: str, livemode: bool, object: str, secret: str}

@endgroup

@group events
@endpoint GET /v1/events
@optional {created: any, delivery_success: bool, ending_before: str, expand: [str], limit: int, starting_after: str, type: str, types: [str]}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/events/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {account: str, api_version: str?, context: str, created: int(unix-time), data: map{object: map, previous_attributes: map}, id: str, livemode: bool, object: str, pending_webhooks: int, request: any?, type: str}

@endgroup

@group exchange_rates
@endpoint GET /v1/exchange_rates
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/exchange_rates/{rate_id}
@required {rate_id: str}
@optional {expand: [str]}
@returns(200) {id: str, object: str, rates: map}

@endgroup

@group external_accounts
@endpoint POST /v1/external_accounts/{id}
@required {id: str}
@returns(200)

@endgroup

@group file_links
@endpoint GET /v1/file_links
@optional {created: any, ending_before: str, expand: [str], expired: bool, file: str, limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/file_links
@returns(200) {created: int(unix-time), expired: bool, expires_at: int(unix-time)?, file: any, id: str, livemode: bool, metadata: map, object: str, url: str?}

@endpoint GET /v1/file_links/{link}
@required {link: str}
@optional {expand: [str]}
@returns(200) {created: int(unix-time), expired: bool, expires_at: int(unix-time)?, file: any, id: str, livemode: bool, metadata: map, object: str, url: str?}

@endpoint POST /v1/file_links/{link}
@required {link: str}
@returns(200) {created: int(unix-time), expired: bool, expires_at: int(unix-time)?, file: any, id: str, livemode: bool, metadata: map, object: str, url: str?}

@endgroup

@group files
@endpoint GET /v1/files
@optional {created: any, ending_before: str, expand: [str], limit: int, purpose: str(account_requirement/additional_verification/business_icon/business_logo/customer_signature/dispute_evidence/document_provider_identity_document/finance_report_run/financial_account_statement/identity_document/identity_document_downloadable/issuing_regulatory_reporting/pci_document/platform_terms_of_service/selfie/sigma_scheduled_query/tax_document_user_upload/terminal_android_apk/terminal_reader_splashscreen/terminal_wifi_certificate/terminal_wifi_private_key), starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/files
@returns(200) {created: int(unix-time), expires_at: int(unix-time)?, filename: str?, id: str, links: map?{data: [map], has_more: bool, object: str, url: str}, object: str, purpose: str, size: int, title: str?, type: str?, url: str?}

@endpoint GET /v1/files/{file}
@required {file: str}
@optional {expand: [str]}
@returns(200) {created: int(unix-time), expires_at: int(unix-time)?, filename: str?, id: str, links: map?{data: [map], has_more: bool, object: str, url: str}, object: str, purpose: str, size: int, title: str?, type: str?, url: str?}

@endgroup

@group financial_connections
@endpoint GET /v1/financial_connections/accounts
@optional {account_holder: map, ending_before: str, expand: [str], limit: int, session: str, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/financial_connections/accounts/{account}
@required {account: str}
@optional {expand: [str]}
@returns(200) {account_holder: any?, account_numbers: [map]?, balance: any?, balance_refresh: any?, category: str, created: int(unix-time), display_name: str?, id: str, institution_name: str, last4: str?, livemode: bool, object: str, ownership: any?, ownership_refresh: any?, permissions: [str]?, status: str, subcategory: str, subscriptions: [str]?, supported_payment_method_types: [str], transaction_refresh: any?}

@endpoint POST /v1/financial_connections/accounts/{account}/disconnect
@required {account: str}
@returns(200) {account_holder: any?, account_numbers: [map]?, balance: any?, balance_refresh: any?, category: str, created: int(unix-time), display_name: str?, id: str, institution_name: str, last4: str?, livemode: bool, object: str, ownership: any?, ownership_refresh: any?, permissions: [str]?, status: str, subcategory: str, subscriptions: [str]?, supported_payment_method_types: [str], transaction_refresh: any?}

@endpoint GET /v1/financial_connections/accounts/{account}/owners
@required {account: str, ownership: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/financial_connections/accounts/{account}/refresh
@required {account: str}
@returns(200) {account_holder: any?, account_numbers: [map]?, balance: any?, balance_refresh: any?, category: str, created: int(unix-time), display_name: str?, id: str, institution_name: str, last4: str?, livemode: bool, object: str, ownership: any?, ownership_refresh: any?, permissions: [str]?, status: str, subcategory: str, subscriptions: [str]?, supported_payment_method_types: [str], transaction_refresh: any?}

@endpoint POST /v1/financial_connections/accounts/{account}/subscribe
@required {account: str}
@returns(200) {account_holder: any?, account_numbers: [map]?, balance: any?, balance_refresh: any?, category: str, created: int(unix-time), display_name: str?, id: str, institution_name: str, last4: str?, livemode: bool, object: str, ownership: any?, ownership_refresh: any?, permissions: [str]?, status: str, subcategory: str, subscriptions: [str]?, supported_payment_method_types: [str], transaction_refresh: any?}

@endpoint POST /v1/financial_connections/accounts/{account}/unsubscribe
@required {account: str}
@returns(200) {account_holder: any?, account_numbers: [map]?, balance: any?, balance_refresh: any?, category: str, created: int(unix-time), display_name: str?, id: str, institution_name: str, last4: str?, livemode: bool, object: str, ownership: any?, ownership_refresh: any?, permissions: [str]?, status: str, subcategory: str, subscriptions: [str]?, supported_payment_method_types: [str], transaction_refresh: any?}

@endpoint POST /v1/financial_connections/sessions
@returns(200) {account_holder: any?, accounts: map{data: [map], has_more: bool, object: str, url: str}, client_secret: str?, filters: map{account_subcategories: [str]?, countries: [str]?}, id: str, livemode: bool, object: str, permissions: [str], prefetch: [str]?, return_url: str}

@endpoint GET /v1/financial_connections/sessions/{session}
@required {session: str}
@optional {expand: [str]}
@returns(200) {account_holder: any?, accounts: map{data: [map], has_more: bool, object: str, url: str}, client_secret: str?, filters: map{account_subcategories: [str]?, countries: [str]?}, id: str, livemode: bool, object: str, permissions: [str], prefetch: [str]?, return_url: str}

@endpoint GET /v1/financial_connections/transactions
@required {account: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str, transacted_at: any, transaction_refresh: map}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/financial_connections/transactions/{transaction}
@required {transaction: str}
@optional {expand: [str]}
@returns(200) {account: str, amount: int, currency: str, description: str, id: str, livemode: bool, object: str, status: str, status_transitions: map{posted_at: int(unix-time)?, void_at: int(unix-time)?}, transacted_at: int(unix-time), transaction_refresh: str, updated: int(unix-time)}

@endgroup

@group forwarding
@endpoint GET /v1/forwarding/requests
@optional {created: map, ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/forwarding/requests
@returns(200) {created: int(unix-time), id: str, livemode: bool, metadata: map?, object: str, payment_method: str, replacements: [str], request_context: any?, request_details: any?, response_details: any?, url: str?}

@endpoint GET /v1/forwarding/requests/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {created: int(unix-time), id: str, livemode: bool, metadata: map?, object: str, payment_method: str, replacements: [str], request_context: any?, request_details: any?, response_details: any?, url: str?}

@endgroup

@group identity
@endpoint GET /v1/identity/verification_reports
@optional {client_reference_id: str, created: any, ending_before: str, expand: [str], limit: int, starting_after: str, type: str(document/id_number), verification_session: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/identity/verification_reports/{report}
@required {report: str}
@optional {expand: [str]}
@returns(200) {client_reference_id: str?, created: int(unix-time), document: map{address: any?, dob: any?, error: any?, expiration_date: any?, files: [str]?, first_name: str?, issued_date: any?, issuing_country: str?, last_name: str?, number: str?, sex: str?, status: str, type: str?, unparsed_place_of_birth: str?, unparsed_sex: str?}, email: map{email: str?, error: any?, status: str}, id: str, id_number: map{dob: any?, error: any?, first_name: str?, id_number: str?, id_number_type: str?, last_name: str?, status: str}, livemode: bool, object: str, options: map{document: map{allowed_types: [str], require_id_number: bool, require_live_capture: bool, require_matching_selfie: bool}, id_number: map}, phone: map{error: any?, phone: str?, status: str}, selfie: map{document: str?, error: any?, selfie: str?, status: str}, type: str, verification_flow: str, verification_session: str?}

@endpoint GET /v1/identity/verification_sessions
@optional {client_reference_id: str, created: any, ending_before: str, expand: [str], limit: int, related_customer: str, related_customer_account: str, starting_after: str, status: str(canceled/processing/requires_input/verified)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/identity/verification_sessions
@returns(200) {client_reference_id: str?, client_secret: str?, created: int(unix-time), id: str, last_error: any?, last_verification_report: any?, livemode: bool, metadata: map, object: str, options: any?, provided_details: any?, redaction: any?, related_customer: str?, related_customer_account: str?, related_person: map{account: str, person: str}, status: str, type: str, url: str?, verification_flow: str, verified_outputs: any?}

@endpoint GET /v1/identity/verification_sessions/{session}
@required {session: str}
@optional {expand: [str]}
@returns(200) {client_reference_id: str?, client_secret: str?, created: int(unix-time), id: str, last_error: any?, last_verification_report: any?, livemode: bool, metadata: map, object: str, options: any?, provided_details: any?, redaction: any?, related_customer: str?, related_customer_account: str?, related_person: map{account: str, person: str}, status: str, type: str, url: str?, verification_flow: str, verified_outputs: any?}

@endpoint POST /v1/identity/verification_sessions/{session}
@required {session: str}
@returns(200) {client_reference_id: str?, client_secret: str?, created: int(unix-time), id: str, last_error: any?, last_verification_report: any?, livemode: bool, metadata: map, object: str, options: any?, provided_details: any?, redaction: any?, related_customer: str?, related_customer_account: str?, related_person: map{account: str, person: str}, status: str, type: str, url: str?, verification_flow: str, verified_outputs: any?}

@endpoint POST /v1/identity/verification_sessions/{session}/cancel
@required {session: str}
@returns(200) {client_reference_id: str?, client_secret: str?, created: int(unix-time), id: str, last_error: any?, last_verification_report: any?, livemode: bool, metadata: map, object: str, options: any?, provided_details: any?, redaction: any?, related_customer: str?, related_customer_account: str?, related_person: map{account: str, person: str}, status: str, type: str, url: str?, verification_flow: str, verified_outputs: any?}

@endpoint POST /v1/identity/verification_sessions/{session}/redact
@required {session: str}
@returns(200) {client_reference_id: str?, client_secret: str?, created: int(unix-time), id: str, last_error: any?, last_verification_report: any?, livemode: bool, metadata: map, object: str, options: any?, provided_details: any?, redaction: any?, related_customer: str?, related_customer_account: str?, related_person: map{account: str, person: str}, status: str, type: str, url: str?, verification_flow: str, verified_outputs: any?}

@endgroup

@group invoice_payments
@endpoint GET /v1/invoice_payments
@optional {created: any, ending_before: str, expand: [str], invoice: str, limit: int, payment: map, starting_after: str, status: str(canceled/open/paid)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/invoice_payments/{invoice_payment}
@required {invoice_payment: str}
@optional {expand: [str]}
@returns(200) {amount_paid: int?, amount_requested: int, created: int(unix-time), currency: str, id: str, invoice: any, is_default: bool, livemode: bool, object: str, payment: map{charge: any, payment_intent: any, payment_record: any, type: str}, status: str, status_transitions: map{canceled_at: int(unix-time)?, paid_at: int(unix-time)?}}

@endgroup

@group invoice_rendering_templates
@endpoint GET /v1/invoice_rendering_templates
@optional {ending_before: str, expand: [str], limit: int, starting_after: str, status: str(active/archived)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/invoice_rendering_templates/{template}
@required {template: str}
@optional {expand: [str], version: int}
@returns(200) {created: int(unix-time), id: str, livemode: bool, metadata: map?, nickname: str?, object: str, status: str, version: int}

@endpoint POST /v1/invoice_rendering_templates/{template}/archive
@required {template: str}
@returns(200) {created: int(unix-time), id: str, livemode: bool, metadata: map?, nickname: str?, object: str, status: str, version: int}

@endpoint POST /v1/invoice_rendering_templates/{template}/unarchive
@required {template: str}
@returns(200) {created: int(unix-time), id: str, livemode: bool, metadata: map?, nickname: str?, object: str, status: str, version: int}

@endgroup

@group invoiceitems
@endpoint GET /v1/invoiceitems
@optional {created: any, customer: str, customer_account: str, ending_before: str, expand: [str], invoice: str, limit: int, pending: bool, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/invoiceitems
@returns(200) {amount: int, currency: str(currency), customer: any, customer_account: str?, date: int(unix-time), description: str?, discountable: bool, discounts: [any]?, id: str, invoice: any?, livemode: bool, metadata: map?, net_amount: int, object: str, parent: any?, period: map{end: int(unix-time), start: int(unix-time)}, pricing: any?, proration: bool, proration_details: map{discount_amounts: [map]}, quantity: int, quantity_decimal: str(decimal), tax_rates: [map]?, test_clock: any?}

@endpoint DELETE /v1/invoiceitems/{invoiceitem}
@required {invoiceitem: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/invoiceitems/{invoiceitem}
@required {invoiceitem: str}
@optional {expand: [str]}
@returns(200) {amount: int, currency: str(currency), customer: any, customer_account: str?, date: int(unix-time), description: str?, discountable: bool, discounts: [any]?, id: str, invoice: any?, livemode: bool, metadata: map?, net_amount: int, object: str, parent: any?, period: map{end: int(unix-time), start: int(unix-time)}, pricing: any?, proration: bool, proration_details: map{discount_amounts: [map]}, quantity: int, quantity_decimal: str(decimal), tax_rates: [map]?, test_clock: any?}

@endpoint POST /v1/invoiceitems/{invoiceitem}
@required {invoiceitem: str}
@returns(200) {amount: int, currency: str(currency), customer: any, customer_account: str?, date: int(unix-time), description: str?, discountable: bool, discounts: [any]?, id: str, invoice: any?, livemode: bool, metadata: map?, net_amount: int, object: str, parent: any?, period: map{end: int(unix-time), start: int(unix-time)}, pricing: any?, proration: bool, proration_details: map{discount_amounts: [map]}, quantity: int, quantity_decimal: str(decimal), tax_rates: [map]?, test_clock: any?}

@endgroup

@group invoices
@endpoint GET /v1/invoices
@optional {collection_method: str(charge_automatically/send_invoice), created: any, customer: str, customer_account: str, due_date: any, ending_before: str, expand: [str], limit: int, starting_after: str, status: str(draft/open/paid/uncollectible/void), subscription: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/invoices
@returns(200) {account_country: str?, account_name: str?, account_tax_ids: [any]?, amount_due: int, amount_overpaid: int, amount_paid: int, amount_remaining: int, amount_shipping: int, application: any?, attempt_count: int, attempted: bool, auto_advance: bool, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?, provider: str?, status: str?}, automatically_finalizes_at: int(unix-time)?, billing_reason: str?, collection_method: str, confirmation_secret: any?, created: int(unix-time), currency: str(currency), custom_fields: [map]?, customer: any, customer_account: str?, customer_address: any?, customer_email: str?, customer_name: str?, customer_phone: str?, customer_shipping: any?, customer_tax_exempt: str?, customer_tax_ids: [map]?, default_payment_method: any?, default_source: any?, default_tax_rates: [map], description: str?, discounts: [any], due_date: int(unix-time)?, effective_at: int(unix-time)?, ending_balance: int?, footer: str?, from_invoice: any?, hosted_invoice_url: str?, id: str, invoice_pdf: str?, issuer: map{account: any, type: str}, last_finalization_error: any?, latest_revision: any?, lines: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map?, next_payment_attempt: int(unix-time)?, number: str?, object: str, on_behalf_of: any?, parent: any?, payment_settings: map{default_mandate: str?, payment_method_options: any?, payment_method_types: [str]?}, payments: map{data: [map], has_more: bool, object: str, url: str}, period_end: int(unix-time), period_start: int(unix-time), post_payment_credit_notes_amount: int, pre_payment_credit_notes_amount: int, receipt_number: str?, rendering: any?, shipping_cost: any?, shipping_details: any?, starting_balance: int, statement_descriptor: str?, status: str?, status_transitions: map{finalized_at: int(unix-time)?, marked_uncollectible_at: int(unix-time)?, paid_at: int(unix-time)?, voided_at: int(unix-time)?}, subtotal: int, subtotal_excluding_tax: int?, test_clock: any?, threshold_reason: map{amount_gte: int?, item_reasons: [map]}, total: int, total_discount_amounts: [map]?, total_excluding_tax: int?, total_pretax_credit_amounts: [map]?, total_taxes: [map]?, webhooks_delivered_at: int(unix-time)?}

@endpoint POST /v1/invoices/create_preview
@returns(200) {account_country: str?, account_name: str?, account_tax_ids: [any]?, amount_due: int, amount_overpaid: int, amount_paid: int, amount_remaining: int, amount_shipping: int, application: any?, attempt_count: int, attempted: bool, auto_advance: bool, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?, provider: str?, status: str?}, automatically_finalizes_at: int(unix-time)?, billing_reason: str?, collection_method: str, confirmation_secret: any?, created: int(unix-time), currency: str(currency), custom_fields: [map]?, customer: any, customer_account: str?, customer_address: any?, customer_email: str?, customer_name: str?, customer_phone: str?, customer_shipping: any?, customer_tax_exempt: str?, customer_tax_ids: [map]?, default_payment_method: any?, default_source: any?, default_tax_rates: [map], description: str?, discounts: [any], due_date: int(unix-time)?, effective_at: int(unix-time)?, ending_balance: int?, footer: str?, from_invoice: any?, hosted_invoice_url: str?, id: str, invoice_pdf: str?, issuer: map{account: any, type: str}, last_finalization_error: any?, latest_revision: any?, lines: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map?, next_payment_attempt: int(unix-time)?, number: str?, object: str, on_behalf_of: any?, parent: any?, payment_settings: map{default_mandate: str?, payment_method_options: any?, payment_method_types: [str]?}, payments: map{data: [map], has_more: bool, object: str, url: str}, period_end: int(unix-time), period_start: int(unix-time), post_payment_credit_notes_amount: int, pre_payment_credit_notes_amount: int, receipt_number: str?, rendering: any?, shipping_cost: any?, shipping_details: any?, starting_balance: int, statement_descriptor: str?, status: str?, status_transitions: map{finalized_at: int(unix-time)?, marked_uncollectible_at: int(unix-time)?, paid_at: int(unix-time)?, voided_at: int(unix-time)?}, subtotal: int, subtotal_excluding_tax: int?, test_clock: any?, threshold_reason: map{amount_gte: int?, item_reasons: [map]}, total: int, total_discount_amounts: [map]?, total_excluding_tax: int?, total_pretax_credit_amounts: [map]?, total_taxes: [map]?, webhooks_delivered_at: int(unix-time)?}

@endpoint GET /v1/invoices/search
@required {query: str}
@optional {expand: [str], limit: int, page: str}
@returns(200) {data: [map], has_more: bool, next_page: str?, object: str, total_count: int, url: str}

@endpoint DELETE /v1/invoices/{invoice}
@required {invoice: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/invoices/{invoice}
@required {invoice: str}
@optional {expand: [str]}
@returns(200) {account_country: str?, account_name: str?, account_tax_ids: [any]?, amount_due: int, amount_overpaid: int, amount_paid: int, amount_remaining: int, amount_shipping: int, application: any?, attempt_count: int, attempted: bool, auto_advance: bool, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?, provider: str?, status: str?}, automatically_finalizes_at: int(unix-time)?, billing_reason: str?, collection_method: str, confirmation_secret: any?, created: int(unix-time), currency: str(currency), custom_fields: [map]?, customer: any, customer_account: str?, customer_address: any?, customer_email: str?, customer_name: str?, customer_phone: str?, customer_shipping: any?, customer_tax_exempt: str?, customer_tax_ids: [map]?, default_payment_method: any?, default_source: any?, default_tax_rates: [map], description: str?, discounts: [any], due_date: int(unix-time)?, effective_at: int(unix-time)?, ending_balance: int?, footer: str?, from_invoice: any?, hosted_invoice_url: str?, id: str, invoice_pdf: str?, issuer: map{account: any, type: str}, last_finalization_error: any?, latest_revision: any?, lines: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map?, next_payment_attempt: int(unix-time)?, number: str?, object: str, on_behalf_of: any?, parent: any?, payment_settings: map{default_mandate: str?, payment_method_options: any?, payment_method_types: [str]?}, payments: map{data: [map], has_more: bool, object: str, url: str}, period_end: int(unix-time), period_start: int(unix-time), post_payment_credit_notes_amount: int, pre_payment_credit_notes_amount: int, receipt_number: str?, rendering: any?, shipping_cost: any?, shipping_details: any?, starting_balance: int, statement_descriptor: str?, status: str?, status_transitions: map{finalized_at: int(unix-time)?, marked_uncollectible_at: int(unix-time)?, paid_at: int(unix-time)?, voided_at: int(unix-time)?}, subtotal: int, subtotal_excluding_tax: int?, test_clock: any?, threshold_reason: map{amount_gte: int?, item_reasons: [map]}, total: int, total_discount_amounts: [map]?, total_excluding_tax: int?, total_pretax_credit_amounts: [map]?, total_taxes: [map]?, webhooks_delivered_at: int(unix-time)?}

@endpoint POST /v1/invoices/{invoice}
@required {invoice: str}
@returns(200) {account_country: str?, account_name: str?, account_tax_ids: [any]?, amount_due: int, amount_overpaid: int, amount_paid: int, amount_remaining: int, amount_shipping: int, application: any?, attempt_count: int, attempted: bool, auto_advance: bool, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?, provider: str?, status: str?}, automatically_finalizes_at: int(unix-time)?, billing_reason: str?, collection_method: str, confirmation_secret: any?, created: int(unix-time), currency: str(currency), custom_fields: [map]?, customer: any, customer_account: str?, customer_address: any?, customer_email: str?, customer_name: str?, customer_phone: str?, customer_shipping: any?, customer_tax_exempt: str?, customer_tax_ids: [map]?, default_payment_method: any?, default_source: any?, default_tax_rates: [map], description: str?, discounts: [any], due_date: int(unix-time)?, effective_at: int(unix-time)?, ending_balance: int?, footer: str?, from_invoice: any?, hosted_invoice_url: str?, id: str, invoice_pdf: str?, issuer: map{account: any, type: str}, last_finalization_error: any?, latest_revision: any?, lines: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map?, next_payment_attempt: int(unix-time)?, number: str?, object: str, on_behalf_of: any?, parent: any?, payment_settings: map{default_mandate: str?, payment_method_options: any?, payment_method_types: [str]?}, payments: map{data: [map], has_more: bool, object: str, url: str}, period_end: int(unix-time), period_start: int(unix-time), post_payment_credit_notes_amount: int, pre_payment_credit_notes_amount: int, receipt_number: str?, rendering: any?, shipping_cost: any?, shipping_details: any?, starting_balance: int, statement_descriptor: str?, status: str?, status_transitions: map{finalized_at: int(unix-time)?, marked_uncollectible_at: int(unix-time)?, paid_at: int(unix-time)?, voided_at: int(unix-time)?}, subtotal: int, subtotal_excluding_tax: int?, test_clock: any?, threshold_reason: map{amount_gte: int?, item_reasons: [map]}, total: int, total_discount_amounts: [map]?, total_excluding_tax: int?, total_pretax_credit_amounts: [map]?, total_taxes: [map]?, webhooks_delivered_at: int(unix-time)?}

@endpoint POST /v1/invoices/{invoice}/add_lines
@required {invoice: str}
@returns(200) {account_country: str?, account_name: str?, account_tax_ids: [any]?, amount_due: int, amount_overpaid: int, amount_paid: int, amount_remaining: int, amount_shipping: int, application: any?, attempt_count: int, attempted: bool, auto_advance: bool, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?, provider: str?, status: str?}, automatically_finalizes_at: int(unix-time)?, billing_reason: str?, collection_method: str, confirmation_secret: any?, created: int(unix-time), currency: str(currency), custom_fields: [map]?, customer: any, customer_account: str?, customer_address: any?, customer_email: str?, customer_name: str?, customer_phone: str?, customer_shipping: any?, customer_tax_exempt: str?, customer_tax_ids: [map]?, default_payment_method: any?, default_source: any?, default_tax_rates: [map], description: str?, discounts: [any], due_date: int(unix-time)?, effective_at: int(unix-time)?, ending_balance: int?, footer: str?, from_invoice: any?, hosted_invoice_url: str?, id: str, invoice_pdf: str?, issuer: map{account: any, type: str}, last_finalization_error: any?, latest_revision: any?, lines: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map?, next_payment_attempt: int(unix-time)?, number: str?, object: str, on_behalf_of: any?, parent: any?, payment_settings: map{default_mandate: str?, payment_method_options: any?, payment_method_types: [str]?}, payments: map{data: [map], has_more: bool, object: str, url: str}, period_end: int(unix-time), period_start: int(unix-time), post_payment_credit_notes_amount: int, pre_payment_credit_notes_amount: int, receipt_number: str?, rendering: any?, shipping_cost: any?, shipping_details: any?, starting_balance: int, statement_descriptor: str?, status: str?, status_transitions: map{finalized_at: int(unix-time)?, marked_uncollectible_at: int(unix-time)?, paid_at: int(unix-time)?, voided_at: int(unix-time)?}, subtotal: int, subtotal_excluding_tax: int?, test_clock: any?, threshold_reason: map{amount_gte: int?, item_reasons: [map]}, total: int, total_discount_amounts: [map]?, total_excluding_tax: int?, total_pretax_credit_amounts: [map]?, total_taxes: [map]?, webhooks_delivered_at: int(unix-time)?}

@endpoint POST /v1/invoices/{invoice}/attach_payment
@required {invoice: str}
@returns(200) {account_country: str?, account_name: str?, account_tax_ids: [any]?, amount_due: int, amount_overpaid: int, amount_paid: int, amount_remaining: int, amount_shipping: int, application: any?, attempt_count: int, attempted: bool, auto_advance: bool, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?, provider: str?, status: str?}, automatically_finalizes_at: int(unix-time)?, billing_reason: str?, collection_method: str, confirmation_secret: any?, created: int(unix-time), currency: str(currency), custom_fields: [map]?, customer: any, customer_account: str?, customer_address: any?, customer_email: str?, customer_name: str?, customer_phone: str?, customer_shipping: any?, customer_tax_exempt: str?, customer_tax_ids: [map]?, default_payment_method: any?, default_source: any?, default_tax_rates: [map], description: str?, discounts: [any], due_date: int(unix-time)?, effective_at: int(unix-time)?, ending_balance: int?, footer: str?, from_invoice: any?, hosted_invoice_url: str?, id: str, invoice_pdf: str?, issuer: map{account: any, type: str}, last_finalization_error: any?, latest_revision: any?, lines: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map?, next_payment_attempt: int(unix-time)?, number: str?, object: str, on_behalf_of: any?, parent: any?, payment_settings: map{default_mandate: str?, payment_method_options: any?, payment_method_types: [str]?}, payments: map{data: [map], has_more: bool, object: str, url: str}, period_end: int(unix-time), period_start: int(unix-time), post_payment_credit_notes_amount: int, pre_payment_credit_notes_amount: int, receipt_number: str?, rendering: any?, shipping_cost: any?, shipping_details: any?, starting_balance: int, statement_descriptor: str?, status: str?, status_transitions: map{finalized_at: int(unix-time)?, marked_uncollectible_at: int(unix-time)?, paid_at: int(unix-time)?, voided_at: int(unix-time)?}, subtotal: int, subtotal_excluding_tax: int?, test_clock: any?, threshold_reason: map{amount_gte: int?, item_reasons: [map]}, total: int, total_discount_amounts: [map]?, total_excluding_tax: int?, total_pretax_credit_amounts: [map]?, total_taxes: [map]?, webhooks_delivered_at: int(unix-time)?}

@endpoint POST /v1/invoices/{invoice}/finalize
@required {invoice: str}
@returns(200) {account_country: str?, account_name: str?, account_tax_ids: [any]?, amount_due: int, amount_overpaid: int, amount_paid: int, amount_remaining: int, amount_shipping: int, application: any?, attempt_count: int, attempted: bool, auto_advance: bool, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?, provider: str?, status: str?}, automatically_finalizes_at: int(unix-time)?, billing_reason: str?, collection_method: str, confirmation_secret: any?, created: int(unix-time), currency: str(currency), custom_fields: [map]?, customer: any, customer_account: str?, customer_address: any?, customer_email: str?, customer_name: str?, customer_phone: str?, customer_shipping: any?, customer_tax_exempt: str?, customer_tax_ids: [map]?, default_payment_method: any?, default_source: any?, default_tax_rates: [map], description: str?, discounts: [any], due_date: int(unix-time)?, effective_at: int(unix-time)?, ending_balance: int?, footer: str?, from_invoice: any?, hosted_invoice_url: str?, id: str, invoice_pdf: str?, issuer: map{account: any, type: str}, last_finalization_error: any?, latest_revision: any?, lines: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map?, next_payment_attempt: int(unix-time)?, number: str?, object: str, on_behalf_of: any?, parent: any?, payment_settings: map{default_mandate: str?, payment_method_options: any?, payment_method_types: [str]?}, payments: map{data: [map], has_more: bool, object: str, url: str}, period_end: int(unix-time), period_start: int(unix-time), post_payment_credit_notes_amount: int, pre_payment_credit_notes_amount: int, receipt_number: str?, rendering: any?, shipping_cost: any?, shipping_details: any?, starting_balance: int, statement_descriptor: str?, status: str?, status_transitions: map{finalized_at: int(unix-time)?, marked_uncollectible_at: int(unix-time)?, paid_at: int(unix-time)?, voided_at: int(unix-time)?}, subtotal: int, subtotal_excluding_tax: int?, test_clock: any?, threshold_reason: map{amount_gte: int?, item_reasons: [map]}, total: int, total_discount_amounts: [map]?, total_excluding_tax: int?, total_pretax_credit_amounts: [map]?, total_taxes: [map]?, webhooks_delivered_at: int(unix-time)?}

@endpoint GET /v1/invoices/{invoice}/lines
@required {invoice: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/invoices/{invoice}/lines/{line_item_id}
@required {invoice: str, line_item_id: str}
@returns(200) {amount: int, currency: str(currency), description: str?, discount_amounts: [map]?, discountable: bool, discounts: [any], id: str, invoice: str?, livemode: bool, metadata: map, object: str, parent: any?, period: map{end: int(unix-time), start: int(unix-time)}, pretax_credit_amounts: [map]?, pricing: any?, quantity: int?, quantity_decimal: str(decimal)?, subscription: any?, subtotal: int, taxes: [map]?}

@endpoint POST /v1/invoices/{invoice}/mark_uncollectible
@required {invoice: str}
@returns(200) {account_country: str?, account_name: str?, account_tax_ids: [any]?, amount_due: int, amount_overpaid: int, amount_paid: int, amount_remaining: int, amount_shipping: int, application: any?, attempt_count: int, attempted: bool, auto_advance: bool, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?, provider: str?, status: str?}, automatically_finalizes_at: int(unix-time)?, billing_reason: str?, collection_method: str, confirmation_secret: any?, created: int(unix-time), currency: str(currency), custom_fields: [map]?, customer: any, customer_account: str?, customer_address: any?, customer_email: str?, customer_name: str?, customer_phone: str?, customer_shipping: any?, customer_tax_exempt: str?, customer_tax_ids: [map]?, default_payment_method: any?, default_source: any?, default_tax_rates: [map], description: str?, discounts: [any], due_date: int(unix-time)?, effective_at: int(unix-time)?, ending_balance: int?, footer: str?, from_invoice: any?, hosted_invoice_url: str?, id: str, invoice_pdf: str?, issuer: map{account: any, type: str}, last_finalization_error: any?, latest_revision: any?, lines: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map?, next_payment_attempt: int(unix-time)?, number: str?, object: str, on_behalf_of: any?, parent: any?, payment_settings: map{default_mandate: str?, payment_method_options: any?, payment_method_types: [str]?}, payments: map{data: [map], has_more: bool, object: str, url: str}, period_end: int(unix-time), period_start: int(unix-time), post_payment_credit_notes_amount: int, pre_payment_credit_notes_amount: int, receipt_number: str?, rendering: any?, shipping_cost: any?, shipping_details: any?, starting_balance: int, statement_descriptor: str?, status: str?, status_transitions: map{finalized_at: int(unix-time)?, marked_uncollectible_at: int(unix-time)?, paid_at: int(unix-time)?, voided_at: int(unix-time)?}, subtotal: int, subtotal_excluding_tax: int?, test_clock: any?, threshold_reason: map{amount_gte: int?, item_reasons: [map]}, total: int, total_discount_amounts: [map]?, total_excluding_tax: int?, total_pretax_credit_amounts: [map]?, total_taxes: [map]?, webhooks_delivered_at: int(unix-time)?}

@endpoint POST /v1/invoices/{invoice}/pay
@required {invoice: str}
@returns(200) {account_country: str?, account_name: str?, account_tax_ids: [any]?, amount_due: int, amount_overpaid: int, amount_paid: int, amount_remaining: int, amount_shipping: int, application: any?, attempt_count: int, attempted: bool, auto_advance: bool, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?, provider: str?, status: str?}, automatically_finalizes_at: int(unix-time)?, billing_reason: str?, collection_method: str, confirmation_secret: any?, created: int(unix-time), currency: str(currency), custom_fields: [map]?, customer: any, customer_account: str?, customer_address: any?, customer_email: str?, customer_name: str?, customer_phone: str?, customer_shipping: any?, customer_tax_exempt: str?, customer_tax_ids: [map]?, default_payment_method: any?, default_source: any?, default_tax_rates: [map], description: str?, discounts: [any], due_date: int(unix-time)?, effective_at: int(unix-time)?, ending_balance: int?, footer: str?, from_invoice: any?, hosted_invoice_url: str?, id: str, invoice_pdf: str?, issuer: map{account: any, type: str}, last_finalization_error: any?, latest_revision: any?, lines: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map?, next_payment_attempt: int(unix-time)?, number: str?, object: str, on_behalf_of: any?, parent: any?, payment_settings: map{default_mandate: str?, payment_method_options: any?, payment_method_types: [str]?}, payments: map{data: [map], has_more: bool, object: str, url: str}, period_end: int(unix-time), period_start: int(unix-time), post_payment_credit_notes_amount: int, pre_payment_credit_notes_amount: int, receipt_number: str?, rendering: any?, shipping_cost: any?, shipping_details: any?, starting_balance: int, statement_descriptor: str?, status: str?, status_transitions: map{finalized_at: int(unix-time)?, marked_uncollectible_at: int(unix-time)?, paid_at: int(unix-time)?, voided_at: int(unix-time)?}, subtotal: int, subtotal_excluding_tax: int?, test_clock: any?, threshold_reason: map{amount_gte: int?, item_reasons: [map]}, total: int, total_discount_amounts: [map]?, total_excluding_tax: int?, total_pretax_credit_amounts: [map]?, total_taxes: [map]?, webhooks_delivered_at: int(unix-time)?}

@endpoint POST /v1/invoices/{invoice}/remove_lines
@required {invoice: str}
@returns(200) {account_country: str?, account_name: str?, account_tax_ids: [any]?, amount_due: int, amount_overpaid: int, amount_paid: int, amount_remaining: int, amount_shipping: int, application: any?, attempt_count: int, attempted: bool, auto_advance: bool, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?, provider: str?, status: str?}, automatically_finalizes_at: int(unix-time)?, billing_reason: str?, collection_method: str, confirmation_secret: any?, created: int(unix-time), currency: str(currency), custom_fields: [map]?, customer: any, customer_account: str?, customer_address: any?, customer_email: str?, customer_name: str?, customer_phone: str?, customer_shipping: any?, customer_tax_exempt: str?, customer_tax_ids: [map]?, default_payment_method: any?, default_source: any?, default_tax_rates: [map], description: str?, discounts: [any], due_date: int(unix-time)?, effective_at: int(unix-time)?, ending_balance: int?, footer: str?, from_invoice: any?, hosted_invoice_url: str?, id: str, invoice_pdf: str?, issuer: map{account: any, type: str}, last_finalization_error: any?, latest_revision: any?, lines: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map?, next_payment_attempt: int(unix-time)?, number: str?, object: str, on_behalf_of: any?, parent: any?, payment_settings: map{default_mandate: str?, payment_method_options: any?, payment_method_types: [str]?}, payments: map{data: [map], has_more: bool, object: str, url: str}, period_end: int(unix-time), period_start: int(unix-time), post_payment_credit_notes_amount: int, pre_payment_credit_notes_amount: int, receipt_number: str?, rendering: any?, shipping_cost: any?, shipping_details: any?, starting_balance: int, statement_descriptor: str?, status: str?, status_transitions: map{finalized_at: int(unix-time)?, marked_uncollectible_at: int(unix-time)?, paid_at: int(unix-time)?, voided_at: int(unix-time)?}, subtotal: int, subtotal_excluding_tax: int?, test_clock: any?, threshold_reason: map{amount_gte: int?, item_reasons: [map]}, total: int, total_discount_amounts: [map]?, total_excluding_tax: int?, total_pretax_credit_amounts: [map]?, total_taxes: [map]?, webhooks_delivered_at: int(unix-time)?}

@endpoint POST /v1/invoices/{invoice}/send
@required {invoice: str}
@returns(200) {account_country: str?, account_name: str?, account_tax_ids: [any]?, amount_due: int, amount_overpaid: int, amount_paid: int, amount_remaining: int, amount_shipping: int, application: any?, attempt_count: int, attempted: bool, auto_advance: bool, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?, provider: str?, status: str?}, automatically_finalizes_at: int(unix-time)?, billing_reason: str?, collection_method: str, confirmation_secret: any?, created: int(unix-time), currency: str(currency), custom_fields: [map]?, customer: any, customer_account: str?, customer_address: any?, customer_email: str?, customer_name: str?, customer_phone: str?, customer_shipping: any?, customer_tax_exempt: str?, customer_tax_ids: [map]?, default_payment_method: any?, default_source: any?, default_tax_rates: [map], description: str?, discounts: [any], due_date: int(unix-time)?, effective_at: int(unix-time)?, ending_balance: int?, footer: str?, from_invoice: any?, hosted_invoice_url: str?, id: str, invoice_pdf: str?, issuer: map{account: any, type: str}, last_finalization_error: any?, latest_revision: any?, lines: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map?, next_payment_attempt: int(unix-time)?, number: str?, object: str, on_behalf_of: any?, parent: any?, payment_settings: map{default_mandate: str?, payment_method_options: any?, payment_method_types: [str]?}, payments: map{data: [map], has_more: bool, object: str, url: str}, period_end: int(unix-time), period_start: int(unix-time), post_payment_credit_notes_amount: int, pre_payment_credit_notes_amount: int, receipt_number: str?, rendering: any?, shipping_cost: any?, shipping_details: any?, starting_balance: int, statement_descriptor: str?, status: str?, status_transitions: map{finalized_at: int(unix-time)?, marked_uncollectible_at: int(unix-time)?, paid_at: int(unix-time)?, voided_at: int(unix-time)?}, subtotal: int, subtotal_excluding_tax: int?, test_clock: any?, threshold_reason: map{amount_gte: int?, item_reasons: [map]}, total: int, total_discount_amounts: [map]?, total_excluding_tax: int?, total_pretax_credit_amounts: [map]?, total_taxes: [map]?, webhooks_delivered_at: int(unix-time)?}

@endpoint POST /v1/invoices/{invoice}/update_lines
@required {invoice: str}
@returns(200) {account_country: str?, account_name: str?, account_tax_ids: [any]?, amount_due: int, amount_overpaid: int, amount_paid: int, amount_remaining: int, amount_shipping: int, application: any?, attempt_count: int, attempted: bool, auto_advance: bool, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?, provider: str?, status: str?}, automatically_finalizes_at: int(unix-time)?, billing_reason: str?, collection_method: str, confirmation_secret: any?, created: int(unix-time), currency: str(currency), custom_fields: [map]?, customer: any, customer_account: str?, customer_address: any?, customer_email: str?, customer_name: str?, customer_phone: str?, customer_shipping: any?, customer_tax_exempt: str?, customer_tax_ids: [map]?, default_payment_method: any?, default_source: any?, default_tax_rates: [map], description: str?, discounts: [any], due_date: int(unix-time)?, effective_at: int(unix-time)?, ending_balance: int?, footer: str?, from_invoice: any?, hosted_invoice_url: str?, id: str, invoice_pdf: str?, issuer: map{account: any, type: str}, last_finalization_error: any?, latest_revision: any?, lines: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map?, next_payment_attempt: int(unix-time)?, number: str?, object: str, on_behalf_of: any?, parent: any?, payment_settings: map{default_mandate: str?, payment_method_options: any?, payment_method_types: [str]?}, payments: map{data: [map], has_more: bool, object: str, url: str}, period_end: int(unix-time), period_start: int(unix-time), post_payment_credit_notes_amount: int, pre_payment_credit_notes_amount: int, receipt_number: str?, rendering: any?, shipping_cost: any?, shipping_details: any?, starting_balance: int, statement_descriptor: str?, status: str?, status_transitions: map{finalized_at: int(unix-time)?, marked_uncollectible_at: int(unix-time)?, paid_at: int(unix-time)?, voided_at: int(unix-time)?}, subtotal: int, subtotal_excluding_tax: int?, test_clock: any?, threshold_reason: map{amount_gte: int?, item_reasons: [map]}, total: int, total_discount_amounts: [map]?, total_excluding_tax: int?, total_pretax_credit_amounts: [map]?, total_taxes: [map]?, webhooks_delivered_at: int(unix-time)?}

@endpoint POST /v1/invoices/{invoice}/void
@required {invoice: str}
@returns(200) {account_country: str?, account_name: str?, account_tax_ids: [any]?, amount_due: int, amount_overpaid: int, amount_paid: int, amount_remaining: int, amount_shipping: int, application: any?, attempt_count: int, attempted: bool, auto_advance: bool, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?, provider: str?, status: str?}, automatically_finalizes_at: int(unix-time)?, billing_reason: str?, collection_method: str, confirmation_secret: any?, created: int(unix-time), currency: str(currency), custom_fields: [map]?, customer: any, customer_account: str?, customer_address: any?, customer_email: str?, customer_name: str?, customer_phone: str?, customer_shipping: any?, customer_tax_exempt: str?, customer_tax_ids: [map]?, default_payment_method: any?, default_source: any?, default_tax_rates: [map], description: str?, discounts: [any], due_date: int(unix-time)?, effective_at: int(unix-time)?, ending_balance: int?, footer: str?, from_invoice: any?, hosted_invoice_url: str?, id: str, invoice_pdf: str?, issuer: map{account: any, type: str}, last_finalization_error: any?, latest_revision: any?, lines: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map?, next_payment_attempt: int(unix-time)?, number: str?, object: str, on_behalf_of: any?, parent: any?, payment_settings: map{default_mandate: str?, payment_method_options: any?, payment_method_types: [str]?}, payments: map{data: [map], has_more: bool, object: str, url: str}, period_end: int(unix-time), period_start: int(unix-time), post_payment_credit_notes_amount: int, pre_payment_credit_notes_amount: int, receipt_number: str?, rendering: any?, shipping_cost: any?, shipping_details: any?, starting_balance: int, statement_descriptor: str?, status: str?, status_transitions: map{finalized_at: int(unix-time)?, marked_uncollectible_at: int(unix-time)?, paid_at: int(unix-time)?, voided_at: int(unix-time)?}, subtotal: int, subtotal_excluding_tax: int?, test_clock: any?, threshold_reason: map{amount_gte: int?, item_reasons: [map]}, total: int, total_discount_amounts: [map]?, total_excluding_tax: int?, total_pretax_credit_amounts: [map]?, total_taxes: [map]?, webhooks_delivered_at: int(unix-time)?}

@endgroup

@group issuing
@endpoint GET /v1/issuing/authorizations
@optional {card: str, cardholder: str, created: any, ending_before: str, expand: [str], limit: int, starting_after: str, status: str(closed/expired/pending/reversed)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/issuing/authorizations/{authorization}
@required {authorization: str}
@optional {expand: [str]}
@returns(200) {amount: int, amount_details: any?, approved: bool, authorization_method: str, balance_transactions: [map], card: map{brand: str, cancellation_reason: str?, cardholder: map{billing: map{address: map}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}, created: int(unix-time), currency: str(currency), cvc: str, exp_month: int, exp_year: int, financial_account: str?, id: str, last4: str, latest_fraud_warning: any?, lifecycle_controls: any?, livemode: bool, metadata: map, number: str, object: str, personalization_design: any?, replaced_by: any?, replacement_for: any?, replacement_reason: str?, second_line: str?, shipping: any?, spending_controls: map{allowed_categories: [str]?, allowed_merchant_countries: [str]?, blocked_categories: [str]?, blocked_merchant_countries: [str]?, spending_limits: [map]?, spending_limits_currency: str(currency)?}, status: str, type: str, wallets: any?}, cardholder: any?, created: int(unix-time), currency: str(currency), fleet: any?, fraud_challenges: [map]?, fuel: any?, id: str, livemode: bool, merchant_amount: int, merchant_currency: str(currency), merchant_data: map{category: str, category_code: str, city: str?, country: str?, name: str?, network_id: str, postal_code: str?, state: str?, tax_id: str?, terminal_id: str?, url: str?}, metadata: map, network_data: any?, object: str, pending_request: any?, request_history: [map], status: str, token: any?, transactions: [map], treasury: any?, verification_data: map{address_line1_check: str, address_postal_code_check: str, authentication_exemption: any?, cvc_check: str, expiry_check: str, postal_code: str?, three_d_secure: any?}, verified_by_fraud_challenge: bool?, wallet: str?}

@endpoint POST /v1/issuing/authorizations/{authorization}
@required {authorization: str}
@returns(200) {amount: int, amount_details: any?, approved: bool, authorization_method: str, balance_transactions: [map], card: map{brand: str, cancellation_reason: str?, cardholder: map{billing: map{address: map}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}, created: int(unix-time), currency: str(currency), cvc: str, exp_month: int, exp_year: int, financial_account: str?, id: str, last4: str, latest_fraud_warning: any?, lifecycle_controls: any?, livemode: bool, metadata: map, number: str, object: str, personalization_design: any?, replaced_by: any?, replacement_for: any?, replacement_reason: str?, second_line: str?, shipping: any?, spending_controls: map{allowed_categories: [str]?, allowed_merchant_countries: [str]?, blocked_categories: [str]?, blocked_merchant_countries: [str]?, spending_limits: [map]?, spending_limits_currency: str(currency)?}, status: str, type: str, wallets: any?}, cardholder: any?, created: int(unix-time), currency: str(currency), fleet: any?, fraud_challenges: [map]?, fuel: any?, id: str, livemode: bool, merchant_amount: int, merchant_currency: str(currency), merchant_data: map{category: str, category_code: str, city: str?, country: str?, name: str?, network_id: str, postal_code: str?, state: str?, tax_id: str?, terminal_id: str?, url: str?}, metadata: map, network_data: any?, object: str, pending_request: any?, request_history: [map], status: str, token: any?, transactions: [map], treasury: any?, verification_data: map{address_line1_check: str, address_postal_code_check: str, authentication_exemption: any?, cvc_check: str, expiry_check: str, postal_code: str?, three_d_secure: any?}, verified_by_fraud_challenge: bool?, wallet: str?}

@endpoint POST /v1/issuing/authorizations/{authorization}/approve
@required {authorization: str}
@returns(200) {amount: int, amount_details: any?, approved: bool, authorization_method: str, balance_transactions: [map], card: map{brand: str, cancellation_reason: str?, cardholder: map{billing: map{address: map}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}, created: int(unix-time), currency: str(currency), cvc: str, exp_month: int, exp_year: int, financial_account: str?, id: str, last4: str, latest_fraud_warning: any?, lifecycle_controls: any?, livemode: bool, metadata: map, number: str, object: str, personalization_design: any?, replaced_by: any?, replacement_for: any?, replacement_reason: str?, second_line: str?, shipping: any?, spending_controls: map{allowed_categories: [str]?, allowed_merchant_countries: [str]?, blocked_categories: [str]?, blocked_merchant_countries: [str]?, spending_limits: [map]?, spending_limits_currency: str(currency)?}, status: str, type: str, wallets: any?}, cardholder: any?, created: int(unix-time), currency: str(currency), fleet: any?, fraud_challenges: [map]?, fuel: any?, id: str, livemode: bool, merchant_amount: int, merchant_currency: str(currency), merchant_data: map{category: str, category_code: str, city: str?, country: str?, name: str?, network_id: str, postal_code: str?, state: str?, tax_id: str?, terminal_id: str?, url: str?}, metadata: map, network_data: any?, object: str, pending_request: any?, request_history: [map], status: str, token: any?, transactions: [map], treasury: any?, verification_data: map{address_line1_check: str, address_postal_code_check: str, authentication_exemption: any?, cvc_check: str, expiry_check: str, postal_code: str?, three_d_secure: any?}, verified_by_fraud_challenge: bool?, wallet: str?}

@endpoint POST /v1/issuing/authorizations/{authorization}/decline
@required {authorization: str}
@returns(200) {amount: int, amount_details: any?, approved: bool, authorization_method: str, balance_transactions: [map], card: map{brand: str, cancellation_reason: str?, cardholder: map{billing: map{address: map}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}, created: int(unix-time), currency: str(currency), cvc: str, exp_month: int, exp_year: int, financial_account: str?, id: str, last4: str, latest_fraud_warning: any?, lifecycle_controls: any?, livemode: bool, metadata: map, number: str, object: str, personalization_design: any?, replaced_by: any?, replacement_for: any?, replacement_reason: str?, second_line: str?, shipping: any?, spending_controls: map{allowed_categories: [str]?, allowed_merchant_countries: [str]?, blocked_categories: [str]?, blocked_merchant_countries: [str]?, spending_limits: [map]?, spending_limits_currency: str(currency)?}, status: str, type: str, wallets: any?}, cardholder: any?, created: int(unix-time), currency: str(currency), fleet: any?, fraud_challenges: [map]?, fuel: any?, id: str, livemode: bool, merchant_amount: int, merchant_currency: str(currency), merchant_data: map{category: str, category_code: str, city: str?, country: str?, name: str?, network_id: str, postal_code: str?, state: str?, tax_id: str?, terminal_id: str?, url: str?}, metadata: map, network_data: any?, object: str, pending_request: any?, request_history: [map], status: str, token: any?, transactions: [map], treasury: any?, verification_data: map{address_line1_check: str, address_postal_code_check: str, authentication_exemption: any?, cvc_check: str, expiry_check: str, postal_code: str?, three_d_secure: any?}, verified_by_fraud_challenge: bool?, wallet: str?}

@endpoint GET /v1/issuing/cardholders
@optional {created: any, email: str, ending_before: str, expand: [str], limit: int, phone_number: str, starting_after: str, status: str(active/blocked/inactive), type: str(company/individual)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/issuing/cardholders
@returns(200) {billing: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}

@endpoint GET /v1/issuing/cardholders/{cardholder}
@required {cardholder: str}
@optional {expand: [str]}
@returns(200) {billing: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}

@endpoint POST /v1/issuing/cardholders/{cardholder}
@required {cardholder: str}
@returns(200) {billing: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}

@endpoint GET /v1/issuing/cards
@optional {cardholder: str, created: any, ending_before: str, exp_month: int, exp_year: int, expand: [str], last4: str, limit: int, personalization_design: str, starting_after: str, status: str(active/canceled/inactive), type: str(physical/virtual)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/issuing/cards
@returns(200) {brand: str, cancellation_reason: str?, cardholder: map{billing: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}, created: int(unix-time), currency: str(currency), cvc: str, exp_month: int, exp_year: int, financial_account: str?, id: str, last4: str, latest_fraud_warning: any?, lifecycle_controls: any?, livemode: bool, metadata: map, number: str, object: str, personalization_design: any?, replaced_by: any?, replacement_for: any?, replacement_reason: str?, second_line: str?, shipping: any?, spending_controls: map{allowed_categories: [str]?, allowed_merchant_countries: [str]?, blocked_categories: [str]?, blocked_merchant_countries: [str]?, spending_limits: [map]?, spending_limits_currency: str(currency)?}, status: str, type: str, wallets: any?}

@endpoint GET /v1/issuing/cards/{card}
@required {card: str}
@optional {expand: [str]}
@returns(200) {brand: str, cancellation_reason: str?, cardholder: map{billing: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}, created: int(unix-time), currency: str(currency), cvc: str, exp_month: int, exp_year: int, financial_account: str?, id: str, last4: str, latest_fraud_warning: any?, lifecycle_controls: any?, livemode: bool, metadata: map, number: str, object: str, personalization_design: any?, replaced_by: any?, replacement_for: any?, replacement_reason: str?, second_line: str?, shipping: any?, spending_controls: map{allowed_categories: [str]?, allowed_merchant_countries: [str]?, blocked_categories: [str]?, blocked_merchant_countries: [str]?, spending_limits: [map]?, spending_limits_currency: str(currency)?}, status: str, type: str, wallets: any?}

@endpoint POST /v1/issuing/cards/{card}
@required {card: str}
@returns(200) {brand: str, cancellation_reason: str?, cardholder: map{billing: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}, created: int(unix-time), currency: str(currency), cvc: str, exp_month: int, exp_year: int, financial_account: str?, id: str, last4: str, latest_fraud_warning: any?, lifecycle_controls: any?, livemode: bool, metadata: map, number: str, object: str, personalization_design: any?, replaced_by: any?, replacement_for: any?, replacement_reason: str?, second_line: str?, shipping: any?, spending_controls: map{allowed_categories: [str]?, allowed_merchant_countries: [str]?, blocked_categories: [str]?, blocked_merchant_countries: [str]?, spending_limits: [map]?, spending_limits_currency: str(currency)?}, status: str, type: str, wallets: any?}

@endpoint GET /v1/issuing/disputes
@optional {created: any, ending_before: str, expand: [str], limit: int, starting_after: str, status: str(expired/lost/submitted/unsubmitted/won), transaction: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/issuing/disputes
@returns(200) {amount: int, balance_transactions: [map]?, created: int(unix-time), currency: str(currency), evidence: map{canceled: map{additional_documentation: any?, canceled_at: int(unix-time)?, cancellation_policy_provided: bool?, cancellation_reason: str?, expected_at: int(unix-time)?, explanation: str?, product_description: str?, product_type: str?, return_status: str?, returned_at: int(unix-time)?}, duplicate: map{additional_documentation: any?, card_statement: any?, cash_receipt: any?, check_image: any?, explanation: str?, original_transaction: str?}, fraudulent: map{additional_documentation: any?, explanation: str?}, merchandise_not_as_described: map{additional_documentation: any?, explanation: str?, received_at: int(unix-time)?, return_description: str?, return_status: str?, returned_at: int(unix-time)?}, no_valid_authorization: map{additional_documentation: any?, explanation: str?}, not_received: map{additional_documentation: any?, expected_at: int(unix-time)?, explanation: str?, product_description: str?, product_type: str?}, other: map{additional_documentation: any?, explanation: str?, product_description: str?, product_type: str?}, reason: str, service_not_as_described: map{additional_documentation: any?, canceled_at: int(unix-time)?, cancellation_reason: str?, explanation: str?, received_at: int(unix-time)?}}, id: str, livemode: bool, loss_reason: str, metadata: map, object: str, status: str, transaction: any, treasury: any?}

@endpoint GET /v1/issuing/disputes/{dispute}
@required {dispute: str}
@optional {expand: [str]}
@returns(200) {amount: int, balance_transactions: [map]?, created: int(unix-time), currency: str(currency), evidence: map{canceled: map{additional_documentation: any?, canceled_at: int(unix-time)?, cancellation_policy_provided: bool?, cancellation_reason: str?, expected_at: int(unix-time)?, explanation: str?, product_description: str?, product_type: str?, return_status: str?, returned_at: int(unix-time)?}, duplicate: map{additional_documentation: any?, card_statement: any?, cash_receipt: any?, check_image: any?, explanation: str?, original_transaction: str?}, fraudulent: map{additional_documentation: any?, explanation: str?}, merchandise_not_as_described: map{additional_documentation: any?, explanation: str?, received_at: int(unix-time)?, return_description: str?, return_status: str?, returned_at: int(unix-time)?}, no_valid_authorization: map{additional_documentation: any?, explanation: str?}, not_received: map{additional_documentation: any?, expected_at: int(unix-time)?, explanation: str?, product_description: str?, product_type: str?}, other: map{additional_documentation: any?, explanation: str?, product_description: str?, product_type: str?}, reason: str, service_not_as_described: map{additional_documentation: any?, canceled_at: int(unix-time)?, cancellation_reason: str?, explanation: str?, received_at: int(unix-time)?}}, id: str, livemode: bool, loss_reason: str, metadata: map, object: str, status: str, transaction: any, treasury: any?}

@endpoint POST /v1/issuing/disputes/{dispute}
@required {dispute: str}
@returns(200) {amount: int, balance_transactions: [map]?, created: int(unix-time), currency: str(currency), evidence: map{canceled: map{additional_documentation: any?, canceled_at: int(unix-time)?, cancellation_policy_provided: bool?, cancellation_reason: str?, expected_at: int(unix-time)?, explanation: str?, product_description: str?, product_type: str?, return_status: str?, returned_at: int(unix-time)?}, duplicate: map{additional_documentation: any?, card_statement: any?, cash_receipt: any?, check_image: any?, explanation: str?, original_transaction: str?}, fraudulent: map{additional_documentation: any?, explanation: str?}, merchandise_not_as_described: map{additional_documentation: any?, explanation: str?, received_at: int(unix-time)?, return_description: str?, return_status: str?, returned_at: int(unix-time)?}, no_valid_authorization: map{additional_documentation: any?, explanation: str?}, not_received: map{additional_documentation: any?, expected_at: int(unix-time)?, explanation: str?, product_description: str?, product_type: str?}, other: map{additional_documentation: any?, explanation: str?, product_description: str?, product_type: str?}, reason: str, service_not_as_described: map{additional_documentation: any?, canceled_at: int(unix-time)?, cancellation_reason: str?, explanation: str?, received_at: int(unix-time)?}}, id: str, livemode: bool, loss_reason: str, metadata: map, object: str, status: str, transaction: any, treasury: any?}

@endpoint POST /v1/issuing/disputes/{dispute}/submit
@required {dispute: str}
@returns(200) {amount: int, balance_transactions: [map]?, created: int(unix-time), currency: str(currency), evidence: map{canceled: map{additional_documentation: any?, canceled_at: int(unix-time)?, cancellation_policy_provided: bool?, cancellation_reason: str?, expected_at: int(unix-time)?, explanation: str?, product_description: str?, product_type: str?, return_status: str?, returned_at: int(unix-time)?}, duplicate: map{additional_documentation: any?, card_statement: any?, cash_receipt: any?, check_image: any?, explanation: str?, original_transaction: str?}, fraudulent: map{additional_documentation: any?, explanation: str?}, merchandise_not_as_described: map{additional_documentation: any?, explanation: str?, received_at: int(unix-time)?, return_description: str?, return_status: str?, returned_at: int(unix-time)?}, no_valid_authorization: map{additional_documentation: any?, explanation: str?}, not_received: map{additional_documentation: any?, expected_at: int(unix-time)?, explanation: str?, product_description: str?, product_type: str?}, other: map{additional_documentation: any?, explanation: str?, product_description: str?, product_type: str?}, reason: str, service_not_as_described: map{additional_documentation: any?, canceled_at: int(unix-time)?, cancellation_reason: str?, explanation: str?, received_at: int(unix-time)?}}, id: str, livemode: bool, loss_reason: str, metadata: map, object: str, status: str, transaction: any, treasury: any?}

@endpoint GET /v1/issuing/personalization_designs
@optional {ending_before: str, expand: [str], limit: int, lookup_keys: [str], preferences: map, starting_after: str, status: str(active/inactive/rejected/review)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/issuing/personalization_designs
@returns(200) {card_logo: any?, carrier_text: any?, created: int(unix-time), id: str, livemode: bool, lookup_key: str?, metadata: map, name: str?, object: str, physical_bundle: any, preferences: map{is_default: bool, is_platform_default: bool?}, rejection_reasons: map{card_logo: [str]?, carrier_text: [str]?}, status: str}

@endpoint GET /v1/issuing/personalization_designs/{personalization_design}
@required {personalization_design: str}
@optional {expand: [str]}
@returns(200) {card_logo: any?, carrier_text: any?, created: int(unix-time), id: str, livemode: bool, lookup_key: str?, metadata: map, name: str?, object: str, physical_bundle: any, preferences: map{is_default: bool, is_platform_default: bool?}, rejection_reasons: map{card_logo: [str]?, carrier_text: [str]?}, status: str}

@endpoint POST /v1/issuing/personalization_designs/{personalization_design}
@required {personalization_design: str}
@returns(200) {card_logo: any?, carrier_text: any?, created: int(unix-time), id: str, livemode: bool, lookup_key: str?, metadata: map, name: str?, object: str, physical_bundle: any, preferences: map{is_default: bool, is_platform_default: bool?}, rejection_reasons: map{card_logo: [str]?, carrier_text: [str]?}, status: str}

@endpoint GET /v1/issuing/physical_bundles
@optional {ending_before: str, expand: [str], limit: int, starting_after: str, status: str(active/inactive/review), type: str(custom/standard)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/issuing/physical_bundles/{physical_bundle}
@required {physical_bundle: str}
@optional {expand: [str]}
@returns(200) {features: map{card_logo: str, carrier_text: str, second_line: str}, id: str, livemode: bool, name: str, object: str, status: str, type: str}

@endpoint GET /v1/issuing/settlements/{settlement}
@required {settlement: str}
@optional {expand: [str]}
@returns(200) {bin: str, clearing_date: int(unix-time), created: int(unix-time), currency: str(currency), id: str, interchange_fees_amount: int, livemode: bool, metadata: map, net_total_amount: int, network: str, network_fees_amount: int, network_settlement_identifier: str, object: str, settlement_service: str, status: str, transaction_amount: int, transaction_count: int}

@endpoint POST /v1/issuing/settlements/{settlement}
@required {settlement: str}
@returns(200) {bin: str, clearing_date: int(unix-time), created: int(unix-time), currency: str(currency), id: str, interchange_fees_amount: int, livemode: bool, metadata: map, net_total_amount: int, network: str, network_fees_amount: int, network_settlement_identifier: str, object: str, settlement_service: str, status: str, transaction_amount: int, transaction_count: int}

@endpoint GET /v1/issuing/tokens
@required {card: str}
@optional {created: any, ending_before: str, expand: [str], limit: int, starting_after: str, status: str(active/deleted/requested/suspended)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/issuing/tokens/{token}
@required {token: str}
@optional {expand: [str]}
@returns(200) {card: any, created: int(unix-time), device_fingerprint: str?, id: str, last4: str, livemode: bool, network: str, network_data: map{device: map{device_fingerprint: str, ip_address: str, location: str, name: str, phone_number: str, type: str}, mastercard: map{card_reference_id: str, token_reference_id: str, token_requestor_id: str, token_requestor_name: str}, type: str, visa: map{card_reference_id: str?, token_reference_id: str, token_requestor_id: str, token_risk_score: str}, wallet_provider: map{account_id: str, account_trust_score: int, card_number_source: str, cardholder_address: map{line1: str, postal_code: str}, cardholder_name: str, device_trust_score: int, hashed_account_email_address: str, reason_codes: [str], suggested_decision: str, suggested_decision_version: str}}, network_updated_at: int(unix-time), object: str, status: str, wallet_provider: str}

@endpoint POST /v1/issuing/tokens/{token}
@required {token: str}
@returns(200) {card: any, created: int(unix-time), device_fingerprint: str?, id: str, last4: str, livemode: bool, network: str, network_data: map{device: map{device_fingerprint: str, ip_address: str, location: str, name: str, phone_number: str, type: str}, mastercard: map{card_reference_id: str, token_reference_id: str, token_requestor_id: str, token_requestor_name: str}, type: str, visa: map{card_reference_id: str?, token_reference_id: str, token_requestor_id: str, token_risk_score: str}, wallet_provider: map{account_id: str, account_trust_score: int, card_number_source: str, cardholder_address: map{line1: str, postal_code: str}, cardholder_name: str, device_trust_score: int, hashed_account_email_address: str, reason_codes: [str], suggested_decision: str, suggested_decision_version: str}}, network_updated_at: int(unix-time), object: str, status: str, wallet_provider: str}

@endpoint GET /v1/issuing/transactions
@optional {card: str, cardholder: str, created: any, ending_before: str, expand: [str], limit: int, starting_after: str, type: str(capture/refund)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/issuing/transactions/{transaction}
@required {transaction: str}
@optional {expand: [str]}
@returns(200) {amount: int, amount_details: any?, authorization: any?, balance_transaction: any?, card: any, cardholder: any?, created: int(unix-time), currency: str(currency), dispute: any?, id: str, livemode: bool, merchant_amount: int, merchant_currency: str(currency), merchant_data: map{category: str, category_code: str, city: str?, country: str?, name: str?, network_id: str, postal_code: str?, state: str?, tax_id: str?, terminal_id: str?, url: str?}, metadata: map, network_data: any?, object: str, purchase_details: any?, token: any?, treasury: any?, type: str, wallet: str?}

@endpoint POST /v1/issuing/transactions/{transaction}
@required {transaction: str}
@returns(200) {amount: int, amount_details: any?, authorization: any?, balance_transaction: any?, card: any, cardholder: any?, created: int(unix-time), currency: str(currency), dispute: any?, id: str, livemode: bool, merchant_amount: int, merchant_currency: str(currency), merchant_data: map{category: str, category_code: str, city: str?, country: str?, name: str?, network_id: str, postal_code: str?, state: str?, tax_id: str?, terminal_id: str?, url: str?}, metadata: map, network_data: any?, object: str, purchase_details: any?, token: any?, treasury: any?, type: str, wallet: str?}

@endgroup

@group link_account_sessions
@endpoint POST /v1/link_account_sessions
@returns(200) {account_holder: any?, accounts: map{data: [map], has_more: bool, object: str, url: str}, client_secret: str?, filters: map{account_subcategories: [str]?, countries: [str]?}, id: str, livemode: bool, object: str, permissions: [str], prefetch: [str]?, return_url: str}

@endpoint GET /v1/link_account_sessions/{session}
@required {session: str}
@optional {expand: [str]}
@returns(200) {account_holder: any?, accounts: map{data: [map], has_more: bool, object: str, url: str}, client_secret: str?, filters: map{account_subcategories: [str]?, countries: [str]?}, id: str, livemode: bool, object: str, permissions: [str], prefetch: [str]?, return_url: str}

@endgroup

@group linked_accounts
@endpoint GET /v1/linked_accounts
@optional {account_holder: map, ending_before: str, expand: [str], limit: int, session: str, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/linked_accounts/{account}
@required {account: str}
@optional {expand: [str]}
@returns(200) {account_holder: any?, account_numbers: [map]?, balance: any?, balance_refresh: any?, category: str, created: int(unix-time), display_name: str?, id: str, institution_name: str, last4: str?, livemode: bool, object: str, ownership: any?, ownership_refresh: any?, permissions: [str]?, status: str, subcategory: str, subscriptions: [str]?, supported_payment_method_types: [str], transaction_refresh: any?}

@endpoint POST /v1/linked_accounts/{account}/disconnect
@required {account: str}
@returns(200) {account_holder: any?, account_numbers: [map]?, balance: any?, balance_refresh: any?, category: str, created: int(unix-time), display_name: str?, id: str, institution_name: str, last4: str?, livemode: bool, object: str, ownership: any?, ownership_refresh: any?, permissions: [str]?, status: str, subcategory: str, subscriptions: [str]?, supported_payment_method_types: [str], transaction_refresh: any?}

@endpoint GET /v1/linked_accounts/{account}/owners
@required {account: str, ownership: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/linked_accounts/{account}/refresh
@required {account: str}
@returns(200) {account_holder: any?, account_numbers: [map]?, balance: any?, balance_refresh: any?, category: str, created: int(unix-time), display_name: str?, id: str, institution_name: str, last4: str?, livemode: bool, object: str, ownership: any?, ownership_refresh: any?, permissions: [str]?, status: str, subcategory: str, subscriptions: [str]?, supported_payment_method_types: [str], transaction_refresh: any?}

@endgroup

@group mandates
@endpoint GET /v1/mandates/{mandate}
@required {mandate: str}
@optional {expand: [str]}
@returns(200) {customer_acceptance: map{accepted_at: int(unix-time)?, offline: map, online: map{ip_address: str?, user_agent: str?}, type: str}, id: str, livemode: bool, multi_use: map, object: str, on_behalf_of: str, payment_method: any, payment_method_details: map{acss_debit: map{default_for: [str], interval_description: str?, payment_schedule: str, transaction_type: str}, amazon_pay: map, au_becs_debit: map{url: str}, bacs_debit: map{display_name: str?, network_status: str, reference: str, revocation_reason: str?, service_user_number: str?, url: str}, card: map, cashapp: map, kakao_pay: map, klarna: map, kr_card: map, link: map, naver_pay: map, nz_bank_account: map, paypal: map{billing_agreement_id: str?, payer_id: str?}, payto: map{amount: int?, amount_type: str, end_date: str?, payment_schedule: str, payments_per_period: int?, purpose: str?, start_date: str?}, revolut_pay: map, sepa_debit: map{reference: str, url: str}, type: str, upi: map{amount: int?, amount_type: str?, description: str?, end_date: int(unix-time)?}, us_bank_account: map{collection_method: str}}, single_use: map{amount: int, currency: str(currency)}, status: str, type: str}

@endgroup

@group payment_attempt_records
@endpoint GET /v1/payment_attempt_records
@required {payment_record: str}
@optional {expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/payment_attempt_records/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {amount: map{currency: str(currency), value: int}, amount_authorized: map{currency: str(currency), value: int}, amount_canceled: map{currency: str(currency), value: int}, amount_failed: map{currency: str(currency), value: int}, amount_guaranteed: map{currency: str(currency), value: int}, amount_refunded: map{currency: str(currency), value: int}, amount_requested: map{currency: str(currency), value: int}, application: str?, created: int(unix-time), customer_details: any?, customer_presence: str?, description: str?, id: str, livemode: bool, metadata: map, object: str, payment_method_details: any?, payment_record: str?, processor_details: map{custom: map{payment_reference: str?}, type: str}, reported_by: str, shipping_details: any?}

@endgroup

@group payment_intents
@endpoint GET /v1/payment_intents
@optional {created: any, customer: str, customer_account: str, ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/payment_intents
@returns(200) {amount: int, amount_capturable: int, amount_details: any, amount_received: int, application: any?, application_fee_amount: int?, automatic_payment_methods: any?, canceled_at: int(unix-time)?, cancellation_reason: str?, capture_method: str, client_secret: str?, confirmation_method: str, created: int(unix-time), currency: str(currency), customer: any?, customer_account: str?, description: str?, excluded_payment_method_types: [str]?, hooks: map{inputs: map{tax: map{calculation: str}}}, id: str, last_payment_error: any?, latest_charge: any?, livemode: bool, metadata: map, next_action: any?, object: str, on_behalf_of: any?, payment_details: map{customer_reference: str?, order_reference: str?}, payment_method: any?, payment_method_configuration_details: any?, payment_method_options: any?, payment_method_types: [str], presentment_details: map{presentment_amount: int, presentment_currency: str}, processing: any?, receipt_email: str?, review: any?, setup_future_usage: str?, shipping: any?, statement_descriptor: str?, statement_descriptor_suffix: str?, status: str, transfer_data: any?, transfer_group: str?}

@endpoint GET /v1/payment_intents/search
@required {query: str}
@optional {expand: [str], limit: int, page: str}
@returns(200) {data: [map], has_more: bool, next_page: str?, object: str, total_count: int, url: str}

@endpoint GET /v1/payment_intents/{intent}
@required {intent: str}
@optional {client_secret: str, expand: [str]}
@returns(200) {amount: int, amount_capturable: int, amount_details: any, amount_received: int, application: any?, application_fee_amount: int?, automatic_payment_methods: any?, canceled_at: int(unix-time)?, cancellation_reason: str?, capture_method: str, client_secret: str?, confirmation_method: str, created: int(unix-time), currency: str(currency), customer: any?, customer_account: str?, description: str?, excluded_payment_method_types: [str]?, hooks: map{inputs: map{tax: map{calculation: str}}}, id: str, last_payment_error: any?, latest_charge: any?, livemode: bool, metadata: map, next_action: any?, object: str, on_behalf_of: any?, payment_details: map{customer_reference: str?, order_reference: str?}, payment_method: any?, payment_method_configuration_details: any?, payment_method_options: any?, payment_method_types: [str], presentment_details: map{presentment_amount: int, presentment_currency: str}, processing: any?, receipt_email: str?, review: any?, setup_future_usage: str?, shipping: any?, statement_descriptor: str?, statement_descriptor_suffix: str?, status: str, transfer_data: any?, transfer_group: str?}

@endpoint POST /v1/payment_intents/{intent}
@required {intent: str}
@returns(200) {amount: int, amount_capturable: int, amount_details: any, amount_received: int, application: any?, application_fee_amount: int?, automatic_payment_methods: any?, canceled_at: int(unix-time)?, cancellation_reason: str?, capture_method: str, client_secret: str?, confirmation_method: str, created: int(unix-time), currency: str(currency), customer: any?, customer_account: str?, description: str?, excluded_payment_method_types: [str]?, hooks: map{inputs: map{tax: map{calculation: str}}}, id: str, last_payment_error: any?, latest_charge: any?, livemode: bool, metadata: map, next_action: any?, object: str, on_behalf_of: any?, payment_details: map{customer_reference: str?, order_reference: str?}, payment_method: any?, payment_method_configuration_details: any?, payment_method_options: any?, payment_method_types: [str], presentment_details: map{presentment_amount: int, presentment_currency: str}, processing: any?, receipt_email: str?, review: any?, setup_future_usage: str?, shipping: any?, statement_descriptor: str?, statement_descriptor_suffix: str?, status: str, transfer_data: any?, transfer_group: str?}

@endpoint GET /v1/payment_intents/{intent}/amount_details_line_items
@required {intent: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/payment_intents/{intent}/apply_customer_balance
@required {intent: str}
@returns(200) {amount: int, amount_capturable: int, amount_details: any, amount_received: int, application: any?, application_fee_amount: int?, automatic_payment_methods: any?, canceled_at: int(unix-time)?, cancellation_reason: str?, capture_method: str, client_secret: str?, confirmation_method: str, created: int(unix-time), currency: str(currency), customer: any?, customer_account: str?, description: str?, excluded_payment_method_types: [str]?, hooks: map{inputs: map{tax: map{calculation: str}}}, id: str, last_payment_error: any?, latest_charge: any?, livemode: bool, metadata: map, next_action: any?, object: str, on_behalf_of: any?, payment_details: map{customer_reference: str?, order_reference: str?}, payment_method: any?, payment_method_configuration_details: any?, payment_method_options: any?, payment_method_types: [str], presentment_details: map{presentment_amount: int, presentment_currency: str}, processing: any?, receipt_email: str?, review: any?, setup_future_usage: str?, shipping: any?, statement_descriptor: str?, statement_descriptor_suffix: str?, status: str, transfer_data: any?, transfer_group: str?}

@endpoint POST /v1/payment_intents/{intent}/cancel
@required {intent: str}
@returns(200) {amount: int, amount_capturable: int, amount_details: any, amount_received: int, application: any?, application_fee_amount: int?, automatic_payment_methods: any?, canceled_at: int(unix-time)?, cancellation_reason: str?, capture_method: str, client_secret: str?, confirmation_method: str, created: int(unix-time), currency: str(currency), customer: any?, customer_account: str?, description: str?, excluded_payment_method_types: [str]?, hooks: map{inputs: map{tax: map{calculation: str}}}, id: str, last_payment_error: any?, latest_charge: any?, livemode: bool, metadata: map, next_action: any?, object: str, on_behalf_of: any?, payment_details: map{customer_reference: str?, order_reference: str?}, payment_method: any?, payment_method_configuration_details: any?, payment_method_options: any?, payment_method_types: [str], presentment_details: map{presentment_amount: int, presentment_currency: str}, processing: any?, receipt_email: str?, review: any?, setup_future_usage: str?, shipping: any?, statement_descriptor: str?, statement_descriptor_suffix: str?, status: str, transfer_data: any?, transfer_group: str?}

@endpoint POST /v1/payment_intents/{intent}/capture
@required {intent: str}
@returns(200) {amount: int, amount_capturable: int, amount_details: any, amount_received: int, application: any?, application_fee_amount: int?, automatic_payment_methods: any?, canceled_at: int(unix-time)?, cancellation_reason: str?, capture_method: str, client_secret: str?, confirmation_method: str, created: int(unix-time), currency: str(currency), customer: any?, customer_account: str?, description: str?, excluded_payment_method_types: [str]?, hooks: map{inputs: map{tax: map{calculation: str}}}, id: str, last_payment_error: any?, latest_charge: any?, livemode: bool, metadata: map, next_action: any?, object: str, on_behalf_of: any?, payment_details: map{customer_reference: str?, order_reference: str?}, payment_method: any?, payment_method_configuration_details: any?, payment_method_options: any?, payment_method_types: [str], presentment_details: map{presentment_amount: int, presentment_currency: str}, processing: any?, receipt_email: str?, review: any?, setup_future_usage: str?, shipping: any?, statement_descriptor: str?, statement_descriptor_suffix: str?, status: str, transfer_data: any?, transfer_group: str?}

@endpoint POST /v1/payment_intents/{intent}/confirm
@required {intent: str}
@returns(200) {amount: int, amount_capturable: int, amount_details: any, amount_received: int, application: any?, application_fee_amount: int?, automatic_payment_methods: any?, canceled_at: int(unix-time)?, cancellation_reason: str?, capture_method: str, client_secret: str?, confirmation_method: str, created: int(unix-time), currency: str(currency), customer: any?, customer_account: str?, description: str?, excluded_payment_method_types: [str]?, hooks: map{inputs: map{tax: map{calculation: str}}}, id: str, last_payment_error: any?, latest_charge: any?, livemode: bool, metadata: map, next_action: any?, object: str, on_behalf_of: any?, payment_details: map{customer_reference: str?, order_reference: str?}, payment_method: any?, payment_method_configuration_details: any?, payment_method_options: any?, payment_method_types: [str], presentment_details: map{presentment_amount: int, presentment_currency: str}, processing: any?, receipt_email: str?, review: any?, setup_future_usage: str?, shipping: any?, statement_descriptor: str?, statement_descriptor_suffix: str?, status: str, transfer_data: any?, transfer_group: str?}

@endpoint POST /v1/payment_intents/{intent}/increment_authorization
@required {intent: str}
@returns(200) {amount: int, amount_capturable: int, amount_details: any, amount_received: int, application: any?, application_fee_amount: int?, automatic_payment_methods: any?, canceled_at: int(unix-time)?, cancellation_reason: str?, capture_method: str, client_secret: str?, confirmation_method: str, created: int(unix-time), currency: str(currency), customer: any?, customer_account: str?, description: str?, excluded_payment_method_types: [str]?, hooks: map{inputs: map{tax: map{calculation: str}}}, id: str, last_payment_error: any?, latest_charge: any?, livemode: bool, metadata: map, next_action: any?, object: str, on_behalf_of: any?, payment_details: map{customer_reference: str?, order_reference: str?}, payment_method: any?, payment_method_configuration_details: any?, payment_method_options: any?, payment_method_types: [str], presentment_details: map{presentment_amount: int, presentment_currency: str}, processing: any?, receipt_email: str?, review: any?, setup_future_usage: str?, shipping: any?, statement_descriptor: str?, statement_descriptor_suffix: str?, status: str, transfer_data: any?, transfer_group: str?}

@endpoint POST /v1/payment_intents/{intent}/verify_microdeposits
@required {intent: str}
@returns(200) {amount: int, amount_capturable: int, amount_details: any, amount_received: int, application: any?, application_fee_amount: int?, automatic_payment_methods: any?, canceled_at: int(unix-time)?, cancellation_reason: str?, capture_method: str, client_secret: str?, confirmation_method: str, created: int(unix-time), currency: str(currency), customer: any?, customer_account: str?, description: str?, excluded_payment_method_types: [str]?, hooks: map{inputs: map{tax: map{calculation: str}}}, id: str, last_payment_error: any?, latest_charge: any?, livemode: bool, metadata: map, next_action: any?, object: str, on_behalf_of: any?, payment_details: map{customer_reference: str?, order_reference: str?}, payment_method: any?, payment_method_configuration_details: any?, payment_method_options: any?, payment_method_types: [str], presentment_details: map{presentment_amount: int, presentment_currency: str}, processing: any?, receipt_email: str?, review: any?, setup_future_usage: str?, shipping: any?, statement_descriptor: str?, statement_descriptor_suffix: str?, status: str, transfer_data: any?, transfer_group: str?}

@endgroup

@group payment_links
@endpoint GET /v1/payment_links
@optional {active: bool, ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/payment_links
@returns(200) {active: bool, after_completion: map{hosted_confirmation: map{custom_message: str?}, redirect: map{url: str}, type: str}, allow_promotion_codes: bool, application: any?, application_fee_amount: int?, application_fee_percent: num?, automatic_tax: map{enabled: bool, liability: any?}, billing_address_collection: str, consent_collection: any?, currency: str(currency), custom_fields: [map], custom_text: map{after_submit: any?, shipping_address: any?, submit: any?, terms_of_service_acceptance: any?}, customer_creation: str, id: str, inactive_message: str?, invoice_creation: any?, line_items: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map, name_collection: map{business: map{enabled: bool, optional: bool}, individual: map{enabled: bool, optional: bool}}, object: str, on_behalf_of: any?, optional_items: [map]?, payment_intent_data: any?, payment_method_collection: str, payment_method_types: [str]?, phone_number_collection: map{enabled: bool}, restrictions: any?, shipping_address_collection: any?, shipping_options: [map], submit_type: str, subscription_data: any?, tax_id_collection: map{enabled: bool, required: str}, transfer_data: any?, url: str}

@endpoint GET /v1/payment_links/{payment_link}
@required {payment_link: str}
@optional {expand: [str]}
@returns(200) {active: bool, after_completion: map{hosted_confirmation: map{custom_message: str?}, redirect: map{url: str}, type: str}, allow_promotion_codes: bool, application: any?, application_fee_amount: int?, application_fee_percent: num?, automatic_tax: map{enabled: bool, liability: any?}, billing_address_collection: str, consent_collection: any?, currency: str(currency), custom_fields: [map], custom_text: map{after_submit: any?, shipping_address: any?, submit: any?, terms_of_service_acceptance: any?}, customer_creation: str, id: str, inactive_message: str?, invoice_creation: any?, line_items: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map, name_collection: map{business: map{enabled: bool, optional: bool}, individual: map{enabled: bool, optional: bool}}, object: str, on_behalf_of: any?, optional_items: [map]?, payment_intent_data: any?, payment_method_collection: str, payment_method_types: [str]?, phone_number_collection: map{enabled: bool}, restrictions: any?, shipping_address_collection: any?, shipping_options: [map], submit_type: str, subscription_data: any?, tax_id_collection: map{enabled: bool, required: str}, transfer_data: any?, url: str}

@endpoint POST /v1/payment_links/{payment_link}
@required {payment_link: str}
@returns(200) {active: bool, after_completion: map{hosted_confirmation: map{custom_message: str?}, redirect: map{url: str}, type: str}, allow_promotion_codes: bool, application: any?, application_fee_amount: int?, application_fee_percent: num?, automatic_tax: map{enabled: bool, liability: any?}, billing_address_collection: str, consent_collection: any?, currency: str(currency), custom_fields: [map], custom_text: map{after_submit: any?, shipping_address: any?, submit: any?, terms_of_service_acceptance: any?}, customer_creation: str, id: str, inactive_message: str?, invoice_creation: any?, line_items: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map, name_collection: map{business: map{enabled: bool, optional: bool}, individual: map{enabled: bool, optional: bool}}, object: str, on_behalf_of: any?, optional_items: [map]?, payment_intent_data: any?, payment_method_collection: str, payment_method_types: [str]?, phone_number_collection: map{enabled: bool}, restrictions: any?, shipping_address_collection: any?, shipping_options: [map], submit_type: str, subscription_data: any?, tax_id_collection: map{enabled: bool, required: str}, transfer_data: any?, url: str}

@endpoint GET /v1/payment_links/{payment_link}/line_items
@required {payment_link: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endgroup

@group payment_method_configurations
@endpoint GET /v1/payment_method_configurations
@optional {application: any, ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/payment_method_configurations
@returns(200) {acss_debit: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, active: bool, affirm: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, afterpay_clearpay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, alipay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, alma: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, amazon_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, apple_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, application: str?, au_becs_debit: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, bacs_debit: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, bancontact: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, billie: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, blik: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, boleto: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, card: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, cartes_bancaires: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, cashapp: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, crypto: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, customer_balance: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, eps: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, fpx: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, giropay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, google_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, grabpay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, id: str, ideal: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, is_default: bool, jcb: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, kakao_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, klarna: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, konbini: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, kr_card: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, link: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, livemode: bool, mb_way: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, mobilepay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, multibanco: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, name: str, naver_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, nz_bank_account: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, object: str, oxxo: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, p24: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, parent: str?, pay_by_bank: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, payco: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, paynow: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, paypal: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, payto: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, pix: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, promptpay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, revolut_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, samsung_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, satispay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, sepa_debit: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, sofort: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, swish: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, twint: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, upi: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, us_bank_account: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, wechat_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, zip: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}}

@endpoint GET /v1/payment_method_configurations/{configuration}
@required {configuration: str}
@optional {expand: [str]}
@returns(200) {acss_debit: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, active: bool, affirm: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, afterpay_clearpay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, alipay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, alma: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, amazon_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, apple_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, application: str?, au_becs_debit: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, bacs_debit: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, bancontact: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, billie: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, blik: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, boleto: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, card: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, cartes_bancaires: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, cashapp: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, crypto: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, customer_balance: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, eps: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, fpx: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, giropay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, google_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, grabpay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, id: str, ideal: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, is_default: bool, jcb: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, kakao_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, klarna: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, konbini: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, kr_card: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, link: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, livemode: bool, mb_way: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, mobilepay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, multibanco: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, name: str, naver_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, nz_bank_account: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, object: str, oxxo: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, p24: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, parent: str?, pay_by_bank: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, payco: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, paynow: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, paypal: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, payto: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, pix: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, promptpay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, revolut_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, samsung_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, satispay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, sepa_debit: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, sofort: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, swish: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, twint: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, upi: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, us_bank_account: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, wechat_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, zip: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}}

@endpoint POST /v1/payment_method_configurations/{configuration}
@required {configuration: str}
@returns(200) {acss_debit: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, active: bool, affirm: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, afterpay_clearpay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, alipay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, alma: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, amazon_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, apple_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, application: str?, au_becs_debit: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, bacs_debit: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, bancontact: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, billie: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, blik: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, boleto: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, card: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, cartes_bancaires: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, cashapp: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, crypto: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, customer_balance: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, eps: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, fpx: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, giropay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, google_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, grabpay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, id: str, ideal: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, is_default: bool, jcb: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, kakao_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, klarna: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, konbini: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, kr_card: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, link: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, livemode: bool, mb_way: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, mobilepay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, multibanco: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, name: str, naver_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, nz_bank_account: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, object: str, oxxo: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, p24: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, parent: str?, pay_by_bank: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, payco: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, paynow: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, paypal: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, payto: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, pix: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, promptpay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, revolut_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, samsung_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, satispay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, sepa_debit: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, sofort: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, swish: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, twint: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, upi: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, us_bank_account: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, wechat_pay: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}, zip: map{available: bool, display_preference: map{overridable: bool?, preference: str, value: str}}}

@endgroup

@group payment_method_domains
@endpoint GET /v1/payment_method_domains
@optional {domain_name: str, enabled: bool, ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/payment_method_domains
@returns(200) {amazon_pay: map{status: str, status_details: map{error_message: str}}, apple_pay: map{status: str, status_details: map{error_message: str}}, created: int(unix-time), domain_name: str, enabled: bool, google_pay: map{status: str, status_details: map{error_message: str}}, id: str, klarna: map{status: str, status_details: map{error_message: str}}, link: map{status: str, status_details: map{error_message: str}}, livemode: bool, object: str, paypal: map{status: str, status_details: map{error_message: str}}}

@endpoint GET /v1/payment_method_domains/{payment_method_domain}
@required {payment_method_domain: str}
@optional {expand: [str]}
@returns(200) {amazon_pay: map{status: str, status_details: map{error_message: str}}, apple_pay: map{status: str, status_details: map{error_message: str}}, created: int(unix-time), domain_name: str, enabled: bool, google_pay: map{status: str, status_details: map{error_message: str}}, id: str, klarna: map{status: str, status_details: map{error_message: str}}, link: map{status: str, status_details: map{error_message: str}}, livemode: bool, object: str, paypal: map{status: str, status_details: map{error_message: str}}}

@endpoint POST /v1/payment_method_domains/{payment_method_domain}
@required {payment_method_domain: str}
@returns(200) {amazon_pay: map{status: str, status_details: map{error_message: str}}, apple_pay: map{status: str, status_details: map{error_message: str}}, created: int(unix-time), domain_name: str, enabled: bool, google_pay: map{status: str, status_details: map{error_message: str}}, id: str, klarna: map{status: str, status_details: map{error_message: str}}, link: map{status: str, status_details: map{error_message: str}}, livemode: bool, object: str, paypal: map{status: str, status_details: map{error_message: str}}}

@endpoint POST /v1/payment_method_domains/{payment_method_domain}/validate
@required {payment_method_domain: str}
@returns(200) {amazon_pay: map{status: str, status_details: map{error_message: str}}, apple_pay: map{status: str, status_details: map{error_message: str}}, created: int(unix-time), domain_name: str, enabled: bool, google_pay: map{status: str, status_details: map{error_message: str}}, id: str, klarna: map{status: str, status_details: map{error_message: str}}, link: map{status: str, status_details: map{error_message: str}}, livemode: bool, object: str, paypal: map{status: str, status_details: map{error_message: str}}}

@endgroup

@group payment_methods
@endpoint GET /v1/payment_methods
@optional {allow_redisplay: str(always/limited/unspecified), customer: str, customer_account: str, ending_before: str, expand: [str], limit: int, starting_after: str, type: str(acss_debit/affirm/afterpay_clearpay/alipay/alma/amazon_pay/au_becs_debit/bacs_debit/bancontact/billie/blik/boleto/card/cashapp/crypto/custom/customer_balance/eps/fpx/giropay/grabpay/ideal/kakao_pay/klarna/konbini/kr_card/link/mb_way/mobilepay/multibanco/naver_pay/nz_bank_account/oxxo/p24/pay_by_bank/payco/paynow/paypal/payto/pix/promptpay/revolut_pay/samsung_pay/satispay/sepa_debit/sofort/swish/twint/upi/us_bank_account/wechat_pay/zip)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/payment_methods
@returns(200) {acss_debit: map{bank_name: str?, fingerprint: str?, institution_number: str?, last4: str?, transit_number: str?}, affirm: map, afterpay_clearpay: map, alipay: map, allow_redisplay: str, alma: map, amazon_pay: map, au_becs_debit: map{bsb_number: str?, fingerprint: str?, last4: str?}, bacs_debit: map{fingerprint: str?, last4: str?, sort_code: str?}, bancontact: map, billie: map, billing_details: map{address: any?, email: str?, name: str?, phone: str?, tax_id: str?}, blik: map, boleto: map{tax_id: str}, card: map{brand: str, checks: any?, country: str?, display_brand: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str, generated_from: any?, last4: str, networks: any?, regulated_status: str?, three_d_secure_usage: any?, wallet: any?}, card_present: map{brand: str?, brand_product: str?, cardholder_name: str?, country: str?, description: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str?, issuer: str?, last4: str?, networks: any?, offline: any?, preferred_locales: [str]?, read_method: str?, wallet: map{type: str}}, cashapp: map{buyer_id: str?, cashtag: str?}, created: int(unix-time), crypto: map, custom: map{display_name: str?, logo: any?, type: str}, customer: any?, customer_account: str?, customer_balance: map, eps: map{bank: str?}, fpx: map{bank: str}, giropay: map, grabpay: map, id: str, ideal: map{bank: str?, bic: str?}, interac_present: map{brand: str?, cardholder_name: str?, country: str?, description: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str?, issuer: str?, last4: str?, networks: any?, preferred_locales: [str]?, read_method: str?}, kakao_pay: map, klarna: map{dob: any?}, konbini: map, kr_card: map{brand: str?, last4: str?}, link: map{email: str?}, livemode: bool, mb_way: map, metadata: map?, mobilepay: map, multibanco: map, naver_pay: map{buyer_id: str?, funding: str}, nz_bank_account: map{account_holder_name: str?, bank_code: str, bank_name: str, branch_code: str, last4: str, suffix: str?}, object: str, oxxo: map, p24: map{bank: str?}, pay_by_bank: map, payco: map, paynow: map, paypal: map{country: str?, payer_email: str?, payer_id: str?}, payto: map{bsb_number: str?, last4: str?, pay_id: str?}, pix: map, promptpay: map, radar_options: map{session: str}, revolut_pay: map, samsung_pay: map, satispay: map, sepa_debit: map{bank_code: str?, branch_code: str?, country: str?, fingerprint: str?, generated_from: any?, last4: str?}, sofort: map{country: str?}, swish: map, twint: map, type: str, upi: map{vpa: str?}, us_bank_account: map{account_holder_type: str?, account_type: str?, bank_name: str?, financial_connections_account: str?, fingerprint: str?, last4: str?, networks: any?, routing_number: str?, status_details: any?}, wechat_pay: map, zip: map}

@endpoint GET /v1/payment_methods/{payment_method}
@required {payment_method: str}
@optional {expand: [str]}
@returns(200) {acss_debit: map{bank_name: str?, fingerprint: str?, institution_number: str?, last4: str?, transit_number: str?}, affirm: map, afterpay_clearpay: map, alipay: map, allow_redisplay: str, alma: map, amazon_pay: map, au_becs_debit: map{bsb_number: str?, fingerprint: str?, last4: str?}, bacs_debit: map{fingerprint: str?, last4: str?, sort_code: str?}, bancontact: map, billie: map, billing_details: map{address: any?, email: str?, name: str?, phone: str?, tax_id: str?}, blik: map, boleto: map{tax_id: str}, card: map{brand: str, checks: any?, country: str?, display_brand: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str, generated_from: any?, last4: str, networks: any?, regulated_status: str?, three_d_secure_usage: any?, wallet: any?}, card_present: map{brand: str?, brand_product: str?, cardholder_name: str?, country: str?, description: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str?, issuer: str?, last4: str?, networks: any?, offline: any?, preferred_locales: [str]?, read_method: str?, wallet: map{type: str}}, cashapp: map{buyer_id: str?, cashtag: str?}, created: int(unix-time), crypto: map, custom: map{display_name: str?, logo: any?, type: str}, customer: any?, customer_account: str?, customer_balance: map, eps: map{bank: str?}, fpx: map{bank: str}, giropay: map, grabpay: map, id: str, ideal: map{bank: str?, bic: str?}, interac_present: map{brand: str?, cardholder_name: str?, country: str?, description: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str?, issuer: str?, last4: str?, networks: any?, preferred_locales: [str]?, read_method: str?}, kakao_pay: map, klarna: map{dob: any?}, konbini: map, kr_card: map{brand: str?, last4: str?}, link: map{email: str?}, livemode: bool, mb_way: map, metadata: map?, mobilepay: map, multibanco: map, naver_pay: map{buyer_id: str?, funding: str}, nz_bank_account: map{account_holder_name: str?, bank_code: str, bank_name: str, branch_code: str, last4: str, suffix: str?}, object: str, oxxo: map, p24: map{bank: str?}, pay_by_bank: map, payco: map, paynow: map, paypal: map{country: str?, payer_email: str?, payer_id: str?}, payto: map{bsb_number: str?, last4: str?, pay_id: str?}, pix: map, promptpay: map, radar_options: map{session: str}, revolut_pay: map, samsung_pay: map, satispay: map, sepa_debit: map{bank_code: str?, branch_code: str?, country: str?, fingerprint: str?, generated_from: any?, last4: str?}, sofort: map{country: str?}, swish: map, twint: map, type: str, upi: map{vpa: str?}, us_bank_account: map{account_holder_type: str?, account_type: str?, bank_name: str?, financial_connections_account: str?, fingerprint: str?, last4: str?, networks: any?, routing_number: str?, status_details: any?}, wechat_pay: map, zip: map}

@endpoint POST /v1/payment_methods/{payment_method}
@required {payment_method: str}
@returns(200) {acss_debit: map{bank_name: str?, fingerprint: str?, institution_number: str?, last4: str?, transit_number: str?}, affirm: map, afterpay_clearpay: map, alipay: map, allow_redisplay: str, alma: map, amazon_pay: map, au_becs_debit: map{bsb_number: str?, fingerprint: str?, last4: str?}, bacs_debit: map{fingerprint: str?, last4: str?, sort_code: str?}, bancontact: map, billie: map, billing_details: map{address: any?, email: str?, name: str?, phone: str?, tax_id: str?}, blik: map, boleto: map{tax_id: str}, card: map{brand: str, checks: any?, country: str?, display_brand: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str, generated_from: any?, last4: str, networks: any?, regulated_status: str?, three_d_secure_usage: any?, wallet: any?}, card_present: map{brand: str?, brand_product: str?, cardholder_name: str?, country: str?, description: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str?, issuer: str?, last4: str?, networks: any?, offline: any?, preferred_locales: [str]?, read_method: str?, wallet: map{type: str}}, cashapp: map{buyer_id: str?, cashtag: str?}, created: int(unix-time), crypto: map, custom: map{display_name: str?, logo: any?, type: str}, customer: any?, customer_account: str?, customer_balance: map, eps: map{bank: str?}, fpx: map{bank: str}, giropay: map, grabpay: map, id: str, ideal: map{bank: str?, bic: str?}, interac_present: map{brand: str?, cardholder_name: str?, country: str?, description: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str?, issuer: str?, last4: str?, networks: any?, preferred_locales: [str]?, read_method: str?}, kakao_pay: map, klarna: map{dob: any?}, konbini: map, kr_card: map{brand: str?, last4: str?}, link: map{email: str?}, livemode: bool, mb_way: map, metadata: map?, mobilepay: map, multibanco: map, naver_pay: map{buyer_id: str?, funding: str}, nz_bank_account: map{account_holder_name: str?, bank_code: str, bank_name: str, branch_code: str, last4: str, suffix: str?}, object: str, oxxo: map, p24: map{bank: str?}, pay_by_bank: map, payco: map, paynow: map, paypal: map{country: str?, payer_email: str?, payer_id: str?}, payto: map{bsb_number: str?, last4: str?, pay_id: str?}, pix: map, promptpay: map, radar_options: map{session: str}, revolut_pay: map, samsung_pay: map, satispay: map, sepa_debit: map{bank_code: str?, branch_code: str?, country: str?, fingerprint: str?, generated_from: any?, last4: str?}, sofort: map{country: str?}, swish: map, twint: map, type: str, upi: map{vpa: str?}, us_bank_account: map{account_holder_type: str?, account_type: str?, bank_name: str?, financial_connections_account: str?, fingerprint: str?, last4: str?, networks: any?, routing_number: str?, status_details: any?}, wechat_pay: map, zip: map}

@endpoint POST /v1/payment_methods/{payment_method}/attach
@required {payment_method: str}
@returns(200) {acss_debit: map{bank_name: str?, fingerprint: str?, institution_number: str?, last4: str?, transit_number: str?}, affirm: map, afterpay_clearpay: map, alipay: map, allow_redisplay: str, alma: map, amazon_pay: map, au_becs_debit: map{bsb_number: str?, fingerprint: str?, last4: str?}, bacs_debit: map{fingerprint: str?, last4: str?, sort_code: str?}, bancontact: map, billie: map, billing_details: map{address: any?, email: str?, name: str?, phone: str?, tax_id: str?}, blik: map, boleto: map{tax_id: str}, card: map{brand: str, checks: any?, country: str?, display_brand: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str, generated_from: any?, last4: str, networks: any?, regulated_status: str?, three_d_secure_usage: any?, wallet: any?}, card_present: map{brand: str?, brand_product: str?, cardholder_name: str?, country: str?, description: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str?, issuer: str?, last4: str?, networks: any?, offline: any?, preferred_locales: [str]?, read_method: str?, wallet: map{type: str}}, cashapp: map{buyer_id: str?, cashtag: str?}, created: int(unix-time), crypto: map, custom: map{display_name: str?, logo: any?, type: str}, customer: any?, customer_account: str?, customer_balance: map, eps: map{bank: str?}, fpx: map{bank: str}, giropay: map, grabpay: map, id: str, ideal: map{bank: str?, bic: str?}, interac_present: map{brand: str?, cardholder_name: str?, country: str?, description: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str?, issuer: str?, last4: str?, networks: any?, preferred_locales: [str]?, read_method: str?}, kakao_pay: map, klarna: map{dob: any?}, konbini: map, kr_card: map{brand: str?, last4: str?}, link: map{email: str?}, livemode: bool, mb_way: map, metadata: map?, mobilepay: map, multibanco: map, naver_pay: map{buyer_id: str?, funding: str}, nz_bank_account: map{account_holder_name: str?, bank_code: str, bank_name: str, branch_code: str, last4: str, suffix: str?}, object: str, oxxo: map, p24: map{bank: str?}, pay_by_bank: map, payco: map, paynow: map, paypal: map{country: str?, payer_email: str?, payer_id: str?}, payto: map{bsb_number: str?, last4: str?, pay_id: str?}, pix: map, promptpay: map, radar_options: map{session: str}, revolut_pay: map, samsung_pay: map, satispay: map, sepa_debit: map{bank_code: str?, branch_code: str?, country: str?, fingerprint: str?, generated_from: any?, last4: str?}, sofort: map{country: str?}, swish: map, twint: map, type: str, upi: map{vpa: str?}, us_bank_account: map{account_holder_type: str?, account_type: str?, bank_name: str?, financial_connections_account: str?, fingerprint: str?, last4: str?, networks: any?, routing_number: str?, status_details: any?}, wechat_pay: map, zip: map}

@endpoint POST /v1/payment_methods/{payment_method}/detach
@required {payment_method: str}
@returns(200) {acss_debit: map{bank_name: str?, fingerprint: str?, institution_number: str?, last4: str?, transit_number: str?}, affirm: map, afterpay_clearpay: map, alipay: map, allow_redisplay: str, alma: map, amazon_pay: map, au_becs_debit: map{bsb_number: str?, fingerprint: str?, last4: str?}, bacs_debit: map{fingerprint: str?, last4: str?, sort_code: str?}, bancontact: map, billie: map, billing_details: map{address: any?, email: str?, name: str?, phone: str?, tax_id: str?}, blik: map, boleto: map{tax_id: str}, card: map{brand: str, checks: any?, country: str?, display_brand: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str, generated_from: any?, last4: str, networks: any?, regulated_status: str?, three_d_secure_usage: any?, wallet: any?}, card_present: map{brand: str?, brand_product: str?, cardholder_name: str?, country: str?, description: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str?, issuer: str?, last4: str?, networks: any?, offline: any?, preferred_locales: [str]?, read_method: str?, wallet: map{type: str}}, cashapp: map{buyer_id: str?, cashtag: str?}, created: int(unix-time), crypto: map, custom: map{display_name: str?, logo: any?, type: str}, customer: any?, customer_account: str?, customer_balance: map, eps: map{bank: str?}, fpx: map{bank: str}, giropay: map, grabpay: map, id: str, ideal: map{bank: str?, bic: str?}, interac_present: map{brand: str?, cardholder_name: str?, country: str?, description: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str?, issuer: str?, last4: str?, networks: any?, preferred_locales: [str]?, read_method: str?}, kakao_pay: map, klarna: map{dob: any?}, konbini: map, kr_card: map{brand: str?, last4: str?}, link: map{email: str?}, livemode: bool, mb_way: map, metadata: map?, mobilepay: map, multibanco: map, naver_pay: map{buyer_id: str?, funding: str}, nz_bank_account: map{account_holder_name: str?, bank_code: str, bank_name: str, branch_code: str, last4: str, suffix: str?}, object: str, oxxo: map, p24: map{bank: str?}, pay_by_bank: map, payco: map, paynow: map, paypal: map{country: str?, payer_email: str?, payer_id: str?}, payto: map{bsb_number: str?, last4: str?, pay_id: str?}, pix: map, promptpay: map, radar_options: map{session: str}, revolut_pay: map, samsung_pay: map, satispay: map, sepa_debit: map{bank_code: str?, branch_code: str?, country: str?, fingerprint: str?, generated_from: any?, last4: str?}, sofort: map{country: str?}, swish: map, twint: map, type: str, upi: map{vpa: str?}, us_bank_account: map{account_holder_type: str?, account_type: str?, bank_name: str?, financial_connections_account: str?, fingerprint: str?, last4: str?, networks: any?, routing_number: str?, status_details: any?}, wechat_pay: map, zip: map}

@endgroup

@group payment_records
@endpoint POST /v1/payment_records/report_payment
@returns(200) {amount: map{currency: str(currency), value: int}, amount_authorized: map{currency: str(currency), value: int}, amount_canceled: map{currency: str(currency), value: int}, amount_failed: map{currency: str(currency), value: int}, amount_guaranteed: map{currency: str(currency), value: int}, amount_refunded: map{currency: str(currency), value: int}, amount_requested: map{currency: str(currency), value: int}, application: str?, created: int(unix-time), customer_details: any?, customer_presence: str?, description: str?, id: str, latest_payment_attempt_record: str?, livemode: bool, metadata: map, object: str, payment_method_details: any?, processor_details: map{custom: map{payment_reference: str?}, type: str}, reported_by: str, shipping_details: any?}

@endpoint GET /v1/payment_records/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {amount: map{currency: str(currency), value: int}, amount_authorized: map{currency: str(currency), value: int}, amount_canceled: map{currency: str(currency), value: int}, amount_failed: map{currency: str(currency), value: int}, amount_guaranteed: map{currency: str(currency), value: int}, amount_refunded: map{currency: str(currency), value: int}, amount_requested: map{currency: str(currency), value: int}, application: str?, created: int(unix-time), customer_details: any?, customer_presence: str?, description: str?, id: str, latest_payment_attempt_record: str?, livemode: bool, metadata: map, object: str, payment_method_details: any?, processor_details: map{custom: map{payment_reference: str?}, type: str}, reported_by: str, shipping_details: any?}

@endpoint POST /v1/payment_records/{id}/report_payment_attempt
@required {id: str}
@returns(200) {amount: map{currency: str(currency), value: int}, amount_authorized: map{currency: str(currency), value: int}, amount_canceled: map{currency: str(currency), value: int}, amount_failed: map{currency: str(currency), value: int}, amount_guaranteed: map{currency: str(currency), value: int}, amount_refunded: map{currency: str(currency), value: int}, amount_requested: map{currency: str(currency), value: int}, application: str?, created: int(unix-time), customer_details: any?, customer_presence: str?, description: str?, id: str, latest_payment_attempt_record: str?, livemode: bool, metadata: map, object: str, payment_method_details: any?, processor_details: map{custom: map{payment_reference: str?}, type: str}, reported_by: str, shipping_details: any?}

@endpoint POST /v1/payment_records/{id}/report_payment_attempt_canceled
@required {id: str}
@returns(200) {amount: map{currency: str(currency), value: int}, amount_authorized: map{currency: str(currency), value: int}, amount_canceled: map{currency: str(currency), value: int}, amount_failed: map{currency: str(currency), value: int}, amount_guaranteed: map{currency: str(currency), value: int}, amount_refunded: map{currency: str(currency), value: int}, amount_requested: map{currency: str(currency), value: int}, application: str?, created: int(unix-time), customer_details: any?, customer_presence: str?, description: str?, id: str, latest_payment_attempt_record: str?, livemode: bool, metadata: map, object: str, payment_method_details: any?, processor_details: map{custom: map{payment_reference: str?}, type: str}, reported_by: str, shipping_details: any?}

@endpoint POST /v1/payment_records/{id}/report_payment_attempt_failed
@required {id: str}
@returns(200) {amount: map{currency: str(currency), value: int}, amount_authorized: map{currency: str(currency), value: int}, amount_canceled: map{currency: str(currency), value: int}, amount_failed: map{currency: str(currency), value: int}, amount_guaranteed: map{currency: str(currency), value: int}, amount_refunded: map{currency: str(currency), value: int}, amount_requested: map{currency: str(currency), value: int}, application: str?, created: int(unix-time), customer_details: any?, customer_presence: str?, description: str?, id: str, latest_payment_attempt_record: str?, livemode: bool, metadata: map, object: str, payment_method_details: any?, processor_details: map{custom: map{payment_reference: str?}, type: str}, reported_by: str, shipping_details: any?}

@endpoint POST /v1/payment_records/{id}/report_payment_attempt_guaranteed
@required {id: str}
@returns(200) {amount: map{currency: str(currency), value: int}, amount_authorized: map{currency: str(currency), value: int}, amount_canceled: map{currency: str(currency), value: int}, amount_failed: map{currency: str(currency), value: int}, amount_guaranteed: map{currency: str(currency), value: int}, amount_refunded: map{currency: str(currency), value: int}, amount_requested: map{currency: str(currency), value: int}, application: str?, created: int(unix-time), customer_details: any?, customer_presence: str?, description: str?, id: str, latest_payment_attempt_record: str?, livemode: bool, metadata: map, object: str, payment_method_details: any?, processor_details: map{custom: map{payment_reference: str?}, type: str}, reported_by: str, shipping_details: any?}

@endpoint POST /v1/payment_records/{id}/report_payment_attempt_informational
@required {id: str}
@returns(200) {amount: map{currency: str(currency), value: int}, amount_authorized: map{currency: str(currency), value: int}, amount_canceled: map{currency: str(currency), value: int}, amount_failed: map{currency: str(currency), value: int}, amount_guaranteed: map{currency: str(currency), value: int}, amount_refunded: map{currency: str(currency), value: int}, amount_requested: map{currency: str(currency), value: int}, application: str?, created: int(unix-time), customer_details: any?, customer_presence: str?, description: str?, id: str, latest_payment_attempt_record: str?, livemode: bool, metadata: map, object: str, payment_method_details: any?, processor_details: map{custom: map{payment_reference: str?}, type: str}, reported_by: str, shipping_details: any?}

@endpoint POST /v1/payment_records/{id}/report_refund
@required {id: str}
@returns(200) {amount: map{currency: str(currency), value: int}, amount_authorized: map{currency: str(currency), value: int}, amount_canceled: map{currency: str(currency), value: int}, amount_failed: map{currency: str(currency), value: int}, amount_guaranteed: map{currency: str(currency), value: int}, amount_refunded: map{currency: str(currency), value: int}, amount_requested: map{currency: str(currency), value: int}, application: str?, created: int(unix-time), customer_details: any?, customer_presence: str?, description: str?, id: str, latest_payment_attempt_record: str?, livemode: bool, metadata: map, object: str, payment_method_details: any?, processor_details: map{custom: map{payment_reference: str?}, type: str}, reported_by: str, shipping_details: any?}

@endgroup

@group payouts
@endpoint GET /v1/payouts
@optional {arrival_date: any, created: any, destination: str, ending_before: str, expand: [str], limit: int, starting_after: str, status: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/payouts
@returns(200) {amount: int, application_fee: any?, application_fee_amount: int?, arrival_date: int(unix-time), automatic: bool, balance_transaction: any?, created: int(unix-time), currency: str(currency), description: str?, destination: any?, failure_balance_transaction: any?, failure_code: str?, failure_message: str?, id: str, livemode: bool, metadata: map?, method: str, object: str, original_payout: any?, payout_method: str?, reconciliation_status: str, reversed_by: any?, source_type: str, statement_descriptor: str?, status: str, trace_id: any?, type: str}

@endpoint GET /v1/payouts/{payout}
@required {payout: str}
@optional {expand: [str]}
@returns(200) {amount: int, application_fee: any?, application_fee_amount: int?, arrival_date: int(unix-time), automatic: bool, balance_transaction: any?, created: int(unix-time), currency: str(currency), description: str?, destination: any?, failure_balance_transaction: any?, failure_code: str?, failure_message: str?, id: str, livemode: bool, metadata: map?, method: str, object: str, original_payout: any?, payout_method: str?, reconciliation_status: str, reversed_by: any?, source_type: str, statement_descriptor: str?, status: str, trace_id: any?, type: str}

@endpoint POST /v1/payouts/{payout}
@required {payout: str}
@returns(200) {amount: int, application_fee: any?, application_fee_amount: int?, arrival_date: int(unix-time), automatic: bool, balance_transaction: any?, created: int(unix-time), currency: str(currency), description: str?, destination: any?, failure_balance_transaction: any?, failure_code: str?, failure_message: str?, id: str, livemode: bool, metadata: map?, method: str, object: str, original_payout: any?, payout_method: str?, reconciliation_status: str, reversed_by: any?, source_type: str, statement_descriptor: str?, status: str, trace_id: any?, type: str}

@endpoint POST /v1/payouts/{payout}/cancel
@required {payout: str}
@returns(200) {amount: int, application_fee: any?, application_fee_amount: int?, arrival_date: int(unix-time), automatic: bool, balance_transaction: any?, created: int(unix-time), currency: str(currency), description: str?, destination: any?, failure_balance_transaction: any?, failure_code: str?, failure_message: str?, id: str, livemode: bool, metadata: map?, method: str, object: str, original_payout: any?, payout_method: str?, reconciliation_status: str, reversed_by: any?, source_type: str, statement_descriptor: str?, status: str, trace_id: any?, type: str}

@endpoint POST /v1/payouts/{payout}/reverse
@required {payout: str}
@returns(200) {amount: int, application_fee: any?, application_fee_amount: int?, arrival_date: int(unix-time), automatic: bool, balance_transaction: any?, created: int(unix-time), currency: str(currency), description: str?, destination: any?, failure_balance_transaction: any?, failure_code: str?, failure_message: str?, id: str, livemode: bool, metadata: map?, method: str, object: str, original_payout: any?, payout_method: str?, reconciliation_status: str, reversed_by: any?, source_type: str, statement_descriptor: str?, status: str, trace_id: any?, type: str}

@endgroup

@group plans
@endpoint GET /v1/plans
@optional {active: bool, created: any, ending_before: str, expand: [str], limit: int, product: str, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/plans
@returns(200) {active: bool, amount: int?, amount_decimal: str(decimal)?, billing_scheme: str, created: int(unix-time), currency: str(currency), id: str, interval: str, interval_count: int, livemode: bool, metadata: map?, meter: str?, nickname: str?, object: str, product: any?, tiers: [map], tiers_mode: str?, transform_usage: any?, trial_period_days: int?, usage_type: str}

@endpoint DELETE /v1/plans/{plan}
@required {plan: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/plans/{plan}
@required {plan: str}
@optional {expand: [str]}
@returns(200) {active: bool, amount: int?, amount_decimal: str(decimal)?, billing_scheme: str, created: int(unix-time), currency: str(currency), id: str, interval: str, interval_count: int, livemode: bool, metadata: map?, meter: str?, nickname: str?, object: str, product: any?, tiers: [map], tiers_mode: str?, transform_usage: any?, trial_period_days: int?, usage_type: str}

@endpoint POST /v1/plans/{plan}
@required {plan: str}
@returns(200) {active: bool, amount: int?, amount_decimal: str(decimal)?, billing_scheme: str, created: int(unix-time), currency: str(currency), id: str, interval: str, interval_count: int, livemode: bool, metadata: map?, meter: str?, nickname: str?, object: str, product: any?, tiers: [map], tiers_mode: str?, transform_usage: any?, trial_period_days: int?, usage_type: str}

@endgroup

@group prices
@endpoint GET /v1/prices
@optional {active: bool, created: any, currency: str(currency), ending_before: str, expand: [str], limit: int, lookup_keys: [str], product: str, recurring: map, starting_after: str, type: str(one_time/recurring)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/prices
@returns(200) {active: bool, billing_scheme: str, created: int(unix-time), currency: str(currency), currency_options: map, custom_unit_amount: any?, id: str, livemode: bool, lookup_key: str?, metadata: map, nickname: str?, object: str, product: any, recurring: any?, tax_behavior: str?, tiers: [map], tiers_mode: str?, transform_quantity: any?, type: str, unit_amount: int?, unit_amount_decimal: str(decimal)?}

@endpoint GET /v1/prices/search
@required {query: str}
@optional {expand: [str], limit: int, page: str}
@returns(200) {data: [map], has_more: bool, next_page: str?, object: str, total_count: int, url: str}

@endpoint GET /v1/prices/{price}
@required {price: str}
@optional {expand: [str]}
@returns(200) {active: bool, billing_scheme: str, created: int(unix-time), currency: str(currency), currency_options: map, custom_unit_amount: any?, id: str, livemode: bool, lookup_key: str?, metadata: map, nickname: str?, object: str, product: any, recurring: any?, tax_behavior: str?, tiers: [map], tiers_mode: str?, transform_quantity: any?, type: str, unit_amount: int?, unit_amount_decimal: str(decimal)?}

@endpoint POST /v1/prices/{price}
@required {price: str}
@returns(200) {active: bool, billing_scheme: str, created: int(unix-time), currency: str(currency), currency_options: map, custom_unit_amount: any?, id: str, livemode: bool, lookup_key: str?, metadata: map, nickname: str?, object: str, product: any, recurring: any?, tax_behavior: str?, tiers: [map], tiers_mode: str?, transform_quantity: any?, type: str, unit_amount: int?, unit_amount_decimal: str(decimal)?}

@endgroup

@group products
@endpoint GET /v1/products
@optional {active: bool, created: any, ending_before: str, expand: [str], ids: [str], limit: int, shippable: bool, starting_after: str, url: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/products
@returns(200) {active: bool, created: int(unix-time), default_price: any?, description: str?, id: str, images: [str], livemode: bool, marketing_features: [map], metadata: map, name: str, object: str, package_dimensions: any?, shippable: bool?, statement_descriptor: str?, tax_code: any?, unit_label: str?, updated: int(unix-time), url: str?}

@endpoint GET /v1/products/search
@required {query: str}
@optional {expand: [str], limit: int, page: str}
@returns(200) {data: [map], has_more: bool, next_page: str?, object: str, total_count: int, url: str}

@endpoint DELETE /v1/products/{id}
@required {id: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/products/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {active: bool, created: int(unix-time), default_price: any?, description: str?, id: str, images: [str], livemode: bool, marketing_features: [map], metadata: map, name: str, object: str, package_dimensions: any?, shippable: bool?, statement_descriptor: str?, tax_code: any?, unit_label: str?, updated: int(unix-time), url: str?}

@endpoint POST /v1/products/{id}
@required {id: str}
@returns(200) {active: bool, created: int(unix-time), default_price: any?, description: str?, id: str, images: [str], livemode: bool, marketing_features: [map], metadata: map, name: str, object: str, package_dimensions: any?, shippable: bool?, statement_descriptor: str?, tax_code: any?, unit_label: str?, updated: int(unix-time), url: str?}

@endpoint GET /v1/products/{product}/features
@required {product: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/products/{product}/features
@required {product: str}
@returns(200) {entitlement_feature: map{active: bool, id: str, livemode: bool, lookup_key: str, metadata: map, name: str, object: str}, id: str, livemode: bool, object: str}

@endpoint DELETE /v1/products/{product}/features/{id}
@required {id: str, product: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/products/{product}/features/{id}
@required {id: str, product: str}
@optional {expand: [str]}
@returns(200) {entitlement_feature: map{active: bool, id: str, livemode: bool, lookup_key: str, metadata: map, name: str, object: str}, id: str, livemode: bool, object: str}

@endgroup

@group promotion_codes
@endpoint GET /v1/promotion_codes
@optional {active: bool, code: str, coupon: str, created: any, customer: str, customer_account: str, ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/promotion_codes
@returns(200) {active: bool, code: str, created: int(unix-time), customer: any?, customer_account: str?, expires_at: int(unix-time)?, id: str, livemode: bool, max_redemptions: int?, metadata: map?, object: str, promotion: map{coupon: any?, type: str}, restrictions: map{currency_options: map, first_time_transaction: bool, minimum_amount: int?, minimum_amount_currency: str?}, times_redeemed: int}

@endpoint GET /v1/promotion_codes/{promotion_code}
@required {promotion_code: str}
@optional {expand: [str]}
@returns(200) {active: bool, code: str, created: int(unix-time), customer: any?, customer_account: str?, expires_at: int(unix-time)?, id: str, livemode: bool, max_redemptions: int?, metadata: map?, object: str, promotion: map{coupon: any?, type: str}, restrictions: map{currency_options: map, first_time_transaction: bool, minimum_amount: int?, minimum_amount_currency: str?}, times_redeemed: int}

@endpoint POST /v1/promotion_codes/{promotion_code}
@required {promotion_code: str}
@returns(200) {active: bool, code: str, created: int(unix-time), customer: any?, customer_account: str?, expires_at: int(unix-time)?, id: str, livemode: bool, max_redemptions: int?, metadata: map?, object: str, promotion: map{coupon: any?, type: str}, restrictions: map{currency_options: map, first_time_transaction: bool, minimum_amount: int?, minimum_amount_currency: str?}, times_redeemed: int}

@endgroup

@group quotes
@endpoint GET /v1/quotes
@optional {customer: str, customer_account: str, ending_before: str, expand: [str], limit: int, starting_after: str, status: str(accepted/canceled/draft/open), test_clock: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/quotes
@returns(200) {amount_subtotal: int, amount_total: int, application: any?, application_fee_amount: int?, application_fee_percent: num?, automatic_tax: map{enabled: bool, liability: any?, provider: str?, status: str?}, collection_method: str, computed: map{recurring: any?, upfront: map{amount_subtotal: int, amount_total: int, line_items: map{data: [map], has_more: bool, object: str, url: str}, total_details: map{amount_discount: int, amount_shipping: int?, amount_tax: int, breakdown: map}}}, created: int(unix-time), currency: str?, customer: any?, customer_account: str?, default_tax_rates: [any], description: str?, discounts: [any], expires_at: int(unix-time), footer: str?, from_quote: any?, header: str?, id: str, invoice: any?, invoice_settings: map{days_until_due: int?, issuer: map{account: any, type: str}}, line_items: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map, number: str?, object: str, on_behalf_of: any?, status: str, status_transitions: map{accepted_at: int(unix-time)?, canceled_at: int(unix-time)?, finalized_at: int(unix-time)?}, subscription: any?, subscription_data: map{billing_mode: map{flexible: map{proration_discounts: str}, type: str}, description: str?, effective_date: int(unix-time)?, metadata: map?, trial_period_days: int?}, subscription_schedule: any?, test_clock: any?, total_details: map{amount_discount: int, amount_shipping: int?, amount_tax: int, breakdown: map{discounts: [map], taxes: [map]}}, transfer_data: any?}

@endpoint GET /v1/quotes/{quote}
@required {quote: str}
@optional {expand: [str]}
@returns(200) {amount_subtotal: int, amount_total: int, application: any?, application_fee_amount: int?, application_fee_percent: num?, automatic_tax: map{enabled: bool, liability: any?, provider: str?, status: str?}, collection_method: str, computed: map{recurring: any?, upfront: map{amount_subtotal: int, amount_total: int, line_items: map{data: [map], has_more: bool, object: str, url: str}, total_details: map{amount_discount: int, amount_shipping: int?, amount_tax: int, breakdown: map}}}, created: int(unix-time), currency: str?, customer: any?, customer_account: str?, default_tax_rates: [any], description: str?, discounts: [any], expires_at: int(unix-time), footer: str?, from_quote: any?, header: str?, id: str, invoice: any?, invoice_settings: map{days_until_due: int?, issuer: map{account: any, type: str}}, line_items: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map, number: str?, object: str, on_behalf_of: any?, status: str, status_transitions: map{accepted_at: int(unix-time)?, canceled_at: int(unix-time)?, finalized_at: int(unix-time)?}, subscription: any?, subscription_data: map{billing_mode: map{flexible: map{proration_discounts: str}, type: str}, description: str?, effective_date: int(unix-time)?, metadata: map?, trial_period_days: int?}, subscription_schedule: any?, test_clock: any?, total_details: map{amount_discount: int, amount_shipping: int?, amount_tax: int, breakdown: map{discounts: [map], taxes: [map]}}, transfer_data: any?}

@endpoint POST /v1/quotes/{quote}
@required {quote: str}
@returns(200) {amount_subtotal: int, amount_total: int, application: any?, application_fee_amount: int?, application_fee_percent: num?, automatic_tax: map{enabled: bool, liability: any?, provider: str?, status: str?}, collection_method: str, computed: map{recurring: any?, upfront: map{amount_subtotal: int, amount_total: int, line_items: map{data: [map], has_more: bool, object: str, url: str}, total_details: map{amount_discount: int, amount_shipping: int?, amount_tax: int, breakdown: map}}}, created: int(unix-time), currency: str?, customer: any?, customer_account: str?, default_tax_rates: [any], description: str?, discounts: [any], expires_at: int(unix-time), footer: str?, from_quote: any?, header: str?, id: str, invoice: any?, invoice_settings: map{days_until_due: int?, issuer: map{account: any, type: str}}, line_items: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map, number: str?, object: str, on_behalf_of: any?, status: str, status_transitions: map{accepted_at: int(unix-time)?, canceled_at: int(unix-time)?, finalized_at: int(unix-time)?}, subscription: any?, subscription_data: map{billing_mode: map{flexible: map{proration_discounts: str}, type: str}, description: str?, effective_date: int(unix-time)?, metadata: map?, trial_period_days: int?}, subscription_schedule: any?, test_clock: any?, total_details: map{amount_discount: int, amount_shipping: int?, amount_tax: int, breakdown: map{discounts: [map], taxes: [map]}}, transfer_data: any?}

@endpoint POST /v1/quotes/{quote}/accept
@required {quote: str}
@returns(200) {amount_subtotal: int, amount_total: int, application: any?, application_fee_amount: int?, application_fee_percent: num?, automatic_tax: map{enabled: bool, liability: any?, provider: str?, status: str?}, collection_method: str, computed: map{recurring: any?, upfront: map{amount_subtotal: int, amount_total: int, line_items: map{data: [map], has_more: bool, object: str, url: str}, total_details: map{amount_discount: int, amount_shipping: int?, amount_tax: int, breakdown: map}}}, created: int(unix-time), currency: str?, customer: any?, customer_account: str?, default_tax_rates: [any], description: str?, discounts: [any], expires_at: int(unix-time), footer: str?, from_quote: any?, header: str?, id: str, invoice: any?, invoice_settings: map{days_until_due: int?, issuer: map{account: any, type: str}}, line_items: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map, number: str?, object: str, on_behalf_of: any?, status: str, status_transitions: map{accepted_at: int(unix-time)?, canceled_at: int(unix-time)?, finalized_at: int(unix-time)?}, subscription: any?, subscription_data: map{billing_mode: map{flexible: map{proration_discounts: str}, type: str}, description: str?, effective_date: int(unix-time)?, metadata: map?, trial_period_days: int?}, subscription_schedule: any?, test_clock: any?, total_details: map{amount_discount: int, amount_shipping: int?, amount_tax: int, breakdown: map{discounts: [map], taxes: [map]}}, transfer_data: any?}

@endpoint POST /v1/quotes/{quote}/cancel
@required {quote: str}
@returns(200) {amount_subtotal: int, amount_total: int, application: any?, application_fee_amount: int?, application_fee_percent: num?, automatic_tax: map{enabled: bool, liability: any?, provider: str?, status: str?}, collection_method: str, computed: map{recurring: any?, upfront: map{amount_subtotal: int, amount_total: int, line_items: map{data: [map], has_more: bool, object: str, url: str}, total_details: map{amount_discount: int, amount_shipping: int?, amount_tax: int, breakdown: map}}}, created: int(unix-time), currency: str?, customer: any?, customer_account: str?, default_tax_rates: [any], description: str?, discounts: [any], expires_at: int(unix-time), footer: str?, from_quote: any?, header: str?, id: str, invoice: any?, invoice_settings: map{days_until_due: int?, issuer: map{account: any, type: str}}, line_items: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map, number: str?, object: str, on_behalf_of: any?, status: str, status_transitions: map{accepted_at: int(unix-time)?, canceled_at: int(unix-time)?, finalized_at: int(unix-time)?}, subscription: any?, subscription_data: map{billing_mode: map{flexible: map{proration_discounts: str}, type: str}, description: str?, effective_date: int(unix-time)?, metadata: map?, trial_period_days: int?}, subscription_schedule: any?, test_clock: any?, total_details: map{amount_discount: int, amount_shipping: int?, amount_tax: int, breakdown: map{discounts: [map], taxes: [map]}}, transfer_data: any?}

@endpoint GET /v1/quotes/{quote}/computed_upfront_line_items
@required {quote: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/quotes/{quote}/finalize
@required {quote: str}
@returns(200) {amount_subtotal: int, amount_total: int, application: any?, application_fee_amount: int?, application_fee_percent: num?, automatic_tax: map{enabled: bool, liability: any?, provider: str?, status: str?}, collection_method: str, computed: map{recurring: any?, upfront: map{amount_subtotal: int, amount_total: int, line_items: map{data: [map], has_more: bool, object: str, url: str}, total_details: map{amount_discount: int, amount_shipping: int?, amount_tax: int, breakdown: map}}}, created: int(unix-time), currency: str?, customer: any?, customer_account: str?, default_tax_rates: [any], description: str?, discounts: [any], expires_at: int(unix-time), footer: str?, from_quote: any?, header: str?, id: str, invoice: any?, invoice_settings: map{days_until_due: int?, issuer: map{account: any, type: str}}, line_items: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map, number: str?, object: str, on_behalf_of: any?, status: str, status_transitions: map{accepted_at: int(unix-time)?, canceled_at: int(unix-time)?, finalized_at: int(unix-time)?}, subscription: any?, subscription_data: map{billing_mode: map{flexible: map{proration_discounts: str}, type: str}, description: str?, effective_date: int(unix-time)?, metadata: map?, trial_period_days: int?}, subscription_schedule: any?, test_clock: any?, total_details: map{amount_discount: int, amount_shipping: int?, amount_tax: int, breakdown: map{discounts: [map], taxes: [map]}}, transfer_data: any?}

@endpoint GET /v1/quotes/{quote}/line_items
@required {quote: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/quotes/{quote}/pdf
@required {quote: str}
@optional {expand: [str]}
@returns(200)

@endgroup

@group radar
@endpoint GET /v1/radar/early_fraud_warnings
@optional {charge: str, created: any, ending_before: str, expand: [str], limit: int, payment_intent: str, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/radar/early_fraud_warnings/{early_fraud_warning}
@required {early_fraud_warning: str}
@optional {expand: [str]}
@returns(200) {actionable: bool, charge: any, created: int(unix-time), fraud_type: str, id: str, livemode: bool, object: str, payment_intent: any}

@endpoint POST /v1/radar/payment_evaluations
@returns(200) {client_device_metadata_details: map{radar_session: str}, created_at: int(unix-time), customer_details: map{customer: str?, customer_account: str?, email: str?, name: str?, phone: str?}, events: [map], id: str, livemode: bool, metadata: map?, object: str, outcome: any?, payment_details: map{amount: int, currency: str(currency), description: str?, money_movement_details: any?, payment_method_details: any?, shipping_details: any?, statement_descriptor: str?}, recommended_action: str, signals: map{fraudulent_payment: map{evaluated_at: int(unix-time), risk_level: str, score: num}}}

@endpoint GET /v1/radar/value_list_items
@required {value_list: str}
@optional {created: any, ending_before: str, expand: [str], limit: int, starting_after: str, value: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/radar/value_list_items
@returns(200) {created: int(unix-time), created_by: str, id: str, livemode: bool, object: str, value: str, value_list: str}

@endpoint DELETE /v1/radar/value_list_items/{item}
@required {item: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/radar/value_list_items/{item}
@required {item: str}
@optional {expand: [str]}
@returns(200) {created: int(unix-time), created_by: str, id: str, livemode: bool, object: str, value: str, value_list: str}

@endpoint GET /v1/radar/value_lists
@optional {alias: str, contains: str, created: any, ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/radar/value_lists
@returns(200) {alias: str, created: int(unix-time), created_by: str, id: str, item_type: str, list_items: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map, name: str, object: str}

@endpoint DELETE /v1/radar/value_lists/{value_list}
@required {value_list: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/radar/value_lists/{value_list}
@required {value_list: str}
@optional {expand: [str]}
@returns(200) {alias: str, created: int(unix-time), created_by: str, id: str, item_type: str, list_items: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map, name: str, object: str}

@endpoint POST /v1/radar/value_lists/{value_list}
@required {value_list: str}
@returns(200) {alias: str, created: int(unix-time), created_by: str, id: str, item_type: str, list_items: map{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map, name: str, object: str}

@endgroup

@group refunds
@endpoint GET /v1/refunds
@optional {charge: str, created: any, ending_before: str, expand: [str], limit: int, payment_intent: str, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/refunds
@returns(200) {amount: int, balance_transaction: any?, charge: any?, created: int(unix-time), currency: str(currency), description: str, destination_details: map{affirm: map, afterpay_clearpay: map, alipay: map, alma: map, amazon_pay: map, au_bank_transfer: map, blik: map{network_decline_code: str?, reference: str?, reference_status: str?}, br_bank_transfer: map{reference: str?, reference_status: str?}, card: map{reference: str, reference_status: str, reference_type: str, type: str}, cashapp: map, crypto: map{reference: str?}, customer_cash_balance: map, eps: map, eu_bank_transfer: map{reference: str?, reference_status: str?}, gb_bank_transfer: map{reference: str?, reference_status: str?}, giropay: map, grabpay: map, jp_bank_transfer: map{reference: str?, reference_status: str?}, klarna: map, mb_way: map{reference: str?, reference_status: str?}, multibanco: map{reference: str?, reference_status: str?}, mx_bank_transfer: map{reference: str?, reference_status: str?}, nz_bank_transfer: map, p24: map{reference: str?, reference_status: str?}, paynow: map, paypal: map{network_decline_code: str?}, pix: map, revolut: map, sofort: map, swish: map{network_decline_code: str?, reference: str?, reference_status: str?}, th_bank_transfer: map{reference: str?, reference_status: str?}, twint: map, type: str, us_bank_transfer: map{reference: str?, reference_status: str?}, wechat_pay: map, zip: map}, failure_balance_transaction: any, failure_reason: str, id: str, instructions_email: str, metadata: map?, next_action: map{display_details: map{email_sent: map{email_sent_at: int(unix-time), email_sent_to: str}, expires_at: int(unix-time)}, type: str}, object: str, payment_intent: any?, pending_reason: str, presentment_details: map{presentment_amount: int, presentment_currency: str}, reason: str?, receipt_number: str?, source_transfer_reversal: any?, status: str?, transfer_reversal: any?}

@endpoint GET /v1/refunds/{refund}
@required {refund: str}
@optional {expand: [str]}
@returns(200) {amount: int, balance_transaction: any?, charge: any?, created: int(unix-time), currency: str(currency), description: str, destination_details: map{affirm: map, afterpay_clearpay: map, alipay: map, alma: map, amazon_pay: map, au_bank_transfer: map, blik: map{network_decline_code: str?, reference: str?, reference_status: str?}, br_bank_transfer: map{reference: str?, reference_status: str?}, card: map{reference: str, reference_status: str, reference_type: str, type: str}, cashapp: map, crypto: map{reference: str?}, customer_cash_balance: map, eps: map, eu_bank_transfer: map{reference: str?, reference_status: str?}, gb_bank_transfer: map{reference: str?, reference_status: str?}, giropay: map, grabpay: map, jp_bank_transfer: map{reference: str?, reference_status: str?}, klarna: map, mb_way: map{reference: str?, reference_status: str?}, multibanco: map{reference: str?, reference_status: str?}, mx_bank_transfer: map{reference: str?, reference_status: str?}, nz_bank_transfer: map, p24: map{reference: str?, reference_status: str?}, paynow: map, paypal: map{network_decline_code: str?}, pix: map, revolut: map, sofort: map, swish: map{network_decline_code: str?, reference: str?, reference_status: str?}, th_bank_transfer: map{reference: str?, reference_status: str?}, twint: map, type: str, us_bank_transfer: map{reference: str?, reference_status: str?}, wechat_pay: map, zip: map}, failure_balance_transaction: any, failure_reason: str, id: str, instructions_email: str, metadata: map?, next_action: map{display_details: map{email_sent: map{email_sent_at: int(unix-time), email_sent_to: str}, expires_at: int(unix-time)}, type: str}, object: str, payment_intent: any?, pending_reason: str, presentment_details: map{presentment_amount: int, presentment_currency: str}, reason: str?, receipt_number: str?, source_transfer_reversal: any?, status: str?, transfer_reversal: any?}

@endpoint POST /v1/refunds/{refund}
@required {refund: str}
@returns(200) {amount: int, balance_transaction: any?, charge: any?, created: int(unix-time), currency: str(currency), description: str, destination_details: map{affirm: map, afterpay_clearpay: map, alipay: map, alma: map, amazon_pay: map, au_bank_transfer: map, blik: map{network_decline_code: str?, reference: str?, reference_status: str?}, br_bank_transfer: map{reference: str?, reference_status: str?}, card: map{reference: str, reference_status: str, reference_type: str, type: str}, cashapp: map, crypto: map{reference: str?}, customer_cash_balance: map, eps: map, eu_bank_transfer: map{reference: str?, reference_status: str?}, gb_bank_transfer: map{reference: str?, reference_status: str?}, giropay: map, grabpay: map, jp_bank_transfer: map{reference: str?, reference_status: str?}, klarna: map, mb_way: map{reference: str?, reference_status: str?}, multibanco: map{reference: str?, reference_status: str?}, mx_bank_transfer: map{reference: str?, reference_status: str?}, nz_bank_transfer: map, p24: map{reference: str?, reference_status: str?}, paynow: map, paypal: map{network_decline_code: str?}, pix: map, revolut: map, sofort: map, swish: map{network_decline_code: str?, reference: str?, reference_status: str?}, th_bank_transfer: map{reference: str?, reference_status: str?}, twint: map, type: str, us_bank_transfer: map{reference: str?, reference_status: str?}, wechat_pay: map, zip: map}, failure_balance_transaction: any, failure_reason: str, id: str, instructions_email: str, metadata: map?, next_action: map{display_details: map{email_sent: map{email_sent_at: int(unix-time), email_sent_to: str}, expires_at: int(unix-time)}, type: str}, object: str, payment_intent: any?, pending_reason: str, presentment_details: map{presentment_amount: int, presentment_currency: str}, reason: str?, receipt_number: str?, source_transfer_reversal: any?, status: str?, transfer_reversal: any?}

@endpoint POST /v1/refunds/{refund}/cancel
@required {refund: str}
@returns(200) {amount: int, balance_transaction: any?, charge: any?, created: int(unix-time), currency: str(currency), description: str, destination_details: map{affirm: map, afterpay_clearpay: map, alipay: map, alma: map, amazon_pay: map, au_bank_transfer: map, blik: map{network_decline_code: str?, reference: str?, reference_status: str?}, br_bank_transfer: map{reference: str?, reference_status: str?}, card: map{reference: str, reference_status: str, reference_type: str, type: str}, cashapp: map, crypto: map{reference: str?}, customer_cash_balance: map, eps: map, eu_bank_transfer: map{reference: str?, reference_status: str?}, gb_bank_transfer: map{reference: str?, reference_status: str?}, giropay: map, grabpay: map, jp_bank_transfer: map{reference: str?, reference_status: str?}, klarna: map, mb_way: map{reference: str?, reference_status: str?}, multibanco: map{reference: str?, reference_status: str?}, mx_bank_transfer: map{reference: str?, reference_status: str?}, nz_bank_transfer: map, p24: map{reference: str?, reference_status: str?}, paynow: map, paypal: map{network_decline_code: str?}, pix: map, revolut: map, sofort: map, swish: map{network_decline_code: str?, reference: str?, reference_status: str?}, th_bank_transfer: map{reference: str?, reference_status: str?}, twint: map, type: str, us_bank_transfer: map{reference: str?, reference_status: str?}, wechat_pay: map, zip: map}, failure_balance_transaction: any, failure_reason: str, id: str, instructions_email: str, metadata: map?, next_action: map{display_details: map{email_sent: map{email_sent_at: int(unix-time), email_sent_to: str}, expires_at: int(unix-time)}, type: str}, object: str, payment_intent: any?, pending_reason: str, presentment_details: map{presentment_amount: int, presentment_currency: str}, reason: str?, receipt_number: str?, source_transfer_reversal: any?, status: str?, transfer_reversal: any?}

@endgroup

@group reporting
@endpoint GET /v1/reporting/report_runs
@optional {created: any, ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/reporting/report_runs
@returns(200) {created: int(unix-time), error: str?, id: str, livemode: bool, object: str, parameters: map{columns: [str], connected_account: str, currency: str(currency), interval_end: int(unix-time), interval_start: int(unix-time), payout: str, reporting_category: str, timezone: str}, report_type: str, result: any?, status: str, succeeded_at: int(unix-time)?}

@endpoint GET /v1/reporting/report_runs/{report_run}
@required {report_run: str}
@optional {expand: [str]}
@returns(200) {created: int(unix-time), error: str?, id: str, livemode: bool, object: str, parameters: map{columns: [str], connected_account: str, currency: str(currency), interval_end: int(unix-time), interval_start: int(unix-time), payout: str, reporting_category: str, timezone: str}, report_type: str, result: any?, status: str, succeeded_at: int(unix-time)?}

@endpoint GET /v1/reporting/report_types
@optional {expand: [str]}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/reporting/report_types/{report_type}
@required {report_type: str}
@optional {expand: [str]}
@returns(200) {data_available_end: int(unix-time), data_available_start: int(unix-time), default_columns: [str]?, id: str, livemode: bool, name: str, object: str, updated: int(unix-time), version: int}

@endgroup

@group reviews
@endpoint GET /v1/reviews
@optional {created: any, ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/reviews/{review}
@required {review: str}
@optional {expand: [str]}
@returns(200) {billing_zip: str?, charge: any?, closed_reason: str?, created: int(unix-time), id: str, ip_address: str?, ip_address_location: any?, livemode: bool, object: str, open: bool, opened_reason: str, payment_intent: any, reason: str, session: any?}

@endpoint POST /v1/reviews/{review}/approve
@required {review: str}
@returns(200) {billing_zip: str?, charge: any?, closed_reason: str?, created: int(unix-time), id: str, ip_address: str?, ip_address_location: any?, livemode: bool, object: str, open: bool, opened_reason: str, payment_intent: any, reason: str, session: any?}

@endgroup

@group setup_attempts
@endpoint GET /v1/setup_attempts
@required {setup_intent: str}
@optional {created: any, ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endgroup

@group setup_intents
@endpoint GET /v1/setup_intents
@optional {attach_to_self: bool, created: any, customer: str, customer_account: str, ending_before: str, expand: [str], limit: int, payment_method: str, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/setup_intents
@returns(200) {application: any?, attach_to_self: bool, automatic_payment_methods: any?, cancellation_reason: str?, client_secret: str?, created: int(unix-time), customer: any?, customer_account: str?, description: str?, excluded_payment_method_types: [str]?, flow_directions: [str]?, id: str, last_setup_error: any?, latest_attempt: any?, livemode: bool, mandate: any?, metadata: map?, next_action: any?, object: str, on_behalf_of: any?, payment_method: any?, payment_method_configuration_details: any?, payment_method_options: any?, payment_method_types: [str], single_use_mandate: any?, status: str, usage: str}

@endpoint GET /v1/setup_intents/{intent}
@required {intent: str}
@optional {client_secret: str, expand: [str]}
@returns(200) {application: any?, attach_to_self: bool, automatic_payment_methods: any?, cancellation_reason: str?, client_secret: str?, created: int(unix-time), customer: any?, customer_account: str?, description: str?, excluded_payment_method_types: [str]?, flow_directions: [str]?, id: str, last_setup_error: any?, latest_attempt: any?, livemode: bool, mandate: any?, metadata: map?, next_action: any?, object: str, on_behalf_of: any?, payment_method: any?, payment_method_configuration_details: any?, payment_method_options: any?, payment_method_types: [str], single_use_mandate: any?, status: str, usage: str}

@endpoint POST /v1/setup_intents/{intent}
@required {intent: str}
@returns(200) {application: any?, attach_to_self: bool, automatic_payment_methods: any?, cancellation_reason: str?, client_secret: str?, created: int(unix-time), customer: any?, customer_account: str?, description: str?, excluded_payment_method_types: [str]?, flow_directions: [str]?, id: str, last_setup_error: any?, latest_attempt: any?, livemode: bool, mandate: any?, metadata: map?, next_action: any?, object: str, on_behalf_of: any?, payment_method: any?, payment_method_configuration_details: any?, payment_method_options: any?, payment_method_types: [str], single_use_mandate: any?, status: str, usage: str}

@endpoint POST /v1/setup_intents/{intent}/cancel
@required {intent: str}
@returns(200) {application: any?, attach_to_self: bool, automatic_payment_methods: any?, cancellation_reason: str?, client_secret: str?, created: int(unix-time), customer: any?, customer_account: str?, description: str?, excluded_payment_method_types: [str]?, flow_directions: [str]?, id: str, last_setup_error: any?, latest_attempt: any?, livemode: bool, mandate: any?, metadata: map?, next_action: any?, object: str, on_behalf_of: any?, payment_method: any?, payment_method_configuration_details: any?, payment_method_options: any?, payment_method_types: [str], single_use_mandate: any?, status: str, usage: str}

@endpoint POST /v1/setup_intents/{intent}/confirm
@required {intent: str}
@returns(200) {application: any?, attach_to_self: bool, automatic_payment_methods: any?, cancellation_reason: str?, client_secret: str?, created: int(unix-time), customer: any?, customer_account: str?, description: str?, excluded_payment_method_types: [str]?, flow_directions: [str]?, id: str, last_setup_error: any?, latest_attempt: any?, livemode: bool, mandate: any?, metadata: map?, next_action: any?, object: str, on_behalf_of: any?, payment_method: any?, payment_method_configuration_details: any?, payment_method_options: any?, payment_method_types: [str], single_use_mandate: any?, status: str, usage: str}

@endpoint POST /v1/setup_intents/{intent}/verify_microdeposits
@required {intent: str}
@returns(200) {application: any?, attach_to_self: bool, automatic_payment_methods: any?, cancellation_reason: str?, client_secret: str?, created: int(unix-time), customer: any?, customer_account: str?, description: str?, excluded_payment_method_types: [str]?, flow_directions: [str]?, id: str, last_setup_error: any?, latest_attempt: any?, livemode: bool, mandate: any?, metadata: map?, next_action: any?, object: str, on_behalf_of: any?, payment_method: any?, payment_method_configuration_details: any?, payment_method_options: any?, payment_method_types: [str], single_use_mandate: any?, status: str, usage: str}

@endgroup

@group shipping_rates
@endpoint GET /v1/shipping_rates
@optional {active: bool, created: any, currency: str(currency), ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/shipping_rates
@returns(200) {active: bool, created: int(unix-time), delivery_estimate: any?, display_name: str?, fixed_amount: map{amount: int, currency: str(currency), currency_options: map}, id: str, livemode: bool, metadata: map, object: str, tax_behavior: str?, tax_code: any?, type: str}

@endpoint GET /v1/shipping_rates/{shipping_rate_token}
@required {shipping_rate_token: str}
@optional {expand: [str]}
@returns(200) {active: bool, created: int(unix-time), delivery_estimate: any?, display_name: str?, fixed_amount: map{amount: int, currency: str(currency), currency_options: map}, id: str, livemode: bool, metadata: map, object: str, tax_behavior: str?, tax_code: any?, type: str}

@endpoint POST /v1/shipping_rates/{shipping_rate_token}
@required {shipping_rate_token: str}
@returns(200) {active: bool, created: int(unix-time), delivery_estimate: any?, display_name: str?, fixed_amount: map{amount: int, currency: str(currency), currency_options: map}, id: str, livemode: bool, metadata: map, object: str, tax_behavior: str?, tax_code: any?, type: str}

@endgroup

@group sigma
@endpoint POST /v1/sigma/saved_queries/{id}
@required {id: str}
@returns(200) {created: int, id: str, livemode: bool, name: str, object: str, sql: str}

@endpoint GET /v1/sigma/scheduled_query_runs
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/sigma/scheduled_query_runs/{scheduled_query_run}
@required {scheduled_query_run: str}
@optional {expand: [str]}
@returns(200) {created: int(unix-time), data_load_time: int(unix-time), error: map{message: str}, file: any?, id: str, livemode: bool, object: str, result_available_until: int(unix-time), sql: str, status: str, title: str}

@endgroup

@group sources
@endpoint POST /v1/sources
@returns(200) {ach_credit_transfer: map{account_number: str?, bank_name: str?, fingerprint: str?, refund_account_holder_name: str?, refund_account_holder_type: str?, refund_routing_number: str?, routing_number: str?, swift_code: str?}, ach_debit: map{bank_name: str?, country: str?, fingerprint: str?, last4: str?, routing_number: str?, type: str?}, acss_debit: map{bank_address_city: str?, bank_address_line_1: str?, bank_address_line_2: str?, bank_address_postal_code: str?, bank_name: str?, category: str?, country: str?, fingerprint: str?, last4: str?, routing_number: str?}, alipay: map{data_string: str?, native_url: str?, statement_descriptor: str?}, allow_redisplay: str?, amount: int?, au_becs_debit: map{bsb_number: str?, fingerprint: str?, last4: str?}, bancontact: map{bank_code: str?, bank_name: str?, bic: str?, iban_last4: str?, preferred_language: str?, statement_descriptor: str?}, card: map{address_line1_check: str?, address_zip_check: str?, brand: str?, country: str?, cvc_check: str?, dynamic_last4: str?, exp_month: int?, exp_year: int?, fingerprint: str, funding: str?, last4: str?, name: str?, three_d_secure: str, tokenization_method: str?}, card_present: map{application_cryptogram: str, application_preferred_name: str, authorization_code: str?, authorization_response_code: str, brand: str?, country: str?, cvm_type: str, data_type: str?, dedicated_file_name: str, emv_auth_data: str, evidence_customer_signature: str?, evidence_transaction_certificate: str?, exp_month: int?, exp_year: int?, fingerprint: str, funding: str?, last4: str?, pos_device_id: str?, pos_entry_mode: str, read_method: str?, reader: str?, terminal_verification_results: str, transaction_status_information: str}, client_secret: str, code_verification: map{attempts_remaining: int, status: str}, created: int(unix-time), currency: str(currency)?, customer: str, eps: map{reference: str?, statement_descriptor: str?}, flow: str, giropay: map{bank_code: str?, bank_name: str?, bic: str?, statement_descriptor: str?}, id: str, ideal: map{bank: str?, bic: str?, iban_last4: str?, statement_descriptor: str?}, klarna: map{background_image_url: str, client_token: str?, first_name: str, last_name: str, locale: str, logo_url: str, page_title: str, pay_later_asset_urls_descriptive: str, pay_later_asset_urls_standard: str, pay_later_name: str, pay_later_redirect_url: str, pay_now_asset_urls_descriptive: str, pay_now_asset_urls_standard: str, pay_now_name: str, pay_now_redirect_url: str, pay_over_time_asset_urls_descriptive: str, pay_over_time_asset_urls_standard: str, pay_over_time_name: str, pay_over_time_redirect_url: str, payment_method_categories: str, purchase_country: str, purchase_type: str, redirect_url: str, shipping_delay: int, shipping_first_name: str, shipping_last_name: str}, livemode: bool, metadata: map?, multibanco: map{entity: str?, reference: str?, refund_account_holder_address_city: str?, refund_account_holder_address_country: str?, refund_account_holder_address_line1: str?, refund_account_holder_address_line2: str?, refund_account_holder_address_postal_code: str?, refund_account_holder_address_state: str?, refund_account_holder_name: str?, refund_iban: str?}, object: str, owner: any?, p24: map{reference: str?}, receiver: map{address: str?, amount_charged: int, amount_received: int, amount_returned: int, refund_attributes_method: str, refund_attributes_status: str}, redirect: map{failure_reason: str?, return_url: str, status: str, url: str}, sepa_debit: map{bank_code: str?, branch_code: str?, country: str?, fingerprint: str?, last4: str?, mandate_reference: str?, mandate_url: str?}, sofort: map{bank_code: str?, bank_name: str?, bic: str?, country: str?, iban_last4: str?, preferred_language: str?, statement_descriptor: str?}, source_order: map{amount: int, currency: str(currency), email: str, items: [map]?, shipping: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, carrier: str?, name: str, phone: str?, tracking_number: str?}}, statement_descriptor: str?, status: str, three_d_secure: map{address_line1_check: str?, address_zip_check: str?, authenticated: bool?, brand: str?, card: str?, country: str?, customer: str?, cvc_check: str?, dynamic_last4: str?, exp_month: int?, exp_year: int?, fingerprint: str, funding: str?, last4: str?, name: str?, three_d_secure: str, tokenization_method: str?}, type: str, usage: str?, wechat: map{prepay_id: str, qr_code_url: str?, statement_descriptor: str}}

@endpoint GET /v1/sources/{source}
@required {source: str}
@optional {client_secret: str, expand: [str]}
@returns(200) {ach_credit_transfer: map{account_number: str?, bank_name: str?, fingerprint: str?, refund_account_holder_name: str?, refund_account_holder_type: str?, refund_routing_number: str?, routing_number: str?, swift_code: str?}, ach_debit: map{bank_name: str?, country: str?, fingerprint: str?, last4: str?, routing_number: str?, type: str?}, acss_debit: map{bank_address_city: str?, bank_address_line_1: str?, bank_address_line_2: str?, bank_address_postal_code: str?, bank_name: str?, category: str?, country: str?, fingerprint: str?, last4: str?, routing_number: str?}, alipay: map{data_string: str?, native_url: str?, statement_descriptor: str?}, allow_redisplay: str?, amount: int?, au_becs_debit: map{bsb_number: str?, fingerprint: str?, last4: str?}, bancontact: map{bank_code: str?, bank_name: str?, bic: str?, iban_last4: str?, preferred_language: str?, statement_descriptor: str?}, card: map{address_line1_check: str?, address_zip_check: str?, brand: str?, country: str?, cvc_check: str?, dynamic_last4: str?, exp_month: int?, exp_year: int?, fingerprint: str, funding: str?, last4: str?, name: str?, three_d_secure: str, tokenization_method: str?}, card_present: map{application_cryptogram: str, application_preferred_name: str, authorization_code: str?, authorization_response_code: str, brand: str?, country: str?, cvm_type: str, data_type: str?, dedicated_file_name: str, emv_auth_data: str, evidence_customer_signature: str?, evidence_transaction_certificate: str?, exp_month: int?, exp_year: int?, fingerprint: str, funding: str?, last4: str?, pos_device_id: str?, pos_entry_mode: str, read_method: str?, reader: str?, terminal_verification_results: str, transaction_status_information: str}, client_secret: str, code_verification: map{attempts_remaining: int, status: str}, created: int(unix-time), currency: str(currency)?, customer: str, eps: map{reference: str?, statement_descriptor: str?}, flow: str, giropay: map{bank_code: str?, bank_name: str?, bic: str?, statement_descriptor: str?}, id: str, ideal: map{bank: str?, bic: str?, iban_last4: str?, statement_descriptor: str?}, klarna: map{background_image_url: str, client_token: str?, first_name: str, last_name: str, locale: str, logo_url: str, page_title: str, pay_later_asset_urls_descriptive: str, pay_later_asset_urls_standard: str, pay_later_name: str, pay_later_redirect_url: str, pay_now_asset_urls_descriptive: str, pay_now_asset_urls_standard: str, pay_now_name: str, pay_now_redirect_url: str, pay_over_time_asset_urls_descriptive: str, pay_over_time_asset_urls_standard: str, pay_over_time_name: str, pay_over_time_redirect_url: str, payment_method_categories: str, purchase_country: str, purchase_type: str, redirect_url: str, shipping_delay: int, shipping_first_name: str, shipping_last_name: str}, livemode: bool, metadata: map?, multibanco: map{entity: str?, reference: str?, refund_account_holder_address_city: str?, refund_account_holder_address_country: str?, refund_account_holder_address_line1: str?, refund_account_holder_address_line2: str?, refund_account_holder_address_postal_code: str?, refund_account_holder_address_state: str?, refund_account_holder_name: str?, refund_iban: str?}, object: str, owner: any?, p24: map{reference: str?}, receiver: map{address: str?, amount_charged: int, amount_received: int, amount_returned: int, refund_attributes_method: str, refund_attributes_status: str}, redirect: map{failure_reason: str?, return_url: str, status: str, url: str}, sepa_debit: map{bank_code: str?, branch_code: str?, country: str?, fingerprint: str?, last4: str?, mandate_reference: str?, mandate_url: str?}, sofort: map{bank_code: str?, bank_name: str?, bic: str?, country: str?, iban_last4: str?, preferred_language: str?, statement_descriptor: str?}, source_order: map{amount: int, currency: str(currency), email: str, items: [map]?, shipping: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, carrier: str?, name: str, phone: str?, tracking_number: str?}}, statement_descriptor: str?, status: str, three_d_secure: map{address_line1_check: str?, address_zip_check: str?, authenticated: bool?, brand: str?, card: str?, country: str?, customer: str?, cvc_check: str?, dynamic_last4: str?, exp_month: int?, exp_year: int?, fingerprint: str, funding: str?, last4: str?, name: str?, three_d_secure: str, tokenization_method: str?}, type: str, usage: str?, wechat: map{prepay_id: str, qr_code_url: str?, statement_descriptor: str}}

@endpoint POST /v1/sources/{source}
@required {source: str}
@returns(200) {ach_credit_transfer: map{account_number: str?, bank_name: str?, fingerprint: str?, refund_account_holder_name: str?, refund_account_holder_type: str?, refund_routing_number: str?, routing_number: str?, swift_code: str?}, ach_debit: map{bank_name: str?, country: str?, fingerprint: str?, last4: str?, routing_number: str?, type: str?}, acss_debit: map{bank_address_city: str?, bank_address_line_1: str?, bank_address_line_2: str?, bank_address_postal_code: str?, bank_name: str?, category: str?, country: str?, fingerprint: str?, last4: str?, routing_number: str?}, alipay: map{data_string: str?, native_url: str?, statement_descriptor: str?}, allow_redisplay: str?, amount: int?, au_becs_debit: map{bsb_number: str?, fingerprint: str?, last4: str?}, bancontact: map{bank_code: str?, bank_name: str?, bic: str?, iban_last4: str?, preferred_language: str?, statement_descriptor: str?}, card: map{address_line1_check: str?, address_zip_check: str?, brand: str?, country: str?, cvc_check: str?, dynamic_last4: str?, exp_month: int?, exp_year: int?, fingerprint: str, funding: str?, last4: str?, name: str?, three_d_secure: str, tokenization_method: str?}, card_present: map{application_cryptogram: str, application_preferred_name: str, authorization_code: str?, authorization_response_code: str, brand: str?, country: str?, cvm_type: str, data_type: str?, dedicated_file_name: str, emv_auth_data: str, evidence_customer_signature: str?, evidence_transaction_certificate: str?, exp_month: int?, exp_year: int?, fingerprint: str, funding: str?, last4: str?, pos_device_id: str?, pos_entry_mode: str, read_method: str?, reader: str?, terminal_verification_results: str, transaction_status_information: str}, client_secret: str, code_verification: map{attempts_remaining: int, status: str}, created: int(unix-time), currency: str(currency)?, customer: str, eps: map{reference: str?, statement_descriptor: str?}, flow: str, giropay: map{bank_code: str?, bank_name: str?, bic: str?, statement_descriptor: str?}, id: str, ideal: map{bank: str?, bic: str?, iban_last4: str?, statement_descriptor: str?}, klarna: map{background_image_url: str, client_token: str?, first_name: str, last_name: str, locale: str, logo_url: str, page_title: str, pay_later_asset_urls_descriptive: str, pay_later_asset_urls_standard: str, pay_later_name: str, pay_later_redirect_url: str, pay_now_asset_urls_descriptive: str, pay_now_asset_urls_standard: str, pay_now_name: str, pay_now_redirect_url: str, pay_over_time_asset_urls_descriptive: str, pay_over_time_asset_urls_standard: str, pay_over_time_name: str, pay_over_time_redirect_url: str, payment_method_categories: str, purchase_country: str, purchase_type: str, redirect_url: str, shipping_delay: int, shipping_first_name: str, shipping_last_name: str}, livemode: bool, metadata: map?, multibanco: map{entity: str?, reference: str?, refund_account_holder_address_city: str?, refund_account_holder_address_country: str?, refund_account_holder_address_line1: str?, refund_account_holder_address_line2: str?, refund_account_holder_address_postal_code: str?, refund_account_holder_address_state: str?, refund_account_holder_name: str?, refund_iban: str?}, object: str, owner: any?, p24: map{reference: str?}, receiver: map{address: str?, amount_charged: int, amount_received: int, amount_returned: int, refund_attributes_method: str, refund_attributes_status: str}, redirect: map{failure_reason: str?, return_url: str, status: str, url: str}, sepa_debit: map{bank_code: str?, branch_code: str?, country: str?, fingerprint: str?, last4: str?, mandate_reference: str?, mandate_url: str?}, sofort: map{bank_code: str?, bank_name: str?, bic: str?, country: str?, iban_last4: str?, preferred_language: str?, statement_descriptor: str?}, source_order: map{amount: int, currency: str(currency), email: str, items: [map]?, shipping: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, carrier: str?, name: str, phone: str?, tracking_number: str?}}, statement_descriptor: str?, status: str, three_d_secure: map{address_line1_check: str?, address_zip_check: str?, authenticated: bool?, brand: str?, card: str?, country: str?, customer: str?, cvc_check: str?, dynamic_last4: str?, exp_month: int?, exp_year: int?, fingerprint: str, funding: str?, last4: str?, name: str?, three_d_secure: str, tokenization_method: str?}, type: str, usage: str?, wechat: map{prepay_id: str, qr_code_url: str?, statement_descriptor: str}}

@endpoint GET /v1/sources/{source}/mandate_notifications/{mandate_notification}
@required {mandate_notification: str, source: str}
@optional {expand: [str]}
@returns(200) {acss_debit: map{statement_descriptor: str}, amount: int?, bacs_debit: map{last4: str}, created: int(unix-time), id: str, livemode: bool, object: str, reason: str, sepa_debit: map{creditor_identifier: str, last4: str, mandate_reference: str}, source: map{ach_credit_transfer: map{account_number: str?, bank_name: str?, fingerprint: str?, refund_account_holder_name: str?, refund_account_holder_type: str?, refund_routing_number: str?, routing_number: str?, swift_code: str?}, ach_debit: map{bank_name: str?, country: str?, fingerprint: str?, last4: str?, routing_number: str?, type: str?}, acss_debit: map{bank_address_city: str?, bank_address_line_1: str?, bank_address_line_2: str?, bank_address_postal_code: str?, bank_name: str?, category: str?, country: str?, fingerprint: str?, last4: str?, routing_number: str?}, alipay: map{data_string: str?, native_url: str?, statement_descriptor: str?}, allow_redisplay: str?, amount: int?, au_becs_debit: map{bsb_number: str?, fingerprint: str?, last4: str?}, bancontact: map{bank_code: str?, bank_name: str?, bic: str?, iban_last4: str?, preferred_language: str?, statement_descriptor: str?}, card: map{address_line1_check: str?, address_zip_check: str?, brand: str?, country: str?, cvc_check: str?, dynamic_last4: str?, exp_month: int?, exp_year: int?, fingerprint: str, funding: str?, last4: str?, name: str?, three_d_secure: str, tokenization_method: str?}, card_present: map{application_cryptogram: str, application_preferred_name: str, authorization_code: str?, authorization_response_code: str, brand: str?, country: str?, cvm_type: str, data_type: str?, dedicated_file_name: str, emv_auth_data: str, evidence_customer_signature: str?, evidence_transaction_certificate: str?, exp_month: int?, exp_year: int?, fingerprint: str, funding: str?, last4: str?, pos_device_id: str?, pos_entry_mode: str, read_method: str?, reader: str?, terminal_verification_results: str, transaction_status_information: str}, client_secret: str, code_verification: map{attempts_remaining: int, status: str}, created: int(unix-time), currency: str(currency)?, customer: str, eps: map{reference: str?, statement_descriptor: str?}, flow: str, giropay: map{bank_code: str?, bank_name: str?, bic: str?, statement_descriptor: str?}, id: str, ideal: map{bank: str?, bic: str?, iban_last4: str?, statement_descriptor: str?}, klarna: map{background_image_url: str, client_token: str?, first_name: str, last_name: str, locale: str, logo_url: str, page_title: str, pay_later_asset_urls_descriptive: str, pay_later_asset_urls_standard: str, pay_later_name: str, pay_later_redirect_url: str, pay_now_asset_urls_descriptive: str, pay_now_asset_urls_standard: str, pay_now_name: str, pay_now_redirect_url: str, pay_over_time_asset_urls_descriptive: str, pay_over_time_asset_urls_standard: str, pay_over_time_name: str, pay_over_time_redirect_url: str, payment_method_categories: str, purchase_country: str, purchase_type: str, redirect_url: str, shipping_delay: int, shipping_first_name: str, shipping_last_name: str}, livemode: bool, metadata: map?, multibanco: map{entity: str?, reference: str?, refund_account_holder_address_city: str?, refund_account_holder_address_country: str?, refund_account_holder_address_line1: str?, refund_account_holder_address_line2: str?, refund_account_holder_address_postal_code: str?, refund_account_holder_address_state: str?, refund_account_holder_name: str?, refund_iban: str?}, object: str, owner: any?, p24: map{reference: str?}, receiver: map{address: str?, amount_charged: int, amount_received: int, amount_returned: int, refund_attributes_method: str, refund_attributes_status: str}, redirect: map{failure_reason: str?, return_url: str, status: str, url: str}, sepa_debit: map{bank_code: str?, branch_code: str?, country: str?, fingerprint: str?, last4: str?, mandate_reference: str?, mandate_url: str?}, sofort: map{bank_code: str?, bank_name: str?, bic: str?, country: str?, iban_last4: str?, preferred_language: str?, statement_descriptor: str?}, source_order: map{amount: int, currency: str(currency), email: str, items: [map]?, shipping: map{address: map, carrier: str?, name: str, phone: str?, tracking_number: str?}}, statement_descriptor: str?, status: str, three_d_secure: map{address_line1_check: str?, address_zip_check: str?, authenticated: bool?, brand: str?, card: str?, country: str?, customer: str?, cvc_check: str?, dynamic_last4: str?, exp_month: int?, exp_year: int?, fingerprint: str, funding: str?, last4: str?, name: str?, three_d_secure: str, tokenization_method: str?}, type: str, usage: str?, wechat: map{prepay_id: str, qr_code_url: str?, statement_descriptor: str}}, status: str, type: str}

@endpoint GET /v1/sources/{source}/source_transactions
@required {source: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/sources/{source}/source_transactions/{source_transaction}
@required {source: str, source_transaction: str}
@optional {expand: [str]}
@returns(200) {ach_credit_transfer: map{customer_data: str, fingerprint: str, last4: str, routing_number: str}, amount: int, chf_credit_transfer: map{reference: str, sender_address_country: str, sender_address_line1: str, sender_iban: str, sender_name: str}, created: int(unix-time), currency: str(currency), gbp_credit_transfer: map{fingerprint: str, funding_method: str, last4: str, reference: str, sender_account_number: str, sender_name: str, sender_sort_code: str}, id: str, livemode: bool, object: str, paper_check: map{available_at: str, invoices: str}, sepa_credit_transfer: map{reference: str, sender_iban: str, sender_name: str}, source: str, status: str, type: str}

@endpoint POST /v1/sources/{source}/verify
@required {source: str}
@returns(200) {ach_credit_transfer: map{account_number: str?, bank_name: str?, fingerprint: str?, refund_account_holder_name: str?, refund_account_holder_type: str?, refund_routing_number: str?, routing_number: str?, swift_code: str?}, ach_debit: map{bank_name: str?, country: str?, fingerprint: str?, last4: str?, routing_number: str?, type: str?}, acss_debit: map{bank_address_city: str?, bank_address_line_1: str?, bank_address_line_2: str?, bank_address_postal_code: str?, bank_name: str?, category: str?, country: str?, fingerprint: str?, last4: str?, routing_number: str?}, alipay: map{data_string: str?, native_url: str?, statement_descriptor: str?}, allow_redisplay: str?, amount: int?, au_becs_debit: map{bsb_number: str?, fingerprint: str?, last4: str?}, bancontact: map{bank_code: str?, bank_name: str?, bic: str?, iban_last4: str?, preferred_language: str?, statement_descriptor: str?}, card: map{address_line1_check: str?, address_zip_check: str?, brand: str?, country: str?, cvc_check: str?, dynamic_last4: str?, exp_month: int?, exp_year: int?, fingerprint: str, funding: str?, last4: str?, name: str?, three_d_secure: str, tokenization_method: str?}, card_present: map{application_cryptogram: str, application_preferred_name: str, authorization_code: str?, authorization_response_code: str, brand: str?, country: str?, cvm_type: str, data_type: str?, dedicated_file_name: str, emv_auth_data: str, evidence_customer_signature: str?, evidence_transaction_certificate: str?, exp_month: int?, exp_year: int?, fingerprint: str, funding: str?, last4: str?, pos_device_id: str?, pos_entry_mode: str, read_method: str?, reader: str?, terminal_verification_results: str, transaction_status_information: str}, client_secret: str, code_verification: map{attempts_remaining: int, status: str}, created: int(unix-time), currency: str(currency)?, customer: str, eps: map{reference: str?, statement_descriptor: str?}, flow: str, giropay: map{bank_code: str?, bank_name: str?, bic: str?, statement_descriptor: str?}, id: str, ideal: map{bank: str?, bic: str?, iban_last4: str?, statement_descriptor: str?}, klarna: map{background_image_url: str, client_token: str?, first_name: str, last_name: str, locale: str, logo_url: str, page_title: str, pay_later_asset_urls_descriptive: str, pay_later_asset_urls_standard: str, pay_later_name: str, pay_later_redirect_url: str, pay_now_asset_urls_descriptive: str, pay_now_asset_urls_standard: str, pay_now_name: str, pay_now_redirect_url: str, pay_over_time_asset_urls_descriptive: str, pay_over_time_asset_urls_standard: str, pay_over_time_name: str, pay_over_time_redirect_url: str, payment_method_categories: str, purchase_country: str, purchase_type: str, redirect_url: str, shipping_delay: int, shipping_first_name: str, shipping_last_name: str}, livemode: bool, metadata: map?, multibanco: map{entity: str?, reference: str?, refund_account_holder_address_city: str?, refund_account_holder_address_country: str?, refund_account_holder_address_line1: str?, refund_account_holder_address_line2: str?, refund_account_holder_address_postal_code: str?, refund_account_holder_address_state: str?, refund_account_holder_name: str?, refund_iban: str?}, object: str, owner: any?, p24: map{reference: str?}, receiver: map{address: str?, amount_charged: int, amount_received: int, amount_returned: int, refund_attributes_method: str, refund_attributes_status: str}, redirect: map{failure_reason: str?, return_url: str, status: str, url: str}, sepa_debit: map{bank_code: str?, branch_code: str?, country: str?, fingerprint: str?, last4: str?, mandate_reference: str?, mandate_url: str?}, sofort: map{bank_code: str?, bank_name: str?, bic: str?, country: str?, iban_last4: str?, preferred_language: str?, statement_descriptor: str?}, source_order: map{amount: int, currency: str(currency), email: str, items: [map]?, shipping: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, carrier: str?, name: str, phone: str?, tracking_number: str?}}, statement_descriptor: str?, status: str, three_d_secure: map{address_line1_check: str?, address_zip_check: str?, authenticated: bool?, brand: str?, card: str?, country: str?, customer: str?, cvc_check: str?, dynamic_last4: str?, exp_month: int?, exp_year: int?, fingerprint: str, funding: str?, last4: str?, name: str?, three_d_secure: str, tokenization_method: str?}, type: str, usage: str?, wechat: map{prepay_id: str, qr_code_url: str?, statement_descriptor: str}}

@endgroup

@group subscription_items
@endpoint GET /v1/subscription_items
@required {subscription: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/subscription_items
@returns(200) {billing_thresholds: any?, created: int, current_period_end: int(unix-time), current_period_start: int(unix-time), discounts: [any], id: str, metadata: map, object: str, price: map{active: bool, billing_scheme: str, created: int(unix-time), currency: str(currency), currency_options: map, custom_unit_amount: any?, id: str, livemode: bool, lookup_key: str?, metadata: map, nickname: str?, object: str, product: any, recurring: any?, tax_behavior: str?, tiers: [map], tiers_mode: str?, transform_quantity: any?, type: str, unit_amount: int?, unit_amount_decimal: str(decimal)?}, quantity: int, subscription: str, tax_rates: [map]?}

@endpoint DELETE /v1/subscription_items/{item}
@required {item: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/subscription_items/{item}
@required {item: str}
@optional {expand: [str]}
@returns(200) {billing_thresholds: any?, created: int, current_period_end: int(unix-time), current_period_start: int(unix-time), discounts: [any], id: str, metadata: map, object: str, price: map{active: bool, billing_scheme: str, created: int(unix-time), currency: str(currency), currency_options: map, custom_unit_amount: any?, id: str, livemode: bool, lookup_key: str?, metadata: map, nickname: str?, object: str, product: any, recurring: any?, tax_behavior: str?, tiers: [map], tiers_mode: str?, transform_quantity: any?, type: str, unit_amount: int?, unit_amount_decimal: str(decimal)?}, quantity: int, subscription: str, tax_rates: [map]?}

@endpoint POST /v1/subscription_items/{item}
@required {item: str}
@returns(200) {billing_thresholds: any?, created: int, current_period_end: int(unix-time), current_period_start: int(unix-time), discounts: [any], id: str, metadata: map, object: str, price: map{active: bool, billing_scheme: str, created: int(unix-time), currency: str(currency), currency_options: map, custom_unit_amount: any?, id: str, livemode: bool, lookup_key: str?, metadata: map, nickname: str?, object: str, product: any, recurring: any?, tax_behavior: str?, tiers: [map], tiers_mode: str?, transform_quantity: any?, type: str, unit_amount: int?, unit_amount_decimal: str(decimal)?}, quantity: int, subscription: str, tax_rates: [map]?}

@endgroup

@group subscription_schedules
@endpoint GET /v1/subscription_schedules
@optional {canceled_at: any, completed_at: any, created: any, customer: str, customer_account: str, ending_before: str, expand: [str], limit: int, released_at: any, scheduled: bool, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/subscription_schedules
@returns(200) {application: any?, billing_mode: map{flexible: any?, type: str, updated_at: int(unix-time)}, canceled_at: int(unix-time)?, completed_at: int(unix-time)?, created: int(unix-time), current_phase: any?, customer: any, customer_account: str?, default_settings: map{application_fee_percent: num?, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?}, billing_cycle_anchor: str, billing_thresholds: any?, collection_method: str?, default_payment_method: any?, description: str?, invoice_settings: map{account_tax_ids: [any]?, days_until_due: int?, issuer: map{account: any, type: str}}, on_behalf_of: any?, transfer_data: any?}, end_behavior: str, id: str, livemode: bool, metadata: map?, object: str, phases: [map], released_at: int(unix-time)?, released_subscription: str?, status: str, subscription: any?, test_clock: any?}

@endpoint GET /v1/subscription_schedules/{schedule}
@required {schedule: str}
@optional {expand: [str]}
@returns(200) {application: any?, billing_mode: map{flexible: any?, type: str, updated_at: int(unix-time)}, canceled_at: int(unix-time)?, completed_at: int(unix-time)?, created: int(unix-time), current_phase: any?, customer: any, customer_account: str?, default_settings: map{application_fee_percent: num?, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?}, billing_cycle_anchor: str, billing_thresholds: any?, collection_method: str?, default_payment_method: any?, description: str?, invoice_settings: map{account_tax_ids: [any]?, days_until_due: int?, issuer: map{account: any, type: str}}, on_behalf_of: any?, transfer_data: any?}, end_behavior: str, id: str, livemode: bool, metadata: map?, object: str, phases: [map], released_at: int(unix-time)?, released_subscription: str?, status: str, subscription: any?, test_clock: any?}

@endpoint POST /v1/subscription_schedules/{schedule}
@required {schedule: str}
@returns(200) {application: any?, billing_mode: map{flexible: any?, type: str, updated_at: int(unix-time)}, canceled_at: int(unix-time)?, completed_at: int(unix-time)?, created: int(unix-time), current_phase: any?, customer: any, customer_account: str?, default_settings: map{application_fee_percent: num?, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?}, billing_cycle_anchor: str, billing_thresholds: any?, collection_method: str?, default_payment_method: any?, description: str?, invoice_settings: map{account_tax_ids: [any]?, days_until_due: int?, issuer: map{account: any, type: str}}, on_behalf_of: any?, transfer_data: any?}, end_behavior: str, id: str, livemode: bool, metadata: map?, object: str, phases: [map], released_at: int(unix-time)?, released_subscription: str?, status: str, subscription: any?, test_clock: any?}

@endpoint POST /v1/subscription_schedules/{schedule}/cancel
@required {schedule: str}
@returns(200) {application: any?, billing_mode: map{flexible: any?, type: str, updated_at: int(unix-time)}, canceled_at: int(unix-time)?, completed_at: int(unix-time)?, created: int(unix-time), current_phase: any?, customer: any, customer_account: str?, default_settings: map{application_fee_percent: num?, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?}, billing_cycle_anchor: str, billing_thresholds: any?, collection_method: str?, default_payment_method: any?, description: str?, invoice_settings: map{account_tax_ids: [any]?, days_until_due: int?, issuer: map{account: any, type: str}}, on_behalf_of: any?, transfer_data: any?}, end_behavior: str, id: str, livemode: bool, metadata: map?, object: str, phases: [map], released_at: int(unix-time)?, released_subscription: str?, status: str, subscription: any?, test_clock: any?}

@endpoint POST /v1/subscription_schedules/{schedule}/release
@required {schedule: str}
@returns(200) {application: any?, billing_mode: map{flexible: any?, type: str, updated_at: int(unix-time)}, canceled_at: int(unix-time)?, completed_at: int(unix-time)?, created: int(unix-time), current_phase: any?, customer: any, customer_account: str?, default_settings: map{application_fee_percent: num?, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?}, billing_cycle_anchor: str, billing_thresholds: any?, collection_method: str?, default_payment_method: any?, description: str?, invoice_settings: map{account_tax_ids: [any]?, days_until_due: int?, issuer: map{account: any, type: str}}, on_behalf_of: any?, transfer_data: any?}, end_behavior: str, id: str, livemode: bool, metadata: map?, object: str, phases: [map], released_at: int(unix-time)?, released_subscription: str?, status: str, subscription: any?, test_clock: any?}

@endgroup

@group subscriptions
@endpoint GET /v1/subscriptions
@optional {automatic_tax: map, collection_method: str(charge_automatically/send_invoice), created: any, current_period_end: any, current_period_start: any, customer: str, customer_account: str, ending_before: str, expand: [str], limit: int, price: str, starting_after: str, status: str(active/all/canceled/ended/incomplete/incomplete_expired/past_due/paused/trialing/unpaid), test_clock: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/subscriptions
@returns(200) {application: any?, application_fee_percent: num?, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?}, billing_cycle_anchor: int(unix-time), billing_cycle_anchor_config: any?, billing_mode: map{flexible: any?, type: str, updated_at: int(unix-time)}, billing_thresholds: any?, cancel_at: int(unix-time)?, cancel_at_period_end: bool, canceled_at: int(unix-time)?, cancellation_details: any?, collection_method: str, created: int(unix-time), currency: str(currency), customer: any, customer_account: str?, days_until_due: int?, default_payment_method: any?, default_source: any?, default_tax_rates: [map]?, description: str?, discounts: [any], ended_at: int(unix-time)?, id: str, invoice_settings: map{account_tax_ids: [any]?, issuer: map{account: any, type: str}}, items: map{data: [map], has_more: bool, object: str, url: str}, latest_invoice: any?, livemode: bool, metadata: map, next_pending_invoice_item_invoice: int(unix-time)?, object: str, on_behalf_of: any?, pause_collection: any?, payment_settings: any?, pending_invoice_item_interval: any?, pending_setup_intent: any?, pending_update: any?, presentment_details: map{presentment_currency: str}, schedule: any?, start_date: int(unix-time), status: str, test_clock: any?, transfer_data: any?, trial_end: int(unix-time)?, trial_settings: any?, trial_start: int(unix-time)?}

@endpoint GET /v1/subscriptions/search
@required {query: str}
@optional {expand: [str], limit: int, page: str}
@returns(200) {data: [map], has_more: bool, next_page: str?, object: str, total_count: int, url: str}

@endpoint DELETE /v1/subscriptions/{subscription_exposed_id}
@required {subscription_exposed_id: str}
@returns(200) {application: any?, application_fee_percent: num?, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?}, billing_cycle_anchor: int(unix-time), billing_cycle_anchor_config: any?, billing_mode: map{flexible: any?, type: str, updated_at: int(unix-time)}, billing_thresholds: any?, cancel_at: int(unix-time)?, cancel_at_period_end: bool, canceled_at: int(unix-time)?, cancellation_details: any?, collection_method: str, created: int(unix-time), currency: str(currency), customer: any, customer_account: str?, days_until_due: int?, default_payment_method: any?, default_source: any?, default_tax_rates: [map]?, description: str?, discounts: [any], ended_at: int(unix-time)?, id: str, invoice_settings: map{account_tax_ids: [any]?, issuer: map{account: any, type: str}}, items: map{data: [map], has_more: bool, object: str, url: str}, latest_invoice: any?, livemode: bool, metadata: map, next_pending_invoice_item_invoice: int(unix-time)?, object: str, on_behalf_of: any?, pause_collection: any?, payment_settings: any?, pending_invoice_item_interval: any?, pending_setup_intent: any?, pending_update: any?, presentment_details: map{presentment_currency: str}, schedule: any?, start_date: int(unix-time), status: str, test_clock: any?, transfer_data: any?, trial_end: int(unix-time)?, trial_settings: any?, trial_start: int(unix-time)?}

@endpoint GET /v1/subscriptions/{subscription_exposed_id}
@required {subscription_exposed_id: str}
@optional {expand: [str]}
@returns(200) {application: any?, application_fee_percent: num?, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?}, billing_cycle_anchor: int(unix-time), billing_cycle_anchor_config: any?, billing_mode: map{flexible: any?, type: str, updated_at: int(unix-time)}, billing_thresholds: any?, cancel_at: int(unix-time)?, cancel_at_period_end: bool, canceled_at: int(unix-time)?, cancellation_details: any?, collection_method: str, created: int(unix-time), currency: str(currency), customer: any, customer_account: str?, days_until_due: int?, default_payment_method: any?, default_source: any?, default_tax_rates: [map]?, description: str?, discounts: [any], ended_at: int(unix-time)?, id: str, invoice_settings: map{account_tax_ids: [any]?, issuer: map{account: any, type: str}}, items: map{data: [map], has_more: bool, object: str, url: str}, latest_invoice: any?, livemode: bool, metadata: map, next_pending_invoice_item_invoice: int(unix-time)?, object: str, on_behalf_of: any?, pause_collection: any?, payment_settings: any?, pending_invoice_item_interval: any?, pending_setup_intent: any?, pending_update: any?, presentment_details: map{presentment_currency: str}, schedule: any?, start_date: int(unix-time), status: str, test_clock: any?, transfer_data: any?, trial_end: int(unix-time)?, trial_settings: any?, trial_start: int(unix-time)?}

@endpoint POST /v1/subscriptions/{subscription_exposed_id}
@required {subscription_exposed_id: str}
@returns(200) {application: any?, application_fee_percent: num?, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?}, billing_cycle_anchor: int(unix-time), billing_cycle_anchor_config: any?, billing_mode: map{flexible: any?, type: str, updated_at: int(unix-time)}, billing_thresholds: any?, cancel_at: int(unix-time)?, cancel_at_period_end: bool, canceled_at: int(unix-time)?, cancellation_details: any?, collection_method: str, created: int(unix-time), currency: str(currency), customer: any, customer_account: str?, days_until_due: int?, default_payment_method: any?, default_source: any?, default_tax_rates: [map]?, description: str?, discounts: [any], ended_at: int(unix-time)?, id: str, invoice_settings: map{account_tax_ids: [any]?, issuer: map{account: any, type: str}}, items: map{data: [map], has_more: bool, object: str, url: str}, latest_invoice: any?, livemode: bool, metadata: map, next_pending_invoice_item_invoice: int(unix-time)?, object: str, on_behalf_of: any?, pause_collection: any?, payment_settings: any?, pending_invoice_item_interval: any?, pending_setup_intent: any?, pending_update: any?, presentment_details: map{presentment_currency: str}, schedule: any?, start_date: int(unix-time), status: str, test_clock: any?, transfer_data: any?, trial_end: int(unix-time)?, trial_settings: any?, trial_start: int(unix-time)?}

@endpoint DELETE /v1/subscriptions/{subscription_exposed_id}/discount
@required {subscription_exposed_id: str}
@returns(200) {checkout_session: str?, customer: any?, customer_account: str?, deleted: bool, id: str, invoice: str?, invoice_item: str?, object: str, promotion_code: any?, source: map{coupon: any?, type: str}, start: int(unix-time), subscription: str?, subscription_item: str?}

@endpoint POST /v1/subscriptions/{subscription}/migrate
@required {subscription: str}
@returns(200) {application: any?, application_fee_percent: num?, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?}, billing_cycle_anchor: int(unix-time), billing_cycle_anchor_config: any?, billing_mode: map{flexible: any?, type: str, updated_at: int(unix-time)}, billing_thresholds: any?, cancel_at: int(unix-time)?, cancel_at_period_end: bool, canceled_at: int(unix-time)?, cancellation_details: any?, collection_method: str, created: int(unix-time), currency: str(currency), customer: any, customer_account: str?, days_until_due: int?, default_payment_method: any?, default_source: any?, default_tax_rates: [map]?, description: str?, discounts: [any], ended_at: int(unix-time)?, id: str, invoice_settings: map{account_tax_ids: [any]?, issuer: map{account: any, type: str}}, items: map{data: [map], has_more: bool, object: str, url: str}, latest_invoice: any?, livemode: bool, metadata: map, next_pending_invoice_item_invoice: int(unix-time)?, object: str, on_behalf_of: any?, pause_collection: any?, payment_settings: any?, pending_invoice_item_interval: any?, pending_setup_intent: any?, pending_update: any?, presentment_details: map{presentment_currency: str}, schedule: any?, start_date: int(unix-time), status: str, test_clock: any?, transfer_data: any?, trial_end: int(unix-time)?, trial_settings: any?, trial_start: int(unix-time)?}

@endpoint POST /v1/subscriptions/{subscription}/resume
@required {subscription: str}
@returns(200) {application: any?, application_fee_percent: num?, automatic_tax: map{disabled_reason: str?, enabled: bool, liability: any?}, billing_cycle_anchor: int(unix-time), billing_cycle_anchor_config: any?, billing_mode: map{flexible: any?, type: str, updated_at: int(unix-time)}, billing_thresholds: any?, cancel_at: int(unix-time)?, cancel_at_period_end: bool, canceled_at: int(unix-time)?, cancellation_details: any?, collection_method: str, created: int(unix-time), currency: str(currency), customer: any, customer_account: str?, days_until_due: int?, default_payment_method: any?, default_source: any?, default_tax_rates: [map]?, description: str?, discounts: [any], ended_at: int(unix-time)?, id: str, invoice_settings: map{account_tax_ids: [any]?, issuer: map{account: any, type: str}}, items: map{data: [map], has_more: bool, object: str, url: str}, latest_invoice: any?, livemode: bool, metadata: map, next_pending_invoice_item_invoice: int(unix-time)?, object: str, on_behalf_of: any?, pause_collection: any?, payment_settings: any?, pending_invoice_item_interval: any?, pending_setup_intent: any?, pending_update: any?, presentment_details: map{presentment_currency: str}, schedule: any?, start_date: int(unix-time), status: str, test_clock: any?, transfer_data: any?, trial_end: int(unix-time)?, trial_settings: any?, trial_start: int(unix-time)?}

@endgroup

@group tax
@endpoint GET /v1/tax/associations/find
@required {payment_intent: str}
@optional {expand: [str]}
@returns(200) {calculation: str, id: str, object: str, payment_intent: str, tax_transaction_attempts: [map]?}

@endpoint POST /v1/tax/calculations
@returns(200) {amount_total: int, currency: str, customer: str?, customer_details: map{address: any?, address_source: str?, ip_address: str?, tax_ids: [map], taxability_override: str}, expires_at: int(unix-time)?, id: str?, line_items: map?{data: [map], has_more: bool, object: str, url: str}, livemode: bool, object: str, ship_from_details: any?, shipping_cost: any?, tax_amount_exclusive: int, tax_amount_inclusive: int, tax_breakdown: [map], tax_date: int(unix-time)}

@endpoint GET /v1/tax/calculations/{calculation}
@required {calculation: str}
@optional {expand: [str]}
@returns(200) {amount_total: int, currency: str, customer: str?, customer_details: map{address: any?, address_source: str?, ip_address: str?, tax_ids: [map], taxability_override: str}, expires_at: int(unix-time)?, id: str?, line_items: map?{data: [map], has_more: bool, object: str, url: str}, livemode: bool, object: str, ship_from_details: any?, shipping_cost: any?, tax_amount_exclusive: int, tax_amount_inclusive: int, tax_breakdown: [map], tax_date: int(unix-time)}

@endpoint GET /v1/tax/calculations/{calculation}/line_items
@required {calculation: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/tax/registrations
@optional {ending_before: str, expand: [str], limit: int, starting_after: str, status: str(active/all/expired/scheduled)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/tax/registrations
@returns(200) {active_from: int(unix-time), country: str, country_options: map{ae: map{standard: map{place_of_supply_scheme: str}, type: str}, al: map{type: str}, am: map{type: str}, ao: map{type: str}, at: map{standard: map{place_of_supply_scheme: str}, type: str}, au: map{standard: map{place_of_supply_scheme: str}, type: str}, aw: map{type: str}, az: map{type: str}, ba: map{type: str}, bb: map{type: str}, bd: map{type: str}, be: map{standard: map{place_of_supply_scheme: str}, type: str}, bf: map{type: str}, bg: map{standard: map{place_of_supply_scheme: str}, type: str}, bh: map{type: str}, bj: map{type: str}, bs: map{type: str}, by: map{type: str}, ca: map{province_standard: map{province: str}, type: str}, cd: map{type: str}, ch: map{standard: map{place_of_supply_scheme: str}, type: str}, cl: map{type: str}, cm: map{type: str}, co: map{type: str}, cr: map{type: str}, cv: map{type: str}, cy: map{standard: map{place_of_supply_scheme: str}, type: str}, cz: map{standard: map{place_of_supply_scheme: str}, type: str}, de: map{standard: map{place_of_supply_scheme: str}, type: str}, dk: map{standard: map{place_of_supply_scheme: str}, type: str}, ec: map{type: str}, ee: map{standard: map{place_of_supply_scheme: str}, type: str}, eg: map{type: str}, es: map{standard: map{place_of_supply_scheme: str}, type: str}, et: map{type: str}, fi: map{standard: map{place_of_supply_scheme: str}, type: str}, fr: map{standard: map{place_of_supply_scheme: str}, type: str}, gb: map{standard: map{place_of_supply_scheme: str}, type: str}, ge: map{type: str}, gn: map{type: str}, gr: map{standard: map{place_of_supply_scheme: str}, type: str}, hr: map{standard: map{place_of_supply_scheme: str}, type: str}, hu: map{standard: map{place_of_supply_scheme: str}, type: str}, id: map{type: str}, ie: map{standard: map{place_of_supply_scheme: str}, type: str}, in: map{type: str}, is: map{type: str}, it: map{standard: map{place_of_supply_scheme: str}, type: str}, jp: map{standard: map{place_of_supply_scheme: str}, type: str}, ke: map{type: str}, kg: map{type: str}, kh: map{type: str}, kr: map{type: str}, kz: map{type: str}, la: map{type: str}, lk: map{type: str}, lt: map{standard: map{place_of_supply_scheme: str}, type: str}, lu: map{standard: map{place_of_supply_scheme: str}, type: str}, lv: map{standard: map{place_of_supply_scheme: str}, type: str}, ma: map{type: str}, md: map{type: str}, me: map{type: str}, mk: map{type: str}, mr: map{type: str}, mt: map{standard: map{place_of_supply_scheme: str}, type: str}, mx: map{type: str}, my: map{type: str}, ng: map{type: str}, nl: map{standard: map{place_of_supply_scheme: str}, type: str}, no: map{standard: map{place_of_supply_scheme: str}, type: str}, np: map{type: str}, nz: map{standard: map{place_of_supply_scheme: str}, type: str}, om: map{type: str}, pe: map{type: str}, ph: map{type: str}, pl: map{standard: map{place_of_supply_scheme: str}, type: str}, pt: map{standard: map{place_of_supply_scheme: str}, type: str}, ro: map{standard: map{place_of_supply_scheme: str}, type: str}, rs: map{type: str}, ru: map{type: str}, sa: map{type: str}, se: map{standard: map{place_of_supply_scheme: str}, type: str}, sg: map{standard: map{place_of_supply_scheme: str}, type: str}, si: map{standard: map{place_of_supply_scheme: str}, type: str}, sk: map{standard: map{place_of_supply_scheme: str}, type: str}, sn: map{type: str}, sr: map{type: str}, th: map{type: str}, tj: map{type: str}, tr: map{type: str}, tw: map{type: str}, tz: map{type: str}, ua: map{type: str}, ug: map{type: str}, us: map{local_amusement_tax: map{jurisdiction: str}, local_lease_tax: map{jurisdiction: str}, state: str, state_sales_tax: map{elections: [map]}, type: str}, uy: map{type: str}, uz: map{type: str}, vn: map{type: str}, za: map{type: str}, zm: map{type: str}, zw: map{type: str}}, created: int(unix-time), expires_at: int(unix-time)?, id: str, livemode: bool, object: str, status: str}

@endpoint GET /v1/tax/registrations/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {active_from: int(unix-time), country: str, country_options: map{ae: map{standard: map{place_of_supply_scheme: str}, type: str}, al: map{type: str}, am: map{type: str}, ao: map{type: str}, at: map{standard: map{place_of_supply_scheme: str}, type: str}, au: map{standard: map{place_of_supply_scheme: str}, type: str}, aw: map{type: str}, az: map{type: str}, ba: map{type: str}, bb: map{type: str}, bd: map{type: str}, be: map{standard: map{place_of_supply_scheme: str}, type: str}, bf: map{type: str}, bg: map{standard: map{place_of_supply_scheme: str}, type: str}, bh: map{type: str}, bj: map{type: str}, bs: map{type: str}, by: map{type: str}, ca: map{province_standard: map{province: str}, type: str}, cd: map{type: str}, ch: map{standard: map{place_of_supply_scheme: str}, type: str}, cl: map{type: str}, cm: map{type: str}, co: map{type: str}, cr: map{type: str}, cv: map{type: str}, cy: map{standard: map{place_of_supply_scheme: str}, type: str}, cz: map{standard: map{place_of_supply_scheme: str}, type: str}, de: map{standard: map{place_of_supply_scheme: str}, type: str}, dk: map{standard: map{place_of_supply_scheme: str}, type: str}, ec: map{type: str}, ee: map{standard: map{place_of_supply_scheme: str}, type: str}, eg: map{type: str}, es: map{standard: map{place_of_supply_scheme: str}, type: str}, et: map{type: str}, fi: map{standard: map{place_of_supply_scheme: str}, type: str}, fr: map{standard: map{place_of_supply_scheme: str}, type: str}, gb: map{standard: map{place_of_supply_scheme: str}, type: str}, ge: map{type: str}, gn: map{type: str}, gr: map{standard: map{place_of_supply_scheme: str}, type: str}, hr: map{standard: map{place_of_supply_scheme: str}, type: str}, hu: map{standard: map{place_of_supply_scheme: str}, type: str}, id: map{type: str}, ie: map{standard: map{place_of_supply_scheme: str}, type: str}, in: map{type: str}, is: map{type: str}, it: map{standard: map{place_of_supply_scheme: str}, type: str}, jp: map{standard: map{place_of_supply_scheme: str}, type: str}, ke: map{type: str}, kg: map{type: str}, kh: map{type: str}, kr: map{type: str}, kz: map{type: str}, la: map{type: str}, lk: map{type: str}, lt: map{standard: map{place_of_supply_scheme: str}, type: str}, lu: map{standard: map{place_of_supply_scheme: str}, type: str}, lv: map{standard: map{place_of_supply_scheme: str}, type: str}, ma: map{type: str}, md: map{type: str}, me: map{type: str}, mk: map{type: str}, mr: map{type: str}, mt: map{standard: map{place_of_supply_scheme: str}, type: str}, mx: map{type: str}, my: map{type: str}, ng: map{type: str}, nl: map{standard: map{place_of_supply_scheme: str}, type: str}, no: map{standard: map{place_of_supply_scheme: str}, type: str}, np: map{type: str}, nz: map{standard: map{place_of_supply_scheme: str}, type: str}, om: map{type: str}, pe: map{type: str}, ph: map{type: str}, pl: map{standard: map{place_of_supply_scheme: str}, type: str}, pt: map{standard: map{place_of_supply_scheme: str}, type: str}, ro: map{standard: map{place_of_supply_scheme: str}, type: str}, rs: map{type: str}, ru: map{type: str}, sa: map{type: str}, se: map{standard: map{place_of_supply_scheme: str}, type: str}, sg: map{standard: map{place_of_supply_scheme: str}, type: str}, si: map{standard: map{place_of_supply_scheme: str}, type: str}, sk: map{standard: map{place_of_supply_scheme: str}, type: str}, sn: map{type: str}, sr: map{type: str}, th: map{type: str}, tj: map{type: str}, tr: map{type: str}, tw: map{type: str}, tz: map{type: str}, ua: map{type: str}, ug: map{type: str}, us: map{local_amusement_tax: map{jurisdiction: str}, local_lease_tax: map{jurisdiction: str}, state: str, state_sales_tax: map{elections: [map]}, type: str}, uy: map{type: str}, uz: map{type: str}, vn: map{type: str}, za: map{type: str}, zm: map{type: str}, zw: map{type: str}}, created: int(unix-time), expires_at: int(unix-time)?, id: str, livemode: bool, object: str, status: str}

@endpoint POST /v1/tax/registrations/{id}
@required {id: str}
@returns(200) {active_from: int(unix-time), country: str, country_options: map{ae: map{standard: map{place_of_supply_scheme: str}, type: str}, al: map{type: str}, am: map{type: str}, ao: map{type: str}, at: map{standard: map{place_of_supply_scheme: str}, type: str}, au: map{standard: map{place_of_supply_scheme: str}, type: str}, aw: map{type: str}, az: map{type: str}, ba: map{type: str}, bb: map{type: str}, bd: map{type: str}, be: map{standard: map{place_of_supply_scheme: str}, type: str}, bf: map{type: str}, bg: map{standard: map{place_of_supply_scheme: str}, type: str}, bh: map{type: str}, bj: map{type: str}, bs: map{type: str}, by: map{type: str}, ca: map{province_standard: map{province: str}, type: str}, cd: map{type: str}, ch: map{standard: map{place_of_supply_scheme: str}, type: str}, cl: map{type: str}, cm: map{type: str}, co: map{type: str}, cr: map{type: str}, cv: map{type: str}, cy: map{standard: map{place_of_supply_scheme: str}, type: str}, cz: map{standard: map{place_of_supply_scheme: str}, type: str}, de: map{standard: map{place_of_supply_scheme: str}, type: str}, dk: map{standard: map{place_of_supply_scheme: str}, type: str}, ec: map{type: str}, ee: map{standard: map{place_of_supply_scheme: str}, type: str}, eg: map{type: str}, es: map{standard: map{place_of_supply_scheme: str}, type: str}, et: map{type: str}, fi: map{standard: map{place_of_supply_scheme: str}, type: str}, fr: map{standard: map{place_of_supply_scheme: str}, type: str}, gb: map{standard: map{place_of_supply_scheme: str}, type: str}, ge: map{type: str}, gn: map{type: str}, gr: map{standard: map{place_of_supply_scheme: str}, type: str}, hr: map{standard: map{place_of_supply_scheme: str}, type: str}, hu: map{standard: map{place_of_supply_scheme: str}, type: str}, id: map{type: str}, ie: map{standard: map{place_of_supply_scheme: str}, type: str}, in: map{type: str}, is: map{type: str}, it: map{standard: map{place_of_supply_scheme: str}, type: str}, jp: map{standard: map{place_of_supply_scheme: str}, type: str}, ke: map{type: str}, kg: map{type: str}, kh: map{type: str}, kr: map{type: str}, kz: map{type: str}, la: map{type: str}, lk: map{type: str}, lt: map{standard: map{place_of_supply_scheme: str}, type: str}, lu: map{standard: map{place_of_supply_scheme: str}, type: str}, lv: map{standard: map{place_of_supply_scheme: str}, type: str}, ma: map{type: str}, md: map{type: str}, me: map{type: str}, mk: map{type: str}, mr: map{type: str}, mt: map{standard: map{place_of_supply_scheme: str}, type: str}, mx: map{type: str}, my: map{type: str}, ng: map{type: str}, nl: map{standard: map{place_of_supply_scheme: str}, type: str}, no: map{standard: map{place_of_supply_scheme: str}, type: str}, np: map{type: str}, nz: map{standard: map{place_of_supply_scheme: str}, type: str}, om: map{type: str}, pe: map{type: str}, ph: map{type: str}, pl: map{standard: map{place_of_supply_scheme: str}, type: str}, pt: map{standard: map{place_of_supply_scheme: str}, type: str}, ro: map{standard: map{place_of_supply_scheme: str}, type: str}, rs: map{type: str}, ru: map{type: str}, sa: map{type: str}, se: map{standard: map{place_of_supply_scheme: str}, type: str}, sg: map{standard: map{place_of_supply_scheme: str}, type: str}, si: map{standard: map{place_of_supply_scheme: str}, type: str}, sk: map{standard: map{place_of_supply_scheme: str}, type: str}, sn: map{type: str}, sr: map{type: str}, th: map{type: str}, tj: map{type: str}, tr: map{type: str}, tw: map{type: str}, tz: map{type: str}, ua: map{type: str}, ug: map{type: str}, us: map{local_amusement_tax: map{jurisdiction: str}, local_lease_tax: map{jurisdiction: str}, state: str, state_sales_tax: map{elections: [map]}, type: str}, uy: map{type: str}, uz: map{type: str}, vn: map{type: str}, za: map{type: str}, zm: map{type: str}, zw: map{type: str}}, created: int(unix-time), expires_at: int(unix-time)?, id: str, livemode: bool, object: str, status: str}

@endpoint GET /v1/tax/settings
@optional {expand: [str]}
@returns(200) {defaults: map{provider: str, tax_behavior: str?, tax_code: str?}, head_office: any?, livemode: bool, object: str, status: str, status_details: map{active: map, pending: map{missing_fields: [str]?}}}

@endpoint POST /v1/tax/settings
@returns(200) {defaults: map{provider: str, tax_behavior: str?, tax_code: str?}, head_office: any?, livemode: bool, object: str, status: str, status_details: map{active: map, pending: map{missing_fields: [str]?}}}

@endpoint POST /v1/tax/transactions/create_from_calculation
@returns(200) {created: int(unix-time), currency: str, customer: str?, customer_details: map{address: any?, address_source: str?, ip_address: str?, tax_ids: [map], taxability_override: str}, id: str, line_items: map?{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map?, object: str, posted_at: int(unix-time), reference: str, reversal: any?, ship_from_details: any?, shipping_cost: any?, tax_date: int(unix-time), type: str}

@endpoint POST /v1/tax/transactions/create_reversal
@returns(200) {created: int(unix-time), currency: str, customer: str?, customer_details: map{address: any?, address_source: str?, ip_address: str?, tax_ids: [map], taxability_override: str}, id: str, line_items: map?{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map?, object: str, posted_at: int(unix-time), reference: str, reversal: any?, ship_from_details: any?, shipping_cost: any?, tax_date: int(unix-time), type: str}

@endpoint GET /v1/tax/transactions/{transaction}
@required {transaction: str}
@optional {expand: [str]}
@returns(200) {created: int(unix-time), currency: str, customer: str?, customer_details: map{address: any?, address_source: str?, ip_address: str?, tax_ids: [map], taxability_override: str}, id: str, line_items: map?{data: [map], has_more: bool, object: str, url: str}, livemode: bool, metadata: map?, object: str, posted_at: int(unix-time), reference: str, reversal: any?, ship_from_details: any?, shipping_cost: any?, tax_date: int(unix-time), type: str}

@endpoint GET /v1/tax/transactions/{transaction}/line_items
@required {transaction: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endgroup

@group tax_codes
@endpoint GET /v1/tax_codes
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/tax_codes/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {description: str, id: str, name: str, object: str}

@endgroup

@group tax_ids
@endpoint GET /v1/tax_ids
@optional {ending_before: str, expand: [str], limit: int, owner: map, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/tax_ids
@returns(200) {country: str?, created: int(unix-time), customer: any?, customer_account: str?, id: str, livemode: bool, object: str, owner: any?, type: str, value: str, verification: any?}

@endpoint DELETE /v1/tax_ids/{id}
@required {id: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/tax_ids/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {country: str?, created: int(unix-time), customer: any?, customer_account: str?, id: str, livemode: bool, object: str, owner: any?, type: str, value: str, verification: any?}

@endgroup

@group tax_rates
@endpoint GET /v1/tax_rates
@optional {active: bool, created: any, ending_before: str, expand: [str], inclusive: bool, limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/tax_rates
@returns(200) {active: bool, country: str?, created: int(unix-time), description: str?, display_name: str, effective_percentage: num?, flat_amount: any?, id: str, inclusive: bool, jurisdiction: str?, jurisdiction_level: str?, livemode: bool, metadata: map?, object: str, percentage: num, rate_type: str?, state: str?, tax_type: str?}

@endpoint GET /v1/tax_rates/{tax_rate}
@required {tax_rate: str}
@optional {expand: [str]}
@returns(200) {active: bool, country: str?, created: int(unix-time), description: str?, display_name: str, effective_percentage: num?, flat_amount: any?, id: str, inclusive: bool, jurisdiction: str?, jurisdiction_level: str?, livemode: bool, metadata: map?, object: str, percentage: num, rate_type: str?, state: str?, tax_type: str?}

@endpoint POST /v1/tax_rates/{tax_rate}
@required {tax_rate: str}
@returns(200) {active: bool, country: str?, created: int(unix-time), description: str?, display_name: str, effective_percentage: num?, flat_amount: any?, id: str, inclusive: bool, jurisdiction: str?, jurisdiction_level: str?, livemode: bool, metadata: map?, object: str, percentage: num, rate_type: str?, state: str?, tax_type: str?}

@endgroup

@group terminal
@endpoint GET /v1/terminal/configurations
@optional {ending_before: str, expand: [str], is_account_default: bool, limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/terminal/configurations
@returns(200) {bbpos_wisepad3: map{splashscreen: any}, bbpos_wisepos_e: map{splashscreen: any}, cellular: map{enabled: bool}, id: str, is_account_default: bool?, livemode: bool, name: str?, object: str, offline: map{enabled: bool?}, reboot_window: map{end_hour: int, start_hour: int}, stripe_s700: map{splashscreen: any}, stripe_s710: map{splashscreen: any}, tipping: map{aed: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, aud: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, cad: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, chf: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, czk: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, dkk: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, eur: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, gbp: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, gip: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, hkd: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, huf: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, jpy: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, mxn: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, myr: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, nok: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, nzd: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, pln: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, ron: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, sek: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, sgd: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}, usd: map{fixed_amounts: [int]?, percentages: [int]?, smart_tip_threshold: int}}, verifone_p400: map{splashscreen: any}, wifi: map{enterprise_eap_peap: map{ca_certificate_file: str, password: str, ssid: str, username: str}, enterprise_eap_tls: map{ca_certificate_file: str, client_certificate_file: str, private_key_file: str, private_key_file_password: str, ssid: str}, personal_psk: map{password: str, ssid: str}, type: str}}

@endpoint DELETE /v1/terminal/configurations/{configuration}
@required {configuration: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/terminal/configurations/{configuration}
@required {configuration: str}
@optional {expand: [str]}
@returns(200)

@endpoint POST /v1/terminal/configurations/{configuration}
@required {configuration: str}
@returns(200)

@endpoint POST /v1/terminal/connection_tokens
@returns(200) {location: str, object: str, secret: str}

@endpoint GET /v1/terminal/locations
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/terminal/locations
@returns(200) {address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, address_kana: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?, town: str?}, address_kanji: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?, town: str?}, configuration_overrides: str, display_name: str, display_name_kana: str, display_name_kanji: str, id: str, livemode: bool, metadata: map, object: str, phone: str}

@endpoint DELETE /v1/terminal/locations/{location}
@required {location: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/terminal/locations/{location}
@required {location: str}
@optional {expand: [str]}
@returns(200)

@endpoint POST /v1/terminal/locations/{location}
@required {location: str}
@returns(200)

@endpoint POST /v1/terminal/onboarding_links
@returns(200) {link_options: map{apple_terms_and_conditions: any?}, link_type: str, object: str, on_behalf_of: str?, redirect_url: str}

@endpoint GET /v1/terminal/readers
@optional {device_type: str(bbpos_chipper2x/bbpos_wisepad3/bbpos_wisepos_e/mobile_phone_reader/simulated_stripe_s700/simulated_stripe_s710/simulated_wisepos_e/stripe_m2/stripe_s700/stripe_s710/verifone_P400), ending_before: str, expand: [str], limit: int, location: str, serial_number: str, starting_after: str, status: str(offline/online)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/terminal/readers
@returns(200) {action: any?, device_sw_version: str?, device_type: str, id: str, ip_address: str?, label: str, last_seen_at: int(unix-time)?, livemode: bool, location: any?, metadata: map, object: str, serial_number: str, status: str?}

@endpoint DELETE /v1/terminal/readers/{reader}
@required {reader: str}
@returns(200) {deleted: bool, device_type: str, id: str, object: str, serial_number: str}

@endpoint GET /v1/terminal/readers/{reader}
@required {reader: str}
@optional {expand: [str]}
@returns(200)

@endpoint POST /v1/terminal/readers/{reader}
@required {reader: str}
@returns(200)

@endpoint POST /v1/terminal/readers/{reader}/cancel_action
@required {reader: str}
@returns(200) {action: any?, device_sw_version: str?, device_type: str, id: str, ip_address: str?, label: str, last_seen_at: int(unix-time)?, livemode: bool, location: any?, metadata: map, object: str, serial_number: str, status: str?}

@endpoint POST /v1/terminal/readers/{reader}/collect_inputs
@required {reader: str}
@returns(200) {action: any?, device_sw_version: str?, device_type: str, id: str, ip_address: str?, label: str, last_seen_at: int(unix-time)?, livemode: bool, location: any?, metadata: map, object: str, serial_number: str, status: str?}

@endpoint POST /v1/terminal/readers/{reader}/collect_payment_method
@required {reader: str}
@returns(200) {action: any?, device_sw_version: str?, device_type: str, id: str, ip_address: str?, label: str, last_seen_at: int(unix-time)?, livemode: bool, location: any?, metadata: map, object: str, serial_number: str, status: str?}

@endpoint POST /v1/terminal/readers/{reader}/confirm_payment_intent
@required {reader: str}
@returns(200) {action: any?, device_sw_version: str?, device_type: str, id: str, ip_address: str?, label: str, last_seen_at: int(unix-time)?, livemode: bool, location: any?, metadata: map, object: str, serial_number: str, status: str?}

@endpoint POST /v1/terminal/readers/{reader}/process_payment_intent
@required {reader: str}
@returns(200) {action: any?, device_sw_version: str?, device_type: str, id: str, ip_address: str?, label: str, last_seen_at: int(unix-time)?, livemode: bool, location: any?, metadata: map, object: str, serial_number: str, status: str?}

@endpoint POST /v1/terminal/readers/{reader}/process_setup_intent
@required {reader: str}
@returns(200) {action: any?, device_sw_version: str?, device_type: str, id: str, ip_address: str?, label: str, last_seen_at: int(unix-time)?, livemode: bool, location: any?, metadata: map, object: str, serial_number: str, status: str?}

@endpoint POST /v1/terminal/readers/{reader}/refund_payment
@required {reader: str}
@returns(200) {action: any?, device_sw_version: str?, device_type: str, id: str, ip_address: str?, label: str, last_seen_at: int(unix-time)?, livemode: bool, location: any?, metadata: map, object: str, serial_number: str, status: str?}

@endpoint POST /v1/terminal/readers/{reader}/set_reader_display
@required {reader: str}
@returns(200) {action: any?, device_sw_version: str?, device_type: str, id: str, ip_address: str?, label: str, last_seen_at: int(unix-time)?, livemode: bool, location: any?, metadata: map, object: str, serial_number: str, status: str?}

@endpoint POST /v1/terminal/refunds
@returns(200)

@endgroup

@group test_helpers
@endpoint POST /v1/test_helpers/confirmation_tokens
@returns(200) {created: int(unix-time), expires_at: int(unix-time)?, id: str, livemode: bool, mandate_data: any?, object: str, payment_intent: str?, payment_method_options: any?, payment_method_preview: any?, return_url: str?, setup_future_usage: str?, setup_intent: str?, shipping: any?, use_stripe_sdk: bool}

@endpoint POST /v1/test_helpers/customers/{customer}/fund_cash_balance
@required {customer: str}
@returns(200) {adjusted_for_overdraft: map{balance_transaction: any, linked_transaction: any}, applied_to_payment: map{payment_intent: any}, created: int(unix-time), currency: str, customer: any, customer_account: str?, ending_balance: int, funded: map{bank_transfer: map{eu_bank_transfer: map{bic: str?, iban_last4: str?, sender_name: str?}, gb_bank_transfer: map{account_number_last4: str?, sender_name: str?, sort_code: str?}, jp_bank_transfer: map{sender_bank: str?, sender_branch: str?, sender_name: str?}, reference: str?, type: str, us_bank_transfer: map{network: str, sender_name: str?}}}, id: str, livemode: bool, net_amount: int, object: str, refunded_from_payment: map{refund: any}, transferred_to_balance: map{balance_transaction: any}, type: str, unapplied_from_payment: map{payment_intent: any}}

@endpoint POST /v1/test_helpers/issuing/authorizations
@returns(200) {amount: int, amount_details: any?, approved: bool, authorization_method: str, balance_transactions: [map], card: map{brand: str, cancellation_reason: str?, cardholder: map{billing: map{address: map}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}, created: int(unix-time), currency: str(currency), cvc: str, exp_month: int, exp_year: int, financial_account: str?, id: str, last4: str, latest_fraud_warning: any?, lifecycle_controls: any?, livemode: bool, metadata: map, number: str, object: str, personalization_design: any?, replaced_by: any?, replacement_for: any?, replacement_reason: str?, second_line: str?, shipping: any?, spending_controls: map{allowed_categories: [str]?, allowed_merchant_countries: [str]?, blocked_categories: [str]?, blocked_merchant_countries: [str]?, spending_limits: [map]?, spending_limits_currency: str(currency)?}, status: str, type: str, wallets: any?}, cardholder: any?, created: int(unix-time), currency: str(currency), fleet: any?, fraud_challenges: [map]?, fuel: any?, id: str, livemode: bool, merchant_amount: int, merchant_currency: str(currency), merchant_data: map{category: str, category_code: str, city: str?, country: str?, name: str?, network_id: str, postal_code: str?, state: str?, tax_id: str?, terminal_id: str?, url: str?}, metadata: map, network_data: any?, object: str, pending_request: any?, request_history: [map], status: str, token: any?, transactions: [map], treasury: any?, verification_data: map{address_line1_check: str, address_postal_code_check: str, authentication_exemption: any?, cvc_check: str, expiry_check: str, postal_code: str?, three_d_secure: any?}, verified_by_fraud_challenge: bool?, wallet: str?}

@endpoint POST /v1/test_helpers/issuing/authorizations/{authorization}/capture
@required {authorization: str}
@returns(200) {amount: int, amount_details: any?, approved: bool, authorization_method: str, balance_transactions: [map], card: map{brand: str, cancellation_reason: str?, cardholder: map{billing: map{address: map}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}, created: int(unix-time), currency: str(currency), cvc: str, exp_month: int, exp_year: int, financial_account: str?, id: str, last4: str, latest_fraud_warning: any?, lifecycle_controls: any?, livemode: bool, metadata: map, number: str, object: str, personalization_design: any?, replaced_by: any?, replacement_for: any?, replacement_reason: str?, second_line: str?, shipping: any?, spending_controls: map{allowed_categories: [str]?, allowed_merchant_countries: [str]?, blocked_categories: [str]?, blocked_merchant_countries: [str]?, spending_limits: [map]?, spending_limits_currency: str(currency)?}, status: str, type: str, wallets: any?}, cardholder: any?, created: int(unix-time), currency: str(currency), fleet: any?, fraud_challenges: [map]?, fuel: any?, id: str, livemode: bool, merchant_amount: int, merchant_currency: str(currency), merchant_data: map{category: str, category_code: str, city: str?, country: str?, name: str?, network_id: str, postal_code: str?, state: str?, tax_id: str?, terminal_id: str?, url: str?}, metadata: map, network_data: any?, object: str, pending_request: any?, request_history: [map], status: str, token: any?, transactions: [map], treasury: any?, verification_data: map{address_line1_check: str, address_postal_code_check: str, authentication_exemption: any?, cvc_check: str, expiry_check: str, postal_code: str?, three_d_secure: any?}, verified_by_fraud_challenge: bool?, wallet: str?}

@endpoint POST /v1/test_helpers/issuing/authorizations/{authorization}/expire
@required {authorization: str}
@returns(200) {amount: int, amount_details: any?, approved: bool, authorization_method: str, balance_transactions: [map], card: map{brand: str, cancellation_reason: str?, cardholder: map{billing: map{address: map}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}, created: int(unix-time), currency: str(currency), cvc: str, exp_month: int, exp_year: int, financial_account: str?, id: str, last4: str, latest_fraud_warning: any?, lifecycle_controls: any?, livemode: bool, metadata: map, number: str, object: str, personalization_design: any?, replaced_by: any?, replacement_for: any?, replacement_reason: str?, second_line: str?, shipping: any?, spending_controls: map{allowed_categories: [str]?, allowed_merchant_countries: [str]?, blocked_categories: [str]?, blocked_merchant_countries: [str]?, spending_limits: [map]?, spending_limits_currency: str(currency)?}, status: str, type: str, wallets: any?}, cardholder: any?, created: int(unix-time), currency: str(currency), fleet: any?, fraud_challenges: [map]?, fuel: any?, id: str, livemode: bool, merchant_amount: int, merchant_currency: str(currency), merchant_data: map{category: str, category_code: str, city: str?, country: str?, name: str?, network_id: str, postal_code: str?, state: str?, tax_id: str?, terminal_id: str?, url: str?}, metadata: map, network_data: any?, object: str, pending_request: any?, request_history: [map], status: str, token: any?, transactions: [map], treasury: any?, verification_data: map{address_line1_check: str, address_postal_code_check: str, authentication_exemption: any?, cvc_check: str, expiry_check: str, postal_code: str?, three_d_secure: any?}, verified_by_fraud_challenge: bool?, wallet: str?}

@endpoint POST /v1/test_helpers/issuing/authorizations/{authorization}/finalize_amount
@required {authorization: str}
@returns(200) {amount: int, amount_details: any?, approved: bool, authorization_method: str, balance_transactions: [map], card: map{brand: str, cancellation_reason: str?, cardholder: map{billing: map{address: map}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}, created: int(unix-time), currency: str(currency), cvc: str, exp_month: int, exp_year: int, financial_account: str?, id: str, last4: str, latest_fraud_warning: any?, lifecycle_controls: any?, livemode: bool, metadata: map, number: str, object: str, personalization_design: any?, replaced_by: any?, replacement_for: any?, replacement_reason: str?, second_line: str?, shipping: any?, spending_controls: map{allowed_categories: [str]?, allowed_merchant_countries: [str]?, blocked_categories: [str]?, blocked_merchant_countries: [str]?, spending_limits: [map]?, spending_limits_currency: str(currency)?}, status: str, type: str, wallets: any?}, cardholder: any?, created: int(unix-time), currency: str(currency), fleet: any?, fraud_challenges: [map]?, fuel: any?, id: str, livemode: bool, merchant_amount: int, merchant_currency: str(currency), merchant_data: map{category: str, category_code: str, city: str?, country: str?, name: str?, network_id: str, postal_code: str?, state: str?, tax_id: str?, terminal_id: str?, url: str?}, metadata: map, network_data: any?, object: str, pending_request: any?, request_history: [map], status: str, token: any?, transactions: [map], treasury: any?, verification_data: map{address_line1_check: str, address_postal_code_check: str, authentication_exemption: any?, cvc_check: str, expiry_check: str, postal_code: str?, three_d_secure: any?}, verified_by_fraud_challenge: bool?, wallet: str?}

@endpoint POST /v1/test_helpers/issuing/authorizations/{authorization}/fraud_challenges/respond
@required {authorization: str}
@returns(200) {amount: int, amount_details: any?, approved: bool, authorization_method: str, balance_transactions: [map], card: map{brand: str, cancellation_reason: str?, cardholder: map{billing: map{address: map}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}, created: int(unix-time), currency: str(currency), cvc: str, exp_month: int, exp_year: int, financial_account: str?, id: str, last4: str, latest_fraud_warning: any?, lifecycle_controls: any?, livemode: bool, metadata: map, number: str, object: str, personalization_design: any?, replaced_by: any?, replacement_for: any?, replacement_reason: str?, second_line: str?, shipping: any?, spending_controls: map{allowed_categories: [str]?, allowed_merchant_countries: [str]?, blocked_categories: [str]?, blocked_merchant_countries: [str]?, spending_limits: [map]?, spending_limits_currency: str(currency)?}, status: str, type: str, wallets: any?}, cardholder: any?, created: int(unix-time), currency: str(currency), fleet: any?, fraud_challenges: [map]?, fuel: any?, id: str, livemode: bool, merchant_amount: int, merchant_currency: str(currency), merchant_data: map{category: str, category_code: str, city: str?, country: str?, name: str?, network_id: str, postal_code: str?, state: str?, tax_id: str?, terminal_id: str?, url: str?}, metadata: map, network_data: any?, object: str, pending_request: any?, request_history: [map], status: str, token: any?, transactions: [map], treasury: any?, verification_data: map{address_line1_check: str, address_postal_code_check: str, authentication_exemption: any?, cvc_check: str, expiry_check: str, postal_code: str?, three_d_secure: any?}, verified_by_fraud_challenge: bool?, wallet: str?}

@endpoint POST /v1/test_helpers/issuing/authorizations/{authorization}/increment
@required {authorization: str}
@returns(200) {amount: int, amount_details: any?, approved: bool, authorization_method: str, balance_transactions: [map], card: map{brand: str, cancellation_reason: str?, cardholder: map{billing: map{address: map}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}, created: int(unix-time), currency: str(currency), cvc: str, exp_month: int, exp_year: int, financial_account: str?, id: str, last4: str, latest_fraud_warning: any?, lifecycle_controls: any?, livemode: bool, metadata: map, number: str, object: str, personalization_design: any?, replaced_by: any?, replacement_for: any?, replacement_reason: str?, second_line: str?, shipping: any?, spending_controls: map{allowed_categories: [str]?, allowed_merchant_countries: [str]?, blocked_categories: [str]?, blocked_merchant_countries: [str]?, spending_limits: [map]?, spending_limits_currency: str(currency)?}, status: str, type: str, wallets: any?}, cardholder: any?, created: int(unix-time), currency: str(currency), fleet: any?, fraud_challenges: [map]?, fuel: any?, id: str, livemode: bool, merchant_amount: int, merchant_currency: str(currency), merchant_data: map{category: str, category_code: str, city: str?, country: str?, name: str?, network_id: str, postal_code: str?, state: str?, tax_id: str?, terminal_id: str?, url: str?}, metadata: map, network_data: any?, object: str, pending_request: any?, request_history: [map], status: str, token: any?, transactions: [map], treasury: any?, verification_data: map{address_line1_check: str, address_postal_code_check: str, authentication_exemption: any?, cvc_check: str, expiry_check: str, postal_code: str?, three_d_secure: any?}, verified_by_fraud_challenge: bool?, wallet: str?}

@endpoint POST /v1/test_helpers/issuing/authorizations/{authorization}/reverse
@required {authorization: str}
@returns(200) {amount: int, amount_details: any?, approved: bool, authorization_method: str, balance_transactions: [map], card: map{brand: str, cancellation_reason: str?, cardholder: map{billing: map{address: map}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}, created: int(unix-time), currency: str(currency), cvc: str, exp_month: int, exp_year: int, financial_account: str?, id: str, last4: str, latest_fraud_warning: any?, lifecycle_controls: any?, livemode: bool, metadata: map, number: str, object: str, personalization_design: any?, replaced_by: any?, replacement_for: any?, replacement_reason: str?, second_line: str?, shipping: any?, spending_controls: map{allowed_categories: [str]?, allowed_merchant_countries: [str]?, blocked_categories: [str]?, blocked_merchant_countries: [str]?, spending_limits: [map]?, spending_limits_currency: str(currency)?}, status: str, type: str, wallets: any?}, cardholder: any?, created: int(unix-time), currency: str(currency), fleet: any?, fraud_challenges: [map]?, fuel: any?, id: str, livemode: bool, merchant_amount: int, merchant_currency: str(currency), merchant_data: map{category: str, category_code: str, city: str?, country: str?, name: str?, network_id: str, postal_code: str?, state: str?, tax_id: str?, terminal_id: str?, url: str?}, metadata: map, network_data: any?, object: str, pending_request: any?, request_history: [map], status: str, token: any?, transactions: [map], treasury: any?, verification_data: map{address_line1_check: str, address_postal_code_check: str, authentication_exemption: any?, cvc_check: str, expiry_check: str, postal_code: str?, three_d_secure: any?}, verified_by_fraud_challenge: bool?, wallet: str?}

@endpoint POST /v1/test_helpers/issuing/cards/{card}/shipping/deliver
@required {card: str}
@returns(200) {brand: str, cancellation_reason: str?, cardholder: map{billing: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}, created: int(unix-time), currency: str(currency), cvc: str, exp_month: int, exp_year: int, financial_account: str?, id: str, last4: str, latest_fraud_warning: any?, lifecycle_controls: any?, livemode: bool, metadata: map, number: str, object: str, personalization_design: any?, replaced_by: any?, replacement_for: any?, replacement_reason: str?, second_line: str?, shipping: any?, spending_controls: map{allowed_categories: [str]?, allowed_merchant_countries: [str]?, blocked_categories: [str]?, blocked_merchant_countries: [str]?, spending_limits: [map]?, spending_limits_currency: str(currency)?}, status: str, type: str, wallets: any?}

@endpoint POST /v1/test_helpers/issuing/cards/{card}/shipping/fail
@required {card: str}
@returns(200) {brand: str, cancellation_reason: str?, cardholder: map{billing: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}, created: int(unix-time), currency: str(currency), cvc: str, exp_month: int, exp_year: int, financial_account: str?, id: str, last4: str, latest_fraud_warning: any?, lifecycle_controls: any?, livemode: bool, metadata: map, number: str, object: str, personalization_design: any?, replaced_by: any?, replacement_for: any?, replacement_reason: str?, second_line: str?, shipping: any?, spending_controls: map{allowed_categories: [str]?, allowed_merchant_countries: [str]?, blocked_categories: [str]?, blocked_merchant_countries: [str]?, spending_limits: [map]?, spending_limits_currency: str(currency)?}, status: str, type: str, wallets: any?}

@endpoint POST /v1/test_helpers/issuing/cards/{card}/shipping/return
@required {card: str}
@returns(200) {brand: str, cancellation_reason: str?, cardholder: map{billing: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}, created: int(unix-time), currency: str(currency), cvc: str, exp_month: int, exp_year: int, financial_account: str?, id: str, last4: str, latest_fraud_warning: any?, lifecycle_controls: any?, livemode: bool, metadata: map, number: str, object: str, personalization_design: any?, replaced_by: any?, replacement_for: any?, replacement_reason: str?, second_line: str?, shipping: any?, spending_controls: map{allowed_categories: [str]?, allowed_merchant_countries: [str]?, blocked_categories: [str]?, blocked_merchant_countries: [str]?, spending_limits: [map]?, spending_limits_currency: str(currency)?}, status: str, type: str, wallets: any?}

@endpoint POST /v1/test_helpers/issuing/cards/{card}/shipping/ship
@required {card: str}
@returns(200) {brand: str, cancellation_reason: str?, cardholder: map{billing: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}, created: int(unix-time), currency: str(currency), cvc: str, exp_month: int, exp_year: int, financial_account: str?, id: str, last4: str, latest_fraud_warning: any?, lifecycle_controls: any?, livemode: bool, metadata: map, number: str, object: str, personalization_design: any?, replaced_by: any?, replacement_for: any?, replacement_reason: str?, second_line: str?, shipping: any?, spending_controls: map{allowed_categories: [str]?, allowed_merchant_countries: [str]?, blocked_categories: [str]?, blocked_merchant_countries: [str]?, spending_limits: [map]?, spending_limits_currency: str(currency)?}, status: str, type: str, wallets: any?}

@endpoint POST /v1/test_helpers/issuing/cards/{card}/shipping/submit
@required {card: str}
@returns(200) {brand: str, cancellation_reason: str?, cardholder: map{billing: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}}, company: any?, created: int(unix-time), email: str?, id: str, individual: any?, livemode: bool, metadata: map, name: str, object: str, phone_number: str?, preferred_locales: [str]?, requirements: map{disabled_reason: str?, past_due: [str]?}, spending_controls: any?, status: str, type: str}, created: int(unix-time), currency: str(currency), cvc: str, exp_month: int, exp_year: int, financial_account: str?, id: str, last4: str, latest_fraud_warning: any?, lifecycle_controls: any?, livemode: bool, metadata: map, number: str, object: str, personalization_design: any?, replaced_by: any?, replacement_for: any?, replacement_reason: str?, second_line: str?, shipping: any?, spending_controls: map{allowed_categories: [str]?, allowed_merchant_countries: [str]?, blocked_categories: [str]?, blocked_merchant_countries: [str]?, spending_limits: [map]?, spending_limits_currency: str(currency)?}, status: str, type: str, wallets: any?}

@endpoint POST /v1/test_helpers/issuing/personalization_designs/{personalization_design}/activate
@required {personalization_design: str}
@returns(200) {card_logo: any?, carrier_text: any?, created: int(unix-time), id: str, livemode: bool, lookup_key: str?, metadata: map, name: str?, object: str, physical_bundle: any, preferences: map{is_default: bool, is_platform_default: bool?}, rejection_reasons: map{card_logo: [str]?, carrier_text: [str]?}, status: str}

@endpoint POST /v1/test_helpers/issuing/personalization_designs/{personalization_design}/deactivate
@required {personalization_design: str}
@returns(200) {card_logo: any?, carrier_text: any?, created: int(unix-time), id: str, livemode: bool, lookup_key: str?, metadata: map, name: str?, object: str, physical_bundle: any, preferences: map{is_default: bool, is_platform_default: bool?}, rejection_reasons: map{card_logo: [str]?, carrier_text: [str]?}, status: str}

@endpoint POST /v1/test_helpers/issuing/personalization_designs/{personalization_design}/reject
@required {personalization_design: str}
@returns(200) {card_logo: any?, carrier_text: any?, created: int(unix-time), id: str, livemode: bool, lookup_key: str?, metadata: map, name: str?, object: str, physical_bundle: any, preferences: map{is_default: bool, is_platform_default: bool?}, rejection_reasons: map{card_logo: [str]?, carrier_text: [str]?}, status: str}

@endpoint POST /v1/test_helpers/issuing/settlements
@returns(200) {bin: str, clearing_date: int(unix-time), created: int(unix-time), currency: str(currency), id: str, interchange_fees_amount: int, livemode: bool, metadata: map, net_total_amount: int, network: str, network_fees_amount: int, network_settlement_identifier: str, object: str, settlement_service: str, status: str, transaction_amount: int, transaction_count: int}

@endpoint POST /v1/test_helpers/issuing/settlements/{settlement}/complete
@required {settlement: str}
@returns(200) {bin: str, clearing_date: int(unix-time), created: int(unix-time), currency: str(currency), id: str, interchange_fees_amount: int, livemode: bool, metadata: map, net_total_amount: int, network: str, network_fees_amount: int, network_settlement_identifier: str, object: str, settlement_service: str, status: str, transaction_amount: int, transaction_count: int}

@endpoint POST /v1/test_helpers/issuing/transactions/create_force_capture
@returns(200) {amount: int, amount_details: any?, authorization: any?, balance_transaction: any?, card: any, cardholder: any?, created: int(unix-time), currency: str(currency), dispute: any?, id: str, livemode: bool, merchant_amount: int, merchant_currency: str(currency), merchant_data: map{category: str, category_code: str, city: str?, country: str?, name: str?, network_id: str, postal_code: str?, state: str?, tax_id: str?, terminal_id: str?, url: str?}, metadata: map, network_data: any?, object: str, purchase_details: any?, token: any?, treasury: any?, type: str, wallet: str?}

@endpoint POST /v1/test_helpers/issuing/transactions/create_unlinked_refund
@returns(200) {amount: int, amount_details: any?, authorization: any?, balance_transaction: any?, card: any, cardholder: any?, created: int(unix-time), currency: str(currency), dispute: any?, id: str, livemode: bool, merchant_amount: int, merchant_currency: str(currency), merchant_data: map{category: str, category_code: str, city: str?, country: str?, name: str?, network_id: str, postal_code: str?, state: str?, tax_id: str?, terminal_id: str?, url: str?}, metadata: map, network_data: any?, object: str, purchase_details: any?, token: any?, treasury: any?, type: str, wallet: str?}

@endpoint POST /v1/test_helpers/issuing/transactions/{transaction}/refund
@required {transaction: str}
@returns(200) {amount: int, amount_details: any?, authorization: any?, balance_transaction: any?, card: any, cardholder: any?, created: int(unix-time), currency: str(currency), dispute: any?, id: str, livemode: bool, merchant_amount: int, merchant_currency: str(currency), merchant_data: map{category: str, category_code: str, city: str?, country: str?, name: str?, network_id: str, postal_code: str?, state: str?, tax_id: str?, terminal_id: str?, url: str?}, metadata: map, network_data: any?, object: str, purchase_details: any?, token: any?, treasury: any?, type: str, wallet: str?}

@endpoint POST /v1/test_helpers/refunds/{refund}/expire
@required {refund: str}
@returns(200) {amount: int, balance_transaction: any?, charge: any?, created: int(unix-time), currency: str(currency), description: str, destination_details: map{affirm: map, afterpay_clearpay: map, alipay: map, alma: map, amazon_pay: map, au_bank_transfer: map, blik: map{network_decline_code: str?, reference: str?, reference_status: str?}, br_bank_transfer: map{reference: str?, reference_status: str?}, card: map{reference: str, reference_status: str, reference_type: str, type: str}, cashapp: map, crypto: map{reference: str?}, customer_cash_balance: map, eps: map, eu_bank_transfer: map{reference: str?, reference_status: str?}, gb_bank_transfer: map{reference: str?, reference_status: str?}, giropay: map, grabpay: map, jp_bank_transfer: map{reference: str?, reference_status: str?}, klarna: map, mb_way: map{reference: str?, reference_status: str?}, multibanco: map{reference: str?, reference_status: str?}, mx_bank_transfer: map{reference: str?, reference_status: str?}, nz_bank_transfer: map, p24: map{reference: str?, reference_status: str?}, paynow: map, paypal: map{network_decline_code: str?}, pix: map, revolut: map, sofort: map, swish: map{network_decline_code: str?, reference: str?, reference_status: str?}, th_bank_transfer: map{reference: str?, reference_status: str?}, twint: map, type: str, us_bank_transfer: map{reference: str?, reference_status: str?}, wechat_pay: map, zip: map}, failure_balance_transaction: any, failure_reason: str, id: str, instructions_email: str, metadata: map?, next_action: map{display_details: map{email_sent: map{email_sent_at: int(unix-time), email_sent_to: str}, expires_at: int(unix-time)}, type: str}, object: str, payment_intent: any?, pending_reason: str, presentment_details: map{presentment_amount: int, presentment_currency: str}, reason: str?, receipt_number: str?, source_transfer_reversal: any?, status: str?, transfer_reversal: any?}

@endpoint POST /v1/test_helpers/terminal/readers/{reader}/present_payment_method
@required {reader: str}
@returns(200) {action: any?, device_sw_version: str?, device_type: str, id: str, ip_address: str?, label: str, last_seen_at: int(unix-time)?, livemode: bool, location: any?, metadata: map, object: str, serial_number: str, status: str?}

@endpoint POST /v1/test_helpers/terminal/readers/{reader}/succeed_input_collection
@required {reader: str}
@returns(200) {action: any?, device_sw_version: str?, device_type: str, id: str, ip_address: str?, label: str, last_seen_at: int(unix-time)?, livemode: bool, location: any?, metadata: map, object: str, serial_number: str, status: str?}

@endpoint POST /v1/test_helpers/terminal/readers/{reader}/timeout_input_collection
@required {reader: str}
@returns(200) {action: any?, device_sw_version: str?, device_type: str, id: str, ip_address: str?, label: str, last_seen_at: int(unix-time)?, livemode: bool, location: any?, metadata: map, object: str, serial_number: str, status: str?}

@endpoint GET /v1/test_helpers/test_clocks
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/test_helpers/test_clocks
@returns(200) {created: int(unix-time), deletes_after: int(unix-time), frozen_time: int(unix-time), id: str, livemode: bool, name: str?, object: str, status: str, status_details: map{advancing: map{target_frozen_time: int(unix-time)}}}

@endpoint DELETE /v1/test_helpers/test_clocks/{test_clock}
@required {test_clock: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/test_helpers/test_clocks/{test_clock}
@required {test_clock: str}
@optional {expand: [str]}
@returns(200) {created: int(unix-time), deletes_after: int(unix-time), frozen_time: int(unix-time), id: str, livemode: bool, name: str?, object: str, status: str, status_details: map{advancing: map{target_frozen_time: int(unix-time)}}}

@endpoint POST /v1/test_helpers/test_clocks/{test_clock}/advance
@required {test_clock: str}
@returns(200) {created: int(unix-time), deletes_after: int(unix-time), frozen_time: int(unix-time), id: str, livemode: bool, name: str?, object: str, status: str, status_details: map{advancing: map{target_frozen_time: int(unix-time)}}}

@endpoint POST /v1/test_helpers/treasury/inbound_transfers/{id}/fail
@required {id: str}
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), description: str?, failure_details: any?, financial_account: str, hosted_regulatory_receipt_url: str?, id: str, linked_flows: map{received_debit: str?}, livemode: bool, metadata: map, object: str, origin_payment_method: str?, origin_payment_method_details: any?, returned: bool?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, succeeded_at: int(unix-time)?}, transaction: any?}

@endpoint POST /v1/test_helpers/treasury/inbound_transfers/{id}/return
@required {id: str}
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), description: str?, failure_details: any?, financial_account: str, hosted_regulatory_receipt_url: str?, id: str, linked_flows: map{received_debit: str?}, livemode: bool, metadata: map, object: str, origin_payment_method: str?, origin_payment_method_details: any?, returned: bool?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, succeeded_at: int(unix-time)?}, transaction: any?}

@endpoint POST /v1/test_helpers/treasury/inbound_transfers/{id}/succeed
@required {id: str}
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), description: str?, failure_details: any?, financial_account: str, hosted_regulatory_receipt_url: str?, id: str, linked_flows: map{received_debit: str?}, livemode: bool, metadata: map, object: str, origin_payment_method: str?, origin_payment_method_details: any?, returned: bool?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, succeeded_at: int(unix-time)?}, transaction: any?}

@endpoint POST /v1/test_helpers/treasury/outbound_payments/{id}
@required {id: str}
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), customer: str?, description: str?, destination_payment_method: str?, destination_payment_method_details: any?, end_user_details: any?, expected_arrival_date: int(unix-time), financial_account: str, hosted_regulatory_receipt_url: str?, id: str, livemode: bool, metadata: map, object: str, returned_details: any?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, posted_at: int(unix-time)?, returned_at: int(unix-time)?}, tracking_details: any?, transaction: any}

@endpoint POST /v1/test_helpers/treasury/outbound_payments/{id}/fail
@required {id: str}
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), customer: str?, description: str?, destination_payment_method: str?, destination_payment_method_details: any?, end_user_details: any?, expected_arrival_date: int(unix-time), financial_account: str, hosted_regulatory_receipt_url: str?, id: str, livemode: bool, metadata: map, object: str, returned_details: any?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, posted_at: int(unix-time)?, returned_at: int(unix-time)?}, tracking_details: any?, transaction: any}

@endpoint POST /v1/test_helpers/treasury/outbound_payments/{id}/post
@required {id: str}
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), customer: str?, description: str?, destination_payment_method: str?, destination_payment_method_details: any?, end_user_details: any?, expected_arrival_date: int(unix-time), financial_account: str, hosted_regulatory_receipt_url: str?, id: str, livemode: bool, metadata: map, object: str, returned_details: any?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, posted_at: int(unix-time)?, returned_at: int(unix-time)?}, tracking_details: any?, transaction: any}

@endpoint POST /v1/test_helpers/treasury/outbound_payments/{id}/return
@required {id: str}
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), customer: str?, description: str?, destination_payment_method: str?, destination_payment_method_details: any?, end_user_details: any?, expected_arrival_date: int(unix-time), financial_account: str, hosted_regulatory_receipt_url: str?, id: str, livemode: bool, metadata: map, object: str, returned_details: any?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, posted_at: int(unix-time)?, returned_at: int(unix-time)?}, tracking_details: any?, transaction: any}

@endpoint POST /v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}
@required {outbound_transfer: str}
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), description: str?, destination_payment_method: str?, destination_payment_method_details: map{billing_details: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, email: str?, name: str?}, financial_account: map{id: str, network: str}, type: str, us_bank_account: map{account_holder_type: str?, account_type: str?, bank_name: str?, fingerprint: str?, last4: str?, mandate: any, network: str, routing_number: str?}}, expected_arrival_date: int(unix-time), financial_account: str, hosted_regulatory_receipt_url: str?, id: str, livemode: bool, metadata: map, object: str, returned_details: any?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, posted_at: int(unix-time)?, returned_at: int(unix-time)?}, tracking_details: any?, transaction: any}

@endpoint POST /v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/fail
@required {outbound_transfer: str}
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), description: str?, destination_payment_method: str?, destination_payment_method_details: map{billing_details: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, email: str?, name: str?}, financial_account: map{id: str, network: str}, type: str, us_bank_account: map{account_holder_type: str?, account_type: str?, bank_name: str?, fingerprint: str?, last4: str?, mandate: any, network: str, routing_number: str?}}, expected_arrival_date: int(unix-time), financial_account: str, hosted_regulatory_receipt_url: str?, id: str, livemode: bool, metadata: map, object: str, returned_details: any?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, posted_at: int(unix-time)?, returned_at: int(unix-time)?}, tracking_details: any?, transaction: any}

@endpoint POST /v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/post
@required {outbound_transfer: str}
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), description: str?, destination_payment_method: str?, destination_payment_method_details: map{billing_details: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, email: str?, name: str?}, financial_account: map{id: str, network: str}, type: str, us_bank_account: map{account_holder_type: str?, account_type: str?, bank_name: str?, fingerprint: str?, last4: str?, mandate: any, network: str, routing_number: str?}}, expected_arrival_date: int(unix-time), financial_account: str, hosted_regulatory_receipt_url: str?, id: str, livemode: bool, metadata: map, object: str, returned_details: any?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, posted_at: int(unix-time)?, returned_at: int(unix-time)?}, tracking_details: any?, transaction: any}

@endpoint POST /v1/test_helpers/treasury/outbound_transfers/{outbound_transfer}/return
@required {outbound_transfer: str}
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), description: str?, destination_payment_method: str?, destination_payment_method_details: map{billing_details: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, email: str?, name: str?}, financial_account: map{id: str, network: str}, type: str, us_bank_account: map{account_holder_type: str?, account_type: str?, bank_name: str?, fingerprint: str?, last4: str?, mandate: any, network: str, routing_number: str?}}, expected_arrival_date: int(unix-time), financial_account: str, hosted_regulatory_receipt_url: str?, id: str, livemode: bool, metadata: map, object: str, returned_details: any?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, posted_at: int(unix-time)?, returned_at: int(unix-time)?}, tracking_details: any?, transaction: any}

@endpoint POST /v1/test_helpers/treasury/received_credits
@returns(200) {amount: int, created: int(unix-time), currency: str(currency), description: str, failure_code: str?, financial_account: str?, hosted_regulatory_receipt_url: str?, id: str, initiating_payment_method_details: map{balance: str, billing_details: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, email: str?, name: str?}, financial_account: map{id: str, network: str}, issuing_card: str, type: str, us_bank_account: map{bank_name: str?, last4: str?, routing_number: str?}}, linked_flows: map{credit_reversal: str?, issuing_authorization: str?, issuing_transaction: str?, source_flow: str?, source_flow_details: any?, source_flow_type: str?}, livemode: bool, network: str, object: str, reversal_details: any?, status: str, transaction: any?}

@endpoint POST /v1/test_helpers/treasury/received_debits
@returns(200) {amount: int, created: int(unix-time), currency: str(currency), description: str, failure_code: str?, financial_account: str?, hosted_regulatory_receipt_url: str?, id: str, initiating_payment_method_details: map{balance: str, billing_details: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, email: str?, name: str?}, financial_account: map{id: str, network: str}, issuing_card: str, type: str, us_bank_account: map{bank_name: str?, last4: str?, routing_number: str?}}, linked_flows: map{debit_reversal: str?, inbound_transfer: str?, issuing_authorization: str?, issuing_transaction: str?, payout: str?, topup: str?}, livemode: bool, network: str, object: str, reversal_details: any?, status: str, transaction: any?}

@endgroup

@group tokens
@endpoint POST /v1/tokens
@returns(200) {bank_account: map{account: any?, account_holder_name: str?, account_holder_type: str?, account_type: str?, available_payout_methods: [str]?, bank_name: str?, country: str, currency: str(currency), customer: any?, default_for_currency: bool?, fingerprint: str?, future_requirements: any?, id: str, last4: str, metadata: map?, object: str, requirements: any?, routing_number: str?, status: str}, card: map{account: any?, address_city: str?, address_country: str?, address_line1: str?, address_line1_check: str?, address_line2: str?, address_state: str?, address_zip: str?, address_zip_check: str?, allow_redisplay: str?, available_payout_methods: [str]?, brand: str, country: str?, currency: str(currency)?, customer: any?, cvc_check: str?, default_for_currency: bool?, dynamic_last4: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str, id: str, iin: str, last4: str, metadata: map?, name: str?, networks: map{preferred: str?}, object: str, regulated_status: str?, status: str?, tokenization_method: str?}, client_ip: str?, created: int(unix-time), id: str, livemode: bool, object: str, type: str, used: bool}

@endpoint GET /v1/tokens/{token}
@required {token: str}
@optional {expand: [str]}
@returns(200) {bank_account: map{account: any?, account_holder_name: str?, account_holder_type: str?, account_type: str?, available_payout_methods: [str]?, bank_name: str?, country: str, currency: str(currency), customer: any?, default_for_currency: bool?, fingerprint: str?, future_requirements: any?, id: str, last4: str, metadata: map?, object: str, requirements: any?, routing_number: str?, status: str}, card: map{account: any?, address_city: str?, address_country: str?, address_line1: str?, address_line1_check: str?, address_line2: str?, address_state: str?, address_zip: str?, address_zip_check: str?, allow_redisplay: str?, available_payout_methods: [str]?, brand: str, country: str?, currency: str(currency)?, customer: any?, cvc_check: str?, default_for_currency: bool?, dynamic_last4: str?, exp_month: int, exp_year: int, fingerprint: str?, funding: str, id: str, iin: str, last4: str, metadata: map?, name: str?, networks: map{preferred: str?}, object: str, regulated_status: str?, status: str?, tokenization_method: str?}, client_ip: str?, created: int(unix-time), id: str, livemode: bool, object: str, type: str, used: bool}

@endgroup

@group topups
@endpoint GET /v1/topups
@optional {amount: any, created: any, ending_before: str, expand: [str], limit: int, starting_after: str, status: str(canceled/failed/pending/succeeded)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/topups
@returns(200) {amount: int, balance_transaction: any?, created: int(unix-time), currency: str, description: str?, expected_availability_date: int?, failure_code: str?, failure_message: str?, id: str, livemode: bool, metadata: map, object: str, source: any?, statement_descriptor: str?, status: str, transfer_group: str?}

@endpoint GET /v1/topups/{topup}
@required {topup: str}
@optional {expand: [str]}
@returns(200) {amount: int, balance_transaction: any?, created: int(unix-time), currency: str, description: str?, expected_availability_date: int?, failure_code: str?, failure_message: str?, id: str, livemode: bool, metadata: map, object: str, source: any?, statement_descriptor: str?, status: str, transfer_group: str?}

@endpoint POST /v1/topups/{topup}
@required {topup: str}
@returns(200) {amount: int, balance_transaction: any?, created: int(unix-time), currency: str, description: str?, expected_availability_date: int?, failure_code: str?, failure_message: str?, id: str, livemode: bool, metadata: map, object: str, source: any?, statement_descriptor: str?, status: str, transfer_group: str?}

@endpoint POST /v1/topups/{topup}/cancel
@required {topup: str}
@returns(200) {amount: int, balance_transaction: any?, created: int(unix-time), currency: str, description: str?, expected_availability_date: int?, failure_code: str?, failure_message: str?, id: str, livemode: bool, metadata: map, object: str, source: any?, statement_descriptor: str?, status: str, transfer_group: str?}

@endgroup

@group transfers
@endpoint GET /v1/transfers
@optional {created: any, destination: str, ending_before: str, expand: [str], limit: int, starting_after: str, transfer_group: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/transfers
@returns(200) {amount: int, amount_reversed: int, balance_transaction: any?, created: int(unix-time), currency: str(currency), description: str?, destination: any?, destination_payment: any, id: str, livemode: bool, metadata: map, object: str, reversals: map{data: [map], has_more: bool, object: str, url: str}, reversed: bool, source_transaction: any?, source_type: str, transfer_group: str?}

@endpoint GET /v1/transfers/{id}/reversals
@required {id: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/transfers/{id}/reversals
@required {id: str}
@returns(200) {amount: int, balance_transaction: any?, created: int(unix-time), currency: str(currency), destination_payment_refund: any?, id: str, metadata: map?, object: str, source_refund: any?, transfer: any}

@endpoint GET /v1/transfers/{transfer}
@required {transfer: str}
@optional {expand: [str]}
@returns(200) {amount: int, amount_reversed: int, balance_transaction: any?, created: int(unix-time), currency: str(currency), description: str?, destination: any?, destination_payment: any, id: str, livemode: bool, metadata: map, object: str, reversals: map{data: [map], has_more: bool, object: str, url: str}, reversed: bool, source_transaction: any?, source_type: str, transfer_group: str?}

@endpoint POST /v1/transfers/{transfer}
@required {transfer: str}
@returns(200) {amount: int, amount_reversed: int, balance_transaction: any?, created: int(unix-time), currency: str(currency), description: str?, destination: any?, destination_payment: any, id: str, livemode: bool, metadata: map, object: str, reversals: map{data: [map], has_more: bool, object: str, url: str}, reversed: bool, source_transaction: any?, source_type: str, transfer_group: str?}

@endpoint GET /v1/transfers/{transfer}/reversals/{id}
@required {id: str, transfer: str}
@optional {expand: [str]}
@returns(200) {amount: int, balance_transaction: any?, created: int(unix-time), currency: str(currency), destination_payment_refund: any?, id: str, metadata: map?, object: str, source_refund: any?, transfer: any}

@endpoint POST /v1/transfers/{transfer}/reversals/{id}
@required {id: str, transfer: str}
@returns(200) {amount: int, balance_transaction: any?, created: int(unix-time), currency: str(currency), destination_payment_refund: any?, id: str, metadata: map?, object: str, source_refund: any?, transfer: any}

@endgroup

@group treasury
@endpoint GET /v1/treasury/credit_reversals
@required {financial_account: str}
@optional {ending_before: str, expand: [str], limit: int, received_credit: str, starting_after: str, status: str(canceled/posted/processing)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/treasury/credit_reversals
@returns(200) {amount: int, created: int(unix-time), currency: str(currency), financial_account: str, hosted_regulatory_receipt_url: str?, id: str, livemode: bool, metadata: map, network: str, object: str, received_credit: str, status: str, status_transitions: map{posted_at: int(unix-time)?}, transaction: any?}

@endpoint GET /v1/treasury/credit_reversals/{credit_reversal}
@required {credit_reversal: str}
@optional {expand: [str]}
@returns(200) {amount: int, created: int(unix-time), currency: str(currency), financial_account: str, hosted_regulatory_receipt_url: str?, id: str, livemode: bool, metadata: map, network: str, object: str, received_credit: str, status: str, status_transitions: map{posted_at: int(unix-time)?}, transaction: any?}

@endpoint GET /v1/treasury/debit_reversals
@required {financial_account: str}
@optional {ending_before: str, expand: [str], limit: int, received_debit: str, resolution: str(lost/won), starting_after: str, status: str(canceled/completed/processing)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/treasury/debit_reversals
@returns(200) {amount: int, created: int(unix-time), currency: str(currency), financial_account: str?, hosted_regulatory_receipt_url: str?, id: str, linked_flows: any?, livemode: bool, metadata: map, network: str, object: str, received_debit: str, status: str, status_transitions: map{completed_at: int(unix-time)?}, transaction: any?}

@endpoint GET /v1/treasury/debit_reversals/{debit_reversal}
@required {debit_reversal: str}
@optional {expand: [str]}
@returns(200) {amount: int, created: int(unix-time), currency: str(currency), financial_account: str?, hosted_regulatory_receipt_url: str?, id: str, linked_flows: any?, livemode: bool, metadata: map, network: str, object: str, received_debit: str, status: str, status_transitions: map{completed_at: int(unix-time)?}, transaction: any?}

@endpoint GET /v1/treasury/financial_accounts
@optional {created: any, ending_before: str, expand: [str], limit: int, starting_after: str, status: str(closed/open)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/treasury/financial_accounts
@returns(200) {active_features: [str], balance: map{cash: map, inbound_pending: map, outbound_pending: map}, country: str, created: int(unix-time), features: map{card_issuing: map{requested: bool, status: str, status_details: [map]}, deposit_insurance: map{requested: bool, status: str, status_details: [map]}, financial_addresses: map{aba: map{requested: bool, status: str, status_details: [map]}}, inbound_transfers: map{ach: map{requested: bool, status: str, status_details: [map]}}, intra_stripe_flows: map{requested: bool, status: str, status_details: [map]}, object: str, outbound_payments: map{ach: map{requested: bool, status: str, status_details: [map]}, us_domestic_wire: map{requested: bool, status: str, status_details: [map]}}, outbound_transfers: map{ach: map{requested: bool, status: str, status_details: [map]}, us_domestic_wire: map{requested: bool, status: str, status_details: [map]}}}, financial_addresses: [map], id: str, is_default: bool, livemode: bool, metadata: map?, nickname: str?, object: str, pending_features: [str], platform_restrictions: any?, restricted_features: [str], status: str, status_details: map{closed: any?}, supported_currencies: [str]}

@endpoint GET /v1/treasury/financial_accounts/{financial_account}
@required {financial_account: str}
@optional {expand: [str]}
@returns(200) {active_features: [str], balance: map{cash: map, inbound_pending: map, outbound_pending: map}, country: str, created: int(unix-time), features: map{card_issuing: map{requested: bool, status: str, status_details: [map]}, deposit_insurance: map{requested: bool, status: str, status_details: [map]}, financial_addresses: map{aba: map{requested: bool, status: str, status_details: [map]}}, inbound_transfers: map{ach: map{requested: bool, status: str, status_details: [map]}}, intra_stripe_flows: map{requested: bool, status: str, status_details: [map]}, object: str, outbound_payments: map{ach: map{requested: bool, status: str, status_details: [map]}, us_domestic_wire: map{requested: bool, status: str, status_details: [map]}}, outbound_transfers: map{ach: map{requested: bool, status: str, status_details: [map]}, us_domestic_wire: map{requested: bool, status: str, status_details: [map]}}}, financial_addresses: [map], id: str, is_default: bool, livemode: bool, metadata: map?, nickname: str?, object: str, pending_features: [str], platform_restrictions: any?, restricted_features: [str], status: str, status_details: map{closed: any?}, supported_currencies: [str]}

@endpoint POST /v1/treasury/financial_accounts/{financial_account}
@required {financial_account: str}
@returns(200) {active_features: [str], balance: map{cash: map, inbound_pending: map, outbound_pending: map}, country: str, created: int(unix-time), features: map{card_issuing: map{requested: bool, status: str, status_details: [map]}, deposit_insurance: map{requested: bool, status: str, status_details: [map]}, financial_addresses: map{aba: map{requested: bool, status: str, status_details: [map]}}, inbound_transfers: map{ach: map{requested: bool, status: str, status_details: [map]}}, intra_stripe_flows: map{requested: bool, status: str, status_details: [map]}, object: str, outbound_payments: map{ach: map{requested: bool, status: str, status_details: [map]}, us_domestic_wire: map{requested: bool, status: str, status_details: [map]}}, outbound_transfers: map{ach: map{requested: bool, status: str, status_details: [map]}, us_domestic_wire: map{requested: bool, status: str, status_details: [map]}}}, financial_addresses: [map], id: str, is_default: bool, livemode: bool, metadata: map?, nickname: str?, object: str, pending_features: [str], platform_restrictions: any?, restricted_features: [str], status: str, status_details: map{closed: any?}, supported_currencies: [str]}

@endpoint POST /v1/treasury/financial_accounts/{financial_account}/close
@required {financial_account: str}
@returns(200) {active_features: [str], balance: map{cash: map, inbound_pending: map, outbound_pending: map}, country: str, created: int(unix-time), features: map{card_issuing: map{requested: bool, status: str, status_details: [map]}, deposit_insurance: map{requested: bool, status: str, status_details: [map]}, financial_addresses: map{aba: map{requested: bool, status: str, status_details: [map]}}, inbound_transfers: map{ach: map{requested: bool, status: str, status_details: [map]}}, intra_stripe_flows: map{requested: bool, status: str, status_details: [map]}, object: str, outbound_payments: map{ach: map{requested: bool, status: str, status_details: [map]}, us_domestic_wire: map{requested: bool, status: str, status_details: [map]}}, outbound_transfers: map{ach: map{requested: bool, status: str, status_details: [map]}, us_domestic_wire: map{requested: bool, status: str, status_details: [map]}}}, financial_addresses: [map], id: str, is_default: bool, livemode: bool, metadata: map?, nickname: str?, object: str, pending_features: [str], platform_restrictions: any?, restricted_features: [str], status: str, status_details: map{closed: any?}, supported_currencies: [str]}

@endpoint GET /v1/treasury/financial_accounts/{financial_account}/features
@required {financial_account: str}
@optional {expand: [str]}
@returns(200) {card_issuing: map{requested: bool, status: str, status_details: [map]}, deposit_insurance: map{requested: bool, status: str, status_details: [map]}, financial_addresses: map{aba: map{requested: bool, status: str, status_details: [map]}}, inbound_transfers: map{ach: map{requested: bool, status: str, status_details: [map]}}, intra_stripe_flows: map{requested: bool, status: str, status_details: [map]}, object: str, outbound_payments: map{ach: map{requested: bool, status: str, status_details: [map]}, us_domestic_wire: map{requested: bool, status: str, status_details: [map]}}, outbound_transfers: map{ach: map{requested: bool, status: str, status_details: [map]}, us_domestic_wire: map{requested: bool, status: str, status_details: [map]}}}

@endpoint POST /v1/treasury/financial_accounts/{financial_account}/features
@required {financial_account: str}
@returns(200) {card_issuing: map{requested: bool, status: str, status_details: [map]}, deposit_insurance: map{requested: bool, status: str, status_details: [map]}, financial_addresses: map{aba: map{requested: bool, status: str, status_details: [map]}}, inbound_transfers: map{ach: map{requested: bool, status: str, status_details: [map]}}, intra_stripe_flows: map{requested: bool, status: str, status_details: [map]}, object: str, outbound_payments: map{ach: map{requested: bool, status: str, status_details: [map]}, us_domestic_wire: map{requested: bool, status: str, status_details: [map]}}, outbound_transfers: map{ach: map{requested: bool, status: str, status_details: [map]}, us_domestic_wire: map{requested: bool, status: str, status_details: [map]}}}

@endpoint GET /v1/treasury/inbound_transfers
@required {financial_account: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str, status: str(canceled/failed/processing/succeeded)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/treasury/inbound_transfers
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), description: str?, failure_details: any?, financial_account: str, hosted_regulatory_receipt_url: str?, id: str, linked_flows: map{received_debit: str?}, livemode: bool, metadata: map, object: str, origin_payment_method: str?, origin_payment_method_details: any?, returned: bool?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, succeeded_at: int(unix-time)?}, transaction: any?}

@endpoint GET /v1/treasury/inbound_transfers/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), description: str?, failure_details: any?, financial_account: str, hosted_regulatory_receipt_url: str?, id: str, linked_flows: map{received_debit: str?}, livemode: bool, metadata: map, object: str, origin_payment_method: str?, origin_payment_method_details: any?, returned: bool?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, succeeded_at: int(unix-time)?}, transaction: any?}

@endpoint POST /v1/treasury/inbound_transfers/{inbound_transfer}/cancel
@required {inbound_transfer: str}
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), description: str?, failure_details: any?, financial_account: str, hosted_regulatory_receipt_url: str?, id: str, linked_flows: map{received_debit: str?}, livemode: bool, metadata: map, object: str, origin_payment_method: str?, origin_payment_method_details: any?, returned: bool?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, succeeded_at: int(unix-time)?}, transaction: any?}

@endpoint GET /v1/treasury/outbound_payments
@required {financial_account: str}
@optional {created: any, customer: str, ending_before: str, expand: [str], limit: int, starting_after: str, status: str(canceled/failed/posted/processing/returned)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/treasury/outbound_payments
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), customer: str?, description: str?, destination_payment_method: str?, destination_payment_method_details: any?, end_user_details: any?, expected_arrival_date: int(unix-time), financial_account: str, hosted_regulatory_receipt_url: str?, id: str, livemode: bool, metadata: map, object: str, returned_details: any?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, posted_at: int(unix-time)?, returned_at: int(unix-time)?}, tracking_details: any?, transaction: any}

@endpoint GET /v1/treasury/outbound_payments/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), customer: str?, description: str?, destination_payment_method: str?, destination_payment_method_details: any?, end_user_details: any?, expected_arrival_date: int(unix-time), financial_account: str, hosted_regulatory_receipt_url: str?, id: str, livemode: bool, metadata: map, object: str, returned_details: any?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, posted_at: int(unix-time)?, returned_at: int(unix-time)?}, tracking_details: any?, transaction: any}

@endpoint POST /v1/treasury/outbound_payments/{id}/cancel
@required {id: str}
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), customer: str?, description: str?, destination_payment_method: str?, destination_payment_method_details: any?, end_user_details: any?, expected_arrival_date: int(unix-time), financial_account: str, hosted_regulatory_receipt_url: str?, id: str, livemode: bool, metadata: map, object: str, returned_details: any?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, posted_at: int(unix-time)?, returned_at: int(unix-time)?}, tracking_details: any?, transaction: any}

@endpoint GET /v1/treasury/outbound_transfers
@required {financial_account: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str, status: str(canceled/failed/posted/processing/returned)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/treasury/outbound_transfers
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), description: str?, destination_payment_method: str?, destination_payment_method_details: map{billing_details: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, email: str?, name: str?}, financial_account: map{id: str, network: str}, type: str, us_bank_account: map{account_holder_type: str?, account_type: str?, bank_name: str?, fingerprint: str?, last4: str?, mandate: any, network: str, routing_number: str?}}, expected_arrival_date: int(unix-time), financial_account: str, hosted_regulatory_receipt_url: str?, id: str, livemode: bool, metadata: map, object: str, returned_details: any?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, posted_at: int(unix-time)?, returned_at: int(unix-time)?}, tracking_details: any?, transaction: any}

@endpoint GET /v1/treasury/outbound_transfers/{outbound_transfer}
@required {outbound_transfer: str}
@optional {expand: [str]}
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), description: str?, destination_payment_method: str?, destination_payment_method_details: map{billing_details: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, email: str?, name: str?}, financial_account: map{id: str, network: str}, type: str, us_bank_account: map{account_holder_type: str?, account_type: str?, bank_name: str?, fingerprint: str?, last4: str?, mandate: any, network: str, routing_number: str?}}, expected_arrival_date: int(unix-time), financial_account: str, hosted_regulatory_receipt_url: str?, id: str, livemode: bool, metadata: map, object: str, returned_details: any?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, posted_at: int(unix-time)?, returned_at: int(unix-time)?}, tracking_details: any?, transaction: any}

@endpoint POST /v1/treasury/outbound_transfers/{outbound_transfer}/cancel
@required {outbound_transfer: str}
@returns(200) {amount: int, cancelable: bool, created: int(unix-time), currency: str(currency), description: str?, destination_payment_method: str?, destination_payment_method_details: map{billing_details: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, email: str?, name: str?}, financial_account: map{id: str, network: str}, type: str, us_bank_account: map{account_holder_type: str?, account_type: str?, bank_name: str?, fingerprint: str?, last4: str?, mandate: any, network: str, routing_number: str?}}, expected_arrival_date: int(unix-time), financial_account: str, hosted_regulatory_receipt_url: str?, id: str, livemode: bool, metadata: map, object: str, returned_details: any?, statement_descriptor: str, status: str, status_transitions: map{canceled_at: int(unix-time)?, failed_at: int(unix-time)?, posted_at: int(unix-time)?, returned_at: int(unix-time)?}, tracking_details: any?, transaction: any}

@endpoint GET /v1/treasury/received_credits
@required {financial_account: str}
@optional {ending_before: str, expand: [str], limit: int, linked_flows: map, starting_after: str, status: str(failed/succeeded)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/treasury/received_credits/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {amount: int, created: int(unix-time), currency: str(currency), description: str, failure_code: str?, financial_account: str?, hosted_regulatory_receipt_url: str?, id: str, initiating_payment_method_details: map{balance: str, billing_details: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, email: str?, name: str?}, financial_account: map{id: str, network: str}, issuing_card: str, type: str, us_bank_account: map{bank_name: str?, last4: str?, routing_number: str?}}, linked_flows: map{credit_reversal: str?, issuing_authorization: str?, issuing_transaction: str?, source_flow: str?, source_flow_details: any?, source_flow_type: str?}, livemode: bool, network: str, object: str, reversal_details: any?, status: str, transaction: any?}

@endpoint GET /v1/treasury/received_debits
@required {financial_account: str}
@optional {ending_before: str, expand: [str], limit: int, starting_after: str, status: str(failed/succeeded)}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/treasury/received_debits/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {amount: int, created: int(unix-time), currency: str(currency), description: str, failure_code: str?, financial_account: str?, hosted_regulatory_receipt_url: str?, id: str, initiating_payment_method_details: map{balance: str, billing_details: map{address: map{city: str?, country: str?, line1: str?, line2: str?, postal_code: str?, state: str?}, email: str?, name: str?}, financial_account: map{id: str, network: str}, issuing_card: str, type: str, us_bank_account: map{bank_name: str?, last4: str?, routing_number: str?}}, linked_flows: map{debit_reversal: str?, inbound_transfer: str?, issuing_authorization: str?, issuing_transaction: str?, payout: str?, topup: str?}, livemode: bool, network: str, object: str, reversal_details: any?, status: str, transaction: any?}

@endpoint GET /v1/treasury/transaction_entries
@required {financial_account: str}
@optional {created: any, effective_at: any, ending_before: str, expand: [str], limit: int, order_by: str(created/effective_at), starting_after: str, transaction: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/treasury/transaction_entries/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {balance_impact: map{cash: int, inbound_pending: int, outbound_pending: int}, created: int(unix-time), currency: str(currency), effective_at: int(unix-time), financial_account: str, flow: str?, flow_details: any?, flow_type: str, id: str, livemode: bool, object: str, transaction: any, type: str}

@endpoint GET /v1/treasury/transactions
@required {financial_account: str}
@optional {created: any, ending_before: str, expand: [str], limit: int, order_by: str(created/posted_at), starting_after: str, status: str(open/posted/void), status_transitions: map}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint GET /v1/treasury/transactions/{id}
@required {id: str}
@optional {expand: [str]}
@returns(200) {amount: int, balance_impact: map{cash: int, inbound_pending: int, outbound_pending: int}, created: int(unix-time), currency: str(currency), description: str, entries: map?{data: [map], has_more: bool, object: str, url: str}, financial_account: str, flow: str?, flow_details: any?, flow_type: str, id: str, livemode: bool, object: str, status: str, status_transitions: map{posted_at: int(unix-time)?, void_at: int(unix-time)?}}

@endgroup

@group webhook_endpoints
@endpoint GET /v1/webhook_endpoints
@optional {ending_before: str, expand: [str], limit: int, starting_after: str}
@returns(200) {data: [map], has_more: bool, object: str, url: str}

@endpoint POST /v1/webhook_endpoints
@returns(200) {api_version: str?, application: str?, created: int(unix-time), description: str?, enabled_events: [str], id: str, livemode: bool, metadata: map, object: str, secret: str, status: str, url: str}

@endpoint DELETE /v1/webhook_endpoints/{webhook_endpoint}
@required {webhook_endpoint: str}
@returns(200) {deleted: bool, id: str, object: str}

@endpoint GET /v1/webhook_endpoints/{webhook_endpoint}
@required {webhook_endpoint: str}
@optional {expand: [str]}
@returns(200) {api_version: str?, application: str?, created: int(unix-time), description: str?, enabled_events: [str], id: str, livemode: bool, metadata: map, object: str, secret: str, status: str, url: str}

@endpoint POST /v1/webhook_endpoints/{webhook_endpoint}
@required {webhook_endpoint: str}
@returns(200) {api_version: str?, application: str?, created: int(unix-time), description: str?, enabled_events: [str], id: str, livemode: bool, metadata: map, object: str, secret: str, status: str, url: str}

@endgroup

@end
