Sync Inc

Sync Inc Stripe Schema

Your Sync Inc database will contain all your Stripe data. Each Stripe API endpoint will correspond to a table in your database with the specific values cast to corresponding Postgres data types.

Here you'll find a searchable guide for your Stripe Database Schema. To make this reference consistent and accurate, the data definitions are pulled directly from the Stripe docs.

Core Tables

As a payment processor first and foremost, these tables store the fundamental objects related to a `customer` being `charged` in order to purchase a `product`. Additionally, these tables contain the objects related to Stripe transferring money out to you.

Balance_transaction

Balance transactions represent funds moving through your Stripe account. They're created for every type of transaction that comes into or flows out of your Stripe account balance.

Related guide: Balance Transaction Types.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`Gross amount of the transaction, in %s.
available_on`TIMESTAMP`The date the transaction's net funds will become available in the Stripe balance.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users.
exchange_rate`NUMERIC`The exchange rate used, if applicable, for this transaction. Specifically, if money was converted from currency A to currency B, then the `amount` in currency A, times `exchange_rate`, would be the `amount` in currency B. For example, suppose you charged a customer 10.00 EUR. Then the PaymentIntent's `amount` would be `1000` and `currency` would be `eur`. Suppose this was converted into 12.34 USD in your Stripe account. Then the BalanceTransaction's `amount` would be `1234`, `currency` would be `usd`, and `exchange_rate` would be `1.234`.
fee`BIGINT`Fees (in %s) paid for this transaction.
net`BIGINT`Net amount of the transaction, in %s.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
reporting_category`TEXT`Learn more about how reporting categories can help you understand balance transactions from an accounting perspective.
status`TEXT`If the transaction's net funds are available in the Stripe balance yet. Either `available` or `pending`.
type`TEXT`Transaction type: `adjustment`, `advance`, `advance_funding`, `anticipation_repayment`, `application_fee`, `application_fee_refund`, `charge`, `connect_collection_transfer`, `contribution`, `issuing_authorization_hold`, `issuing_authorization_release`, `issuing_dispute`, `issuing_transaction`, `payment`, `payment_failure_refund`, `payment_refund`, `payout`, `payout_cancel`, `payout_failure`, `refund`, `refund_failure`, `reserve_transaction`, `reserved_funds`, `stripe_fee`, `stripe_fx_fee`, `tax_fee`, `topup`, `topup_reversal`, `transfer`, `transfer_cancel`, `transfer_failure`, or `transfer_refund`. Learn more about balance transaction types and what they represent. If you are looking to classify transactions for accounting purposes, you might want to consider `reporting_category` instead.
fee_details_amount`BIGINT`Amount of the fee, in cents.
fee_details_application`TEXT`ID of the Connect application that earned the fee.
fee_details_currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
fee_details_description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users.
fee_details_type`TEXT`Type of the fee, one of: `application_fee`, `stripe_fee` or `tax`.

Charge

To charge a credit or a debit card, you create a `Charge` object. You can retrieve and refund individual charges as well as list all charges. Charges are identified by a unique, random ID.

Related guide: Accept a payment with the Charges API.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ÂĄ100, a zero-decimal currency). The minimum amount is $0.50 US or equivalent in charge currency. The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
amount_captured`BIGINT`Amount in %s captured (can be less than the amount attribute on the charge if a partial capture was made).
amount_refunded`BIGINT`Amount in %s refunded (can be less than the amount attribute on the charge if a partial refund was issued).
application_id`TEXT`ID of the Connect application that created the charge.Application
application_fee_id`TEXT`The application fee (if any) for the charge. See the Connect documentation for details.Application_fee
application_fee_amount`BIGINT`The amount of the application fee (if any) requested for the charge. See the Connect documentation for details.
authorization_code`TEXT`Authorization code on the charge.
balance_transaction_id`TEXT`ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes).Balance_transaction
calculated_statement_descriptor`TEXT`The full statement descriptor that is passed to card networks, and that is displayed on your customers' credit card and bank statements. Allows you to see what the statement descriptor looks like after the static and dynamic portions are combined.
captured`BOOLEAN`If the charge was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
customer_id`TEXT`ID of the customer this charge is for if one exists.Customer
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users.
destination_id`TEXT`ID of an existing, connected Stripe account to transfer funds to if `transfer_data` was specified in the charge request.Account
dispute_id`TEXT`Details about the dispute if the charge has been disputed.Dispute
disputed`BOOLEAN`Whether the charge has been disputed.
failure_code`TEXT`Error code explaining reason for charge failure if available (see the errors section for a list of codes).
failure_message`TEXT`Message to user further explaining reason for charge failure if available.
invoice_id`TEXT`ID of the invoice this charge is for if one exists.Invoice
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
on_behalf_of_id`TEXT`The account (if any) the charge was made on behalf of without triggering an automatic transfer. See the Connect documentation for details.Account
order_id`TEXT`ID of the order this charge is for if one exists.Order
paid`BOOLEAN``true` if the charge succeeded, or was successfully authorized for later capture.
payment_intent_id`TEXT`ID of the PaymentIntent associated with this charge, if one exists.Payment_intent
payment_method_id`TEXT`ID of the payment method used in this charge.Payment_method
receipt_email`TEXT`This is the email address that the receipt for this charge was sent to.
receipt_number`TEXT`This is the transaction number that appears on email receipts sent for this charge. This attribute will be `null` until a receipt has been sent.
receipt_url`TEXT`This is the URL to view the receipt for this charge. The receipt is kept up-to-date to the latest state of the charge, including any refunds. If the charge is for an Invoice, the receipt will be stylized as an Invoice receipt.
refunded`BOOLEAN`Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false.
review_id`TEXT`ID of the review associated with this charge if one exists.Review
source_transfer_id`TEXT`The transfer ID which created this charge. Only present if the charge came from another Stripe account. See the Connect documentation for details.Transfer
statement_descriptor`TEXT`For card charges, use `statement_descriptor_suffix` instead. Otherwise, you can use this value as the complete description of a charge on your customers’ statements. Must contain at least one letter, maximum 22 characters.
statement_descriptor_suffix`TEXT`Provides information about the charge that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor.
status`TEXT`The status of the payment is either `succeeded`, `pending`, or `failed`.
transfer_id`TEXT`ID of the transfer to the `destination` account (only applicable if the charge was created using the `destination` parameter).Transfer
transfer_group`TEXT`A string that identifies this transaction as part of a group. See the Connect documentation for details.
alternate_statement_descriptors_kana`TEXT`The Kana variation of the descriptor.
alternate_statement_descriptors_kanji`TEXT`The Kanji variation of the descriptor.
shipping_address`JSONB`
shipping_carrier`TEXT`The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
shipping_name`TEXT`Recipient name.
shipping_phone`TEXT`Recipient phone (including extension).
shipping_tracking_number`TEXT`The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.
level3_customer_reference`TEXT`
level3_line_items`JSONB`
level3_merchant_reference`TEXT`
level3_shipping_address_zip`TEXT`
level3_shipping_amount`BIGINT`
level3_shipping_from_zip`TEXT`
payment_method_details_ach_credit_transfer`JSONB`
payment_method_details_ach_debit`JSONB`
payment_method_details_acss_debit`JSONB`
payment_method_details_afterpay_clearpay`JSONB`
payment_method_details_alipay`JSONB`
payment_method_details_au_becs_debit`JSONB`
payment_method_details_bacs_debit`JSONB`
payment_method_details_bancontact`JSONB`
payment_method_details_card`JSONB`
payment_method_details_card_present`JSONB`
payment_method_details_eps`JSONB`
payment_method_details_fpx`JSONB`
payment_method_details_giropay`JSONB`
payment_method_details_grabpay`JSONB`
payment_method_details_ideal`JSONB`
payment_method_details_interac_present`JSONB`
payment_method_details_klarna`JSONB`
payment_method_details_multibanco`JSONB`
payment_method_details_oxxo`JSONB`
payment_method_details_p24`JSONB`
payment_method_details_sepa_credit_transfer`JSONB`
payment_method_details_sepa_debit`JSONB`
payment_method_details_sofort`JSONB`
payment_method_details_stripe_account`JSONB`
payment_method_details_type`TEXT`The type of transaction-specific details of the payment method used in the payment, one of `ach_credit_transfer`, `ach_debit`, `acss_debit`, `alipay`, `au_becs_debit`, `bancontact`, `card`, `card_present`, `eps`, `giropay`, `ideal`, `klarna`, `multibanco`, `p24`, `sepa_debit`, `sofort`, `stripe_account`, or `wechat`.
An additional hash is included on `payment_method_details` with a name matching this value.
It contains information specific to the payment method.
payment_method_details_wechat`JSONB`
fraud_details_stripe_report`TEXT`Assessments from Stripe. If set, the value is `fraudulent`.
fraud_details_user_report`TEXT`Assessments reported by you. If set, possible values of are `safe` and `fraudulent`.
transfer_data_amount`BIGINT`The amount transferred to the destination account, if specified. By default, the entire charge amount is transferred to the destination account.
transfer_data_destination_id`TEXT`ID of an existing, connected Stripe account to transfer funds to if `transfer_data` was specified in the charge request.Account
billing_details_address`JSONB`Billing address.
billing_details_email`TEXT`Email address.
billing_details_name`TEXT`Full name.
billing_details_phone`TEXT`Billing phone number (including extension).
outcome_network_status`TEXT`Possible values are `approved_by_network`, `declined_by_network`, `not_sent_to_network`, and `reversed_after_approval`. The value `reversed_after_approval` indicates the payment was blocked by Stripe after bank authorization, and may temporarily appear as "pending" on a cardholder's statement.
outcome_reason`TEXT`An enumerated value providing a more detailed explanation of the outcome's `type`. Charges blocked by Radar's default block rule have the value `highest_risk_level`. Charges placed in review by Radar's default review rule have the value `elevated_risk_level`. Charges authorized, blocked, or placed in review by custom rules have the value `rule`. See understanding declines for more details.
outcome_risk_level`TEXT`Stripe Radar's evaluation of the riskiness of the payment. Possible values for evaluated payments are `normal`, `elevated`, `highest`. For non-card payments, and card-based payments predating the public assignment of risk levels, this field will have the value `not_assessed`. In the event of an error in the evaluation, this field will have the value `unknown`. This field is only available with Radar.
outcome_risk_score`BIGINT`Stripe Radar's evaluation of the riskiness of the payment. Possible values for evaluated payments are between 0 and 100. For non-card payments, card-based payments predating the public assignment of risk scores, or in the event of an error during evaluation, this field will not be present. This field is only available with Radar for Fraud Teams.
outcome_rule`JSONB`The ID of the Radar rule that matched the payment, if applicable.
outcome_seller_message`TEXT`A human-readable description of the outcome type and reason, designed for you (the recipient of the payment), not your customer.
outcome_type`TEXT`Possible values are `authorized`, `manual_review`, `issuer_declined`, `blocked`, and `invalid`. See understanding declines and Radar reviews for details.

Customer

`Customer` objects allow you to perform recurring charges, and to track multiple charges, that are associated with the same customer. The API allows you to create, delete, and update your customers. You can retrieve individual customers as well as a list of all your customers.

Related guide: Save a card during payment.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
balance`BIGINT`Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO code for the currency the customer can be charged in for recurring billing purposes.
delinquent`BOOLEAN`When the customer's latest invoice is billed by charging automatically, `delinquent` is `true` if the invoice's latest charge failed. When the customer's latest invoice is billed by sending an invoice, `delinquent` is `true` if the invoice isn't paid by its due date.

If an invoice is marked uncollectible by dunning, `delinquent` doesn't get reset to `false`.
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users.
discount_id`TEXT`Describes the current discount active on the customer, if there is one.Discount
email`TEXT`The customer's email address.
invoice_prefix`TEXT`The prefix for the customer used to generate unique invoice numbers.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
name`TEXT`The customer's full name or business name.
next_invoice_sequence`BIGINT`The suffix of the customer's next invoice number, e.g., 0001.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
phone`TEXT`The customer's phone number.
preferred_locales`TEXT[]`The customer's preferred locales (languages), ordered by preference.
tax_exempt`TEXT`Describes the customer's tax exemption status. One of `none`, `exempt`, or `reverse`. When set to `reverse`, invoice and receipt PDFs include the text "Reverse charge".
deleted`BOOLEAN`Always true for a deleted object
address_city`TEXT`City, district, suburb, town, or village.
address_country`TEXT`Two-letter country code (ISO 3166-1 alpha-2).
address_line1`TEXT`Address line 1 (e.g., street, PO Box, or company name).
address_line2`TEXT`Address line 2 (e.g., apartment, suite, unit, or building).
address_postal_code`TEXT`ZIP or postal code.
address_state`TEXT`State, county, province, or region.
shipping_address`JSONB`
shipping_carrier`TEXT`The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
shipping_name`TEXT`Recipient name.
shipping_phone`TEXT`Recipient phone (including extension).
shipping_tracking_number`TEXT`The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.
invoice_settings_custom_fields`JSONB`Default custom fields to be displayed on invoices for this customer.
invoice_settings_default_payment_method_id`TEXT`ID of a payment method that's attached to the customer, to be used as the customer's default payment method for subscriptions and invoices.Payment_method
invoice_settings_footer`TEXT`Default footer to be displayed on invoices for this customer.

Dispute

A dispute occurs when a customer questions your charge with their card issuer. When this happens, you're given the opportunity to respond to the dispute with evidence that shows that the charge is legitimate. You can find more information about the dispute process in our Disputes and Fraud documentation.

Related guide: Disputes and Fraud.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`Disputed amount. Usually the amount of the charge, but can differ (usually because of currency fluctuation or because only part of the order is disputed).
charge_id`TEXT`ID of the charge that was disputed.Charge
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
is_charge_refundable`BOOLEAN`If true, it is still possible to refund the disputed payment. Once the payment has been fully refunded, no further funds will be withdrawn from your Stripe account as a result of this dispute.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
network_reason_code`TEXT`Network-dependent reason code for the dispute.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
payment_intent_id`TEXT`ID of the PaymentIntent that was disputed.Payment_intent
reason`TEXT`Reason given by cardholder for dispute. Possible values are `bank_cannot_process`, `check_returned`, `credit_not_processed`, `customer_initiated`, `debit_not_authorized`, `duplicate`, `fraudulent`, `general`, `incorrect_account_details`, `insufficient_funds`, `product_not_received`, `product_unacceptable`, `subscription_canceled`, or `unrecognized`. Read more about dispute reasons.
status`TEXT`Current status of dispute. Possible values are `warning_needs_response`, `warning_under_review`, `warning_closed`, `needs_response`, `under_review`, `charge_refunded`, `won`, or `lost`.
evidence_access_activity_log`TEXT`Any server or activity logs showing proof that the customer accessed or downloaded the purchased digital product. This information should include IP addresses, corresponding timestamps, and any detailed recorded activity.
evidence_billing_address`TEXT`The billing address provided by the customer.
evidence_cancellation_policy_id`TEXT`(ID of a file upload) Your subscription cancellation policy, as shown to the customer.File
evidence_cancellation_policy_disclosure`TEXT`An explanation of how and when the customer was shown your refund policy prior to purchase.
evidence_cancellation_rebuttal`TEXT`A justification for why the customer's subscription was not canceled.
evidence_customer_communication_id`TEXT`(ID of a file upload) Any communication with the customer that you feel is relevant to your case. Examples include emails proving that the customer received the product or service, or demonstrating their use of or satisfaction with the product or service.File
evidence_customer_email_address`TEXT`The email address of the customer.
evidence_customer_name`TEXT`The name of the customer.
evidence_customer_purchase_ip`TEXT`The IP address that the customer used when making the purchase.
evidence_customer_signature_id`TEXT`(ID of a file upload) A relevant document or contract showing the customer's signature.File
evidence_duplicate_charge_documentation_id`TEXT`(ID of a file upload) Documentation for the prior charge that can uniquely identify the charge, such as a receipt, shipping label, work order, etc. This document should be paired with a similar document from the disputed payment that proves the two payments are separate.File
evidence_duplicate_charge_explanation`TEXT`An explanation of the difference between the disputed charge versus the prior charge that appears to be a duplicate.
evidence_duplicate_charge_id`TEXT`The Stripe ID for the prior charge which appears to be a duplicate of the disputed charge.
evidence_product_description`TEXT`A description of the product or service that was sold.
evidence_receipt_id`TEXT`(ID of a file upload) Any receipt or message sent to the customer notifying them of the charge.File
evidence_refund_policy_id`TEXT`(ID of a file upload) Your refund policy, as shown to the customer.File
evidence_refund_policy_disclosure`TEXT`Documentation demonstrating that the customer was shown your refund policy prior to purchase.
evidence_refund_refusal_explanation`TEXT`A justification for why the customer is not entitled to a refund.
evidence_service_date`TEXT`The date on which the customer received or began receiving the purchased service, in a clear human-readable format.
evidence_service_documentation_id`TEXT`(ID of a file upload) Documentation showing proof that a service was provided to the customer. This could include a copy of a signed contract, work order, or other form of written agreement.File
evidence_shipping_address`TEXT`The address to which a physical product was shipped. You should try to include as complete address information as possible.
evidence_shipping_carrier`TEXT`The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. If multiple carriers were used for this purchase, please separate them with commas.
evidence_shipping_date`TEXT`The date on which a physical product began its route to the shipping address, in a clear human-readable format.
evidence_shipping_documentation_id`TEXT`(ID of a file upload) Documentation showing proof that a product was shipped to the customer at the same address the customer provided to you. This could include a copy of the shipment receipt, shipping label, etc. It should show the customer's full shipping address, if possible.File
evidence_shipping_tracking_number`TEXT`The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.
evidence_uncategorized_file_id`TEXT`(ID of a file upload) Any additional evidence or statements.File
evidence_uncategorized_text`TEXT`Any additional evidence or statements.
evidence_details_due_by`TIMESTAMP`Date by which evidence must be submitted in order to successfully challenge dispute. Will be null if the customer's bank or credit card company doesn't allow a response for this particular dispute.
evidence_details_has_evidence`BOOLEAN`Whether evidence has been staged for this dispute.
evidence_details_past_due`BOOLEAN`Whether the last evidence submission was submitted past the due date. Defaults to `false` if no evidence submissions have occurred. If `true`, then delivery of the latest evidence is not guaranteed.
evidence_details_submission_count`BIGINT`The number of times evidence has been submitted. Typically, you may only submit evidence once.

Event

Events are our way of letting you know when something interesting happens in your account. When an interesting event occurs, we create a new `Event` object. For example, when a charge succeeds, we create a `charge.succeeded` event; and when an invoice payment attempt fails, we create an `invoice.payment_failed` event. Note that many API requests may cause multiple events to be created. For example, if you create a new subscription for a customer, you will receive both a `customer.subscription.created` event and a `charge.succeeded` event.

Events occur when the state of another API resource changes. The state of that resource at the time of the change is embedded in the event's data field. For example, a `charge.succeeded` event will contain a charge, and an `invoice.payment_failed` event will contain an invoice.

As with other API resources, you can use endpoints to retrieve an individual event or a list of events from the API. We also have a separate webhooks system for sending the `Event` objects directly to an endpoint on your server. Webhooks are managed in your account settings, and our Using Webhooks guide will help you get set up.

When using Connect, you can also receive notifications of events that occur in connected accounts. For these events, there will be an additional `account` attribute in the received `Event` object.

NOTE: Right now, access to events through the Retrieve Event API is guaranteed only for 30 days.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
account_id`TEXT`The connected account that originated the event.Account
api_version`TEXT`The Stripe API version used to render `data`. Note: This property is populated only for events on or after October 31, 2014.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
pending_webhooks`BIGINT`Number of webhooks that have yet to be successfully delivered (i.e., to return a 20x response) to the URLs you've specified.
type`TEXT`Description of the event (e.g., `invoice.created` or `charge.refunded`).
data_object`JSONB`Object containing the API resource relevant to the event. For example, an `invoice.created` event will have a full invoice object as the value of the object key.
data_previous_attributes`JSONB`Object containing the names of the attributes that have changed, and their previous values (sent along only with *.updated events).

File

This is an object representing a file hosted on Stripe's servers. The file may have been uploaded by yourself using the create file request (for example, when uploading dispute evidence) or it may have been created by Stripe (for example, the results of a Sigma scheduled query).

Related guide: File Upload Guide.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
expires_at`TIMESTAMP`The time at which the file expires and is no longer available in epoch seconds.
filename`TEXT`A filename for the file, suitable for saving to a filesystem.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
purpose`TEXT`The purpose of the uploaded file.
size`BIGINT`The size in bytes of the file object.
title`TEXT`A user friendly title for the document.
type`TEXT`The type of the file returned (e.g., `csv`, `pdf`, `jpg`, or `png`).
url`TEXT`The URL from which the file can be downloaded using your live secret API key.

To share the contents of a `File` object with non-Stripe users, you can create a `FileLink`. `FileLink`s contain a URL that can be used to retrieve the contents of the file without authentication.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
expired`BOOLEAN`Whether this link is already expired.
expires_at`TIMESTAMP`Time at which the link expires.
file_id`TEXT`The file object this link points to.File
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
url`TEXT`The publicly accessible URL to download the file.

Mandate

A Mandate is a record of the permission a customer has given you to debit their payment method.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
payment_method_id`TEXT`ID of the payment method associated with this mandate.Payment_method
status`TEXT`The status of the mandate, which indicates whether it can be used to initiate a payment.
type`TEXT`The type of the mandate.
single_use_amount`BIGINT`On a single use mandate, the amount of the payment.
single_use_currency`TEXT`On a single use mandate, the currency of the payment.
customer_acceptance_accepted_at`TIMESTAMP`The time at which the customer accepted the Mandate.
customer_acceptance_offline`JSONB`
customer_acceptance_online`JSONB`
customer_acceptance_type`TEXT`The type of customer acceptance information included with the Mandate. One of `online` or `offline`.
payment_method_details_acss_debit`JSONB`
payment_method_details_au_becs_debit`JSONB`
payment_method_details_bacs_debit`JSONB`
payment_method_details_card`JSONB`
payment_method_details_sepa_debit`JSONB`
payment_method_details_type`TEXT`The type of the payment method associated with this mandate. An additional hash is included on `payment_method_details` with a name matching this value. It contains mandate information specific to the payment method.

Payment_intent

A PaymentIntent guides you through the process of collecting a payment from your customer. We recommend that you create exactly one PaymentIntent for each order or customer session in your system. You can reference the PaymentIntent later to see the history of payment attempts for a particular session.

A PaymentIntent transitions through multiple statuses throughout its lifetime as it interfaces with Stripe.js to perform authentication flows and ultimately creates at most one successful charge.

Related guide: Payment Intents API.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ÂĄ100, a zero-decimal currency). The minimum amount is $0.50 US or equivalent in charge currency. The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
amount_capturable`BIGINT`Amount that can be captured from this PaymentIntent.
amount_received`BIGINT`Amount that was collected by this PaymentIntent.
application_id`TEXT`ID of the Connect application that created the PaymentIntent.Application
application_fee_amount`BIGINT`The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total payment amount. For more information, see the PaymentIntents use case for connected accounts.
canceled_at`TIMESTAMP`Populated when `status` is `canceled`, this is the time at which the PaymentIntent was canceled. Measured in seconds since the Unix epoch.
cancellation_reason`TEXT`Reason for cancellation of this PaymentIntent, either user-provided (`duplicate`, `fraudulent`, `requested_by_customer`, or `abandoned`) or generated by Stripe internally (`failed_invoice`, `void_invoice`, or `automatic`).
capture_method`TEXT`Controls when the funds will be captured from the customer's account.
client_secret`TEXT`The client secret of this PaymentIntent. Used for client-side retrieval using a publishable key.

The client secret can be used to complete a payment from your frontend. It should not be stored, logged, embedded in URLs, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret.

Refer to our docs to accept a payment and learn about how `client_secret` should be handled.
confirmation_method`TEXT`
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
customer_id`TEXT`ID of the Customer this PaymentIntent belongs to, if one exists.

Payment methods attached to other Customers cannot be used with this PaymentIntent.

If present in combination with setup_future_usage, this PaymentIntent's payment method will be attached to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete.
Customer
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users.
invoice_id`TEXT`ID of the invoice that created this PaymentIntent, if it exists.Invoice
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. For more information, see the documentation.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
on_behalf_of_id`TEXT`The account (if any) for which the funds of the PaymentIntent are intended. See the PaymentIntents use case for connected accounts for details.Account
payment_method_id`TEXT`ID of the payment method used in this PaymentIntent.Payment_method
payment_method_types`TEXT[]`The list of payment method types (e.g. card) that this PaymentIntent is allowed to use.
receipt_email`TEXT`Email address that the receipt for the resulting payment will be sent to. If `receipt_email` is specified for a payment in live mode, a receipt will be sent regardless of your email settings.
review_id`TEXT`ID of the review associated with this PaymentIntent, if any.Review
setup_future_usage`TEXT`Indicates that you intend to make future payments with this PaymentIntent's payment method.

Providing this parameter will attach the payment method to the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be attached to a Customer after the transaction completes.

When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as SCA.
statement_descriptor`TEXT`For non-card charges, you can use this value as the complete description that appears on your customers’ statements. Must contain at least one letter, maximum 22 characters.
statement_descriptor_suffix`TEXT`Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor.
status`TEXT`Status of this PaymentIntent, one of `requires_payment_method`, `requires_confirmation`, `requires_action`, `processing`, `requires_capture`, `canceled`, or `succeeded`. Read more about each PaymentIntent status.
transfer_group`TEXT`A string that identifies the resulting payment as part of a group. See the PaymentIntents use case for connected accounts for details.
payment_method_options_acss_debit`JSONB`
payment_method_options_afterpay_clearpay`JSONB`
payment_method_options_alipay`JSONB`
payment_method_options_bancontact`JSONB`
payment_method_options_card`JSONB`
payment_method_options_card_present`JSONB`
payment_method_options_oxxo`JSONB`
payment_method_options_p24`JSONB`
payment_method_options_sepa_debit`JSONB`
payment_method_options_sofort`JSONB`
shipping_address`JSONB`
shipping_carrier`TEXT`The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
shipping_name`TEXT`Recipient name.
shipping_phone`TEXT`Recipient phone (including extension).
shipping_tracking_number`TEXT`The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.
transfer_data_amount`BIGINT`Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ÂĄ100, a zero-decimal currency). The minimum amount is $0.50 US or equivalent in charge currency. The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
transfer_data_destination_id`TEXT`The account (if any) the payment will be attributed to for tax
reporting, and where funds from the payment will be transferred to upon
payment success.
Account
next_action_alipay_handle_redirect`JSONB`
next_action_oxxo_display_details`JSONB`
next_action_redirect_to_url`JSONB`
next_action_type`TEXT`Type of the next action to perform, one of `redirect_to_url`, `use_stripe_sdk`, `alipay_handle_redirect`, or `oxxo_display_details`.
next_action_use_stripe_sdk`JSONB`When confirming a PaymentIntent with Stripe.js, Stripe.js depends on the contents of this dictionary to invoke authentication flows. The shape of the contents is subject to change and is only intended to be used by Stripe.js.
next_action_verify_with_microdeposits`JSONB`
last_payment_error_charge`TEXT`For card errors, the ID of the failed charge.
last_payment_error_code`TEXT`For some errors that could be handled programmatically, a short string indicating the error code reported.
last_payment_error_decline_code`TEXT`For card errors resulting from a card issuer decline, a short string indicating the card issuer's reason for the decline if they provide one.
last_payment_error_doc_url`TEXT`A URL to more information about the error code reported.
last_payment_error_message`TEXT`A human-readable message providing more details about the error. For card errors, these messages can be shown to your users.
last_payment_error_param`TEXT`If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field.
last_payment_error_payment_intent_id`TEXT`Payment_intent
last_payment_error_payment_method_id`TEXT`Payment_method
last_payment_error_payment_method_type`TEXT`If the error is specific to the type of payment method, the payment method type that had a problem. This field is only populated for invoice-related errors.
last_payment_error_setup_intent_id`TEXT`Setup_intent
last_payment_error_source`JSONB`
last_payment_error_type`TEXT`The type of error returned. One of `api_connection_error`, `api_error`, `authentication_error`, `card_error`, `idempotency_error`, `invalid_request_error`, or `rate_limit_error`

Payout

A `Payout` object is created when you receive funds from Stripe, or when you initiate a payout to either a bank account or debit card of a connected Stripe account. You can retrieve individual payouts, as well as list all payouts. Payouts are made on varying schedules, depending on your country and industry.

Related guide: Receiving Payouts.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`Amount (in %s) to be transferred to your bank account or debit card.
arrival_date`TIMESTAMP`Date the payout is expected to arrive in the bank. This factors in delays like weekends or bank holidays.
automatic`BOOLEAN`Returns `true` if the payout was created by an automated payout schedule, and `false` if it was requested manually.
balance_transaction_id`TEXT`ID of the balance transaction that describes the impact of this payout on your account balance.Balance_transaction
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users.
failure_balance_transaction_id`TEXT`If the payout failed or was canceled, this will be the ID of the balance transaction that reversed the initial balance transaction, and puts the funds from the failed payout back in your balance.Balance_transaction
failure_code`TEXT`Error code explaining reason for payout failure if available. See Types of payout failures for a list of failure codes.
failure_message`TEXT`Message to user further explaining reason for payout failure if available.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
method`TEXT`The method used to send this payout, which can be `standard` or `instant`. `instant` is only supported for payouts to debit cards. (See Instant payouts for marketplaces for more information.)
object`TEXT`String representing the object's type. Objects of the same type share the same value.
original_payout_id`TEXT`If the payout reverses another, this is the ID of the original payout.Payout
reversed_by_id`TEXT`If the payout was reversed, this is the ID of the payout that reverses this payout.Payout
source_type`TEXT`The source balance this payout came from. One of `card`, `fpx`, or `bank_account`.
statement_descriptor`TEXT`Extra information about a payout to be displayed on the user's bank statement.
status`TEXT`Current status of the payout: `paid`, `pending`, `in_transit`, `canceled` or `failed`. A payout is `pending` until it is submitted to the bank, when it becomes `in_transit`. The status then changes to `paid` if the transaction goes through, or to `failed` or `canceled` (within 5 business days). Some failed payouts may initially show as `paid` but then change to `failed`.
type`TEXT`Can be `bank_account` or `card`.

Product

Products describe the specific goods or services you offer to your customers. For example, you might offer a Standard and Premium version of your goods or service; each version would be a separate Product. They can be used in conjunction with Prices to configure pricing in Checkout and Subscriptions.

Related guides: Set up a subscription or accept one-time payments with Checkout and more about Products and Prices

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
deleted`BOOLEAN`Always true for a deleted object
object`TEXT`String representing the object's type. Objects of the same type share the same value.
active`BOOLEAN`Whether the product is currently available for purchase.
attributes`TEXT[]`A list of up to 5 attributes that each SKU can provide values for (e.g., `["color", "size"]`).
caption`TEXT`A short one-line description of the product, meant to be displayable to the customer. Only applicable to products of `type=good`.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
deactivate_on`TEXT[]`An array of connect application identifiers that cannot purchase this product. Only applicable to products of `type=good`.
description`TEXT`The product's description, meant to be displayable to the customer. Use this field to optionally store a long form explanation of the product being sold for your own rendering purposes.
images`TEXT[]`A list of up to 8 URLs of images for this product, meant to be displayable to the customer.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
name`TEXT`The product's name, meant to be displayable to the customer. Whenever this product is sold via a subscription, name will show up on associated invoice line item descriptions.
shippable`BOOLEAN`Whether this product is shipped (i.e., physical goods).
statement_descriptor`TEXT`Extra information about a product which will appear on your customer's credit card statement. In the case that multiple products are billed at once, the first statement descriptor will be used.
type`TEXT`The type of the product. The product is either of type `good`, which is eligible for use with Orders and SKUs, or `service`, which is eligible for use with Subscriptions and Plans.
unit_label`TEXT`A label that represents units of this product in Stripe and on customers’ receipts and invoices. When set, this will be included in associated invoice line item descriptions.
updated`TIMESTAMP`Time at which the object was last updated. Measured in seconds since the Unix epoch.
url`TEXT`A URL of a publicly-accessible webpage for this product.
package_dimensions_height`NUMERIC`Height, in inches.
package_dimensions_length`NUMERIC`Length, in inches.
package_dimensions_weight`NUMERIC`Weight, in ounces.
package_dimensions_width`NUMERIC`Width, in inches.

Refund

`Refund` objects allow you to refund a charge that has previously been created but not yet refunded. Funds will be refunded to the credit or debit card that was originally charged.

Related guide: Refunds.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`Amount, in %s.
balance_transaction_id`TEXT`Balance transaction that describes the impact on your account balance.Balance_transaction
charge_id`TEXT`ID of the charge that was refunded.Charge
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users. (Available on non-card refunds only)
failure_balance_transaction_id`TEXT`If the refund failed, this balance transaction describes the adjustment made on your account balance that reverses the initial balance transaction.Balance_transaction
failure_reason`TEXT`If the refund failed, the reason for refund failure if known. Possible values are `lost_or_stolen_card`, `expired_or_canceled_card`, or `unknown`.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
payment_intent_id`TEXT`ID of the PaymentIntent that was refunded.Payment_intent
reason`TEXT`Reason for the refund, either user-provided (`duplicate`, `fraudulent`, or `requested_by_customer`) or generated by Stripe internally (`expired_uncaptured_charge`).
receipt_number`TEXT`This is the transaction number that appears on email receipts sent for this refund.
source_transfer_reversal_id`TEXT`The transfer reversal that is associated with the refund. Only present if the charge came from another Stripe account. See the Connect documentation for details.Transfer_reversal
status`TEXT`Status of the refund. For credit card refunds, this can be `pending`, `succeeded`, or `failed`. For other types of refunds, it can be `pending`, `succeeded`, `failed`, or `canceled`. Refer to our refunds documentation for more details.
transfer_reversal_id`TEXT`If the accompanying transfer was reversed, the transfer reversal object. Only applicable if the charge was created using the destination parameter.Transfer_reversal

Setup_attempt

A SetupAttempt describes one attempted confirmation of a SetupIntent, whether that confirmation was successful or unsuccessful. You can use SetupAttempts to inspect details of a specific attempt at setting up a payment method using a SetupIntent.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
application_id`TEXT`The value of application on the SetupIntent at the time of this confirmation.Application
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
customer_id`TEXT`The value of customer on the SetupIntent at the time of this confirmation.Customer
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
on_behalf_of_id`TEXT`The value of on_behalf_of on the SetupIntent at the time of this confirmation.Account
payment_method_id`TEXT`ID of the payment method used with this SetupAttempt.Payment_method
setup_intent_id`TEXT`ID of the SetupIntent that this attempt belongs to.Setup_intent
status`TEXT`Status of this SetupAttempt, one of `requires_confirmation`, `requires_action`, `processing`, `succeeded`, `failed`, or `abandoned`.
usage`TEXT`The value of usage on the SetupIntent at the time of this confirmation, one of `off_session` or `on_session`.
setup_error_charge`TEXT`For card errors, the ID of the failed charge.
setup_error_code`TEXT`For some errors that could be handled programmatically, a short string indicating the error code reported.
setup_error_decline_code`TEXT`For card errors resulting from a card issuer decline, a short string indicating the card issuer's reason for the decline if they provide one.
setup_error_doc_url`TEXT`A URL to more information about the error code reported.
setup_error_message`TEXT`A human-readable message providing more details about the error. For card errors, these messages can be shown to your users.
setup_error_param`TEXT`If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field.
setup_error_payment_intent_id`TEXT`Payment_intent
setup_error_payment_method_id`TEXT`Payment_method
setup_error_payment_method_type`TEXT`If the error is specific to the type of payment method, the payment method type that had a problem. This field is only populated for invoice-related errors.
setup_error_setup_intent_id`TEXT`Setup_intent
setup_error_source`JSONB`
setup_error_type`TEXT`The type of error returned. One of `api_connection_error`, `api_error`, `authentication_error`, `card_error`, `idempotency_error`, `invalid_request_error`, or `rate_limit_error`
payment_method_details_acss_debit`JSONB`
payment_method_details_au_becs_debit`JSONB`
payment_method_details_bacs_debit`JSONB`
payment_method_details_bancontact`JSONB`
payment_method_details_card`JSONB`
payment_method_details_card_present`JSONB`
payment_method_details_ideal`JSONB`
payment_method_details_sepa_debit`JSONB`
payment_method_details_sofort`JSONB`
payment_method_details_type`TEXT`The type of the payment method used in the SetupIntent (e.g., `card`). An additional hash is included on `payment_method_details` with a name matching this value. It contains confirmation-specific information for the payment method.

Setup_intent

A SetupIntent guides you through the process of setting up and saving a customer's payment credentials for future payments. For example, you could use a SetupIntent to set up and save your customer's card without immediately collecting a payment. Later, you can use PaymentIntents to drive the payment flow.

Create a SetupIntent as soon as you're ready to collect your customer's payment credentials. Do not maintain long-lived, unconfirmed SetupIntents as they may no longer be valid. The SetupIntent then transitions through multiple statuses as it guides you through the setup process.

Successful SetupIntents result in payment credentials that are optimized for future payments. For example, cardholders in certain regions may need to be run through Strong Customer Authentication at the time of payment method collection in order to streamline later off-session payments. If the SetupIntent is used with a Customer, upon success, it will automatically attach the resulting payment method to that Customer. We recommend using SetupIntents or setup_future_usage on PaymentIntents to save payment methods in order to prevent saving invalid or unoptimized payment methods.

By using SetupIntents, you ensure that your customers experience the minimum set of required friction, even as regulations change over time.

Related guide: Setup Intents API.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
application_id`TEXT`ID of the Connect application that created the SetupIntent.Application
cancellation_reason`TEXT`Reason for cancellation of this SetupIntent, one of `abandoned`, `requested_by_customer`, or `duplicate`.
client_secret`TEXT`The client secret of this SetupIntent. Used for client-side retrieval using a publishable key.

The client secret can be used to complete payment setup from your frontend. It should not be stored, logged, embedded in URLs, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
customer_id`TEXT`ID of the Customer this SetupIntent belongs to, if one exists.

If present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent.
Customer
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users.
latest_attempt_id`TEXT`The most recent SetupAttempt for this SetupIntent.Setup_attempt
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
mandate_id`TEXT`ID of the multi use Mandate generated by the SetupIntent.Mandate
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
on_behalf_of_id`TEXT`The account (if any) for which the setup is intended.Account
payment_method_id`TEXT`ID of the payment method used with this SetupIntent.Payment_method
payment_method_types`TEXT[]`The list of payment method types (e.g. card) that this SetupIntent is allowed to set up.
single_use_mandate_id`TEXT`ID of the single_use Mandate generated by the SetupIntent.Mandate
status`TEXT`Status of this SetupIntent, one of `requires_payment_method`, `requires_confirmation`, `requires_action`, `processing`, `canceled`, or `succeeded`.
usage`TEXT`Indicates how the payment method is intended to be used in the future.

Use `on_session` if you intend to only reuse the payment method when the customer is in your checkout flow. Use `off_session` if your customer may or may not be in your checkout flow. If not provided, this value defaults to `off_session`.
last_setup_error_charge`TEXT`For card errors, the ID of the failed charge.
last_setup_error_code`TEXT`For some errors that could be handled programmatically, a short string indicating the error code reported.
last_setup_error_decline_code`TEXT`For card errors resulting from a card issuer decline, a short string indicating the card issuer's reason for the decline if they provide one.
last_setup_error_doc_url`TEXT`A URL to more information about the error code reported.
last_setup_error_message`TEXT`A human-readable message providing more details about the error. For card errors, these messages can be shown to your users.
last_setup_error_param`TEXT`If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field.
last_setup_error_payment_intent_id`TEXT`Payment_intent
last_setup_error_payment_method_id`TEXT`Payment_method
last_setup_error_payment_method_type`TEXT`If the error is specific to the type of payment method, the payment method type that had a problem. This field is only populated for invoice-related errors.
last_setup_error_setup_intent_id`TEXT`Setup_intent
last_setup_error_source`JSONB`
last_setup_error_type`TEXT`The type of error returned. One of `api_connection_error`, `api_error`, `authentication_error`, `card_error`, `idempotency_error`, `invalid_request_error`, or `rate_limit_error`
next_action_redirect_to_url`JSONB`
next_action_type`TEXT`Type of the next action to perform, one of `redirect_to_url`, `use_stripe_sdk`, `alipay_handle_redirect`, or `oxxo_display_details`.
next_action_use_stripe_sdk`JSONB`When confirming a SetupIntent with Stripe.js, Stripe.js depends on the contents of this dictionary to invoke authentication flows. The shape of the contents is subject to change and is only intended to be used by Stripe.js.
next_action_verify_with_microdeposits`JSONB`
payment_method_options_acss_debit`JSONB`
payment_method_options_card`JSONB`
payment_method_options_sepa_debit`JSONB`

Token

Tokenization is the process Stripe uses to collect sensitive card or bank account details, or personally identifiable information (PII), directly from your customers in a secure manner. A token representing this information is returned to your server to use. You should use our recommended payments integrations to perform this process client-side. This ensures that no sensitive card data touches your server, and allows your integration to operate in a PCI-compliant way.

If you cannot use client-side tokenization, you can also create tokens using the API with either your publishable or secret API key. Keep in mind that if your integration uses this method, you are responsible for any PCI compliance that may be required, and you must keep your secret API key safe. Unlike with client-side tokenization, your customer's information is not sent directly to Stripe, so we cannot determine how it is handled or stored.

Tokens cannot be stored or used more than once. To store card or bank account information for later use, you can create Customer objects or Custom accounts. Note that Radar, our integrated solution for automatic fraud protection, performs best with integrations that use client-side tokenization.

Related guide: Accept a payment

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
bank_account_id`TEXT`Bank_account
card_id`TEXT`Card
client_ip`TEXT`IP address of the client that generated the token.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
type`TEXT`Type of the token: `account`, `bank_account`, `card`, or `pii`.
used`BOOLEAN`Whether this token has already been used (tokens can be used only once).

Billing Tables

These billing tables contain the objects related to invoice or subscription based payments.

Coupon

A coupon contains information about a percent-off or amount-off discount you might want to apply to a customer. Coupons may be applied to invoices or orders. Coupons do not work with conventional one-off charges.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount_off`BIGINT`Amount (in the `currency` specified) that will be taken off the subtotal of any invoices for this customer.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`If `amount_off` has been set, the three-letter ISO code for the currency of the amount to take off.
duration`TEXT`One of `forever`, `once`, and `repeating`. Describes how long a customer who applies this coupon will get the discount.
duration_in_months`BIGINT`If `duration` is `repeating`, the number of months the coupon applies. Null if coupon `duration` is `forever` or `once`.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
max_redemptions`BIGINT`Maximum number of times this coupon can be redeemed, in total, across all customers, before it is no longer valid.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
name`TEXT`Name of the coupon displayed to customers on for instance invoices or receipts.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
percent_off`NUMERIC`Percent that will be taken off the subtotal of any invoices for this customer for the duration of the coupon. For example, a coupon with percent_off of 50 will make a %s100 invoice %s50 instead.
redeem_by`TIMESTAMP`Date after which the coupon can no longer be redeemed.
times_redeemed`BIGINT`Number of times this coupon has been applied to a customer.
valid`BOOLEAN`Taking account of the above properties, whether this coupon can still be applied to a customer.
deleted`BOOLEAN`Always true for a deleted object
applies_to_products`TEXT[]`A list of product IDs this coupon applies to

Credit_note

Issue a credit note to adjust an invoice's amount after the invoice is finalized.

Related guide: Credit Notes.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`The integer amount in %s representing the total amount of the credit note, including tax.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
customer_id`TEXT`ID of the customer.Customer
customer_balance_transaction_id`TEXT`Customer balance transaction related to this credit note.Customer_balance_transaction
discount_amount`BIGINT`The integer amount in %s representing the total amount of discount that was credited.
invoice_id`TEXT`ID of the invoice.Invoice
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
memo`TEXT`Customer-facing text that appears on the credit note PDF.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
number`TEXT`A unique number that identifies this particular credit note and appears on the PDF of the credit note and its associated invoice.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
out_of_band_amount`BIGINT`Amount that was credited outside of Stripe.
pdf`TEXT`The link to download the PDF of the credit note.
reason`TEXT`Reason for issuing this credit note, one of `duplicate`, `fraudulent`, `order_change`, or `product_unsatisfactory`
refund_id`TEXT`Refund related to this credit note.Refund
status`TEXT`Status of this credit note, one of `issued` or `void`. Learn more about voiding credit notes.
subtotal`BIGINT`The integer amount in %s representing the amount of the credit note, excluding tax and invoice level discounts.
total`BIGINT`The integer amount in %s representing the total amount of the credit note, including tax and all discount.
type`TEXT`Type of this credit note, one of `pre_payment` or `post_payment`. A `pre_payment` credit note means it was issued when the invoice was open. A `post_payment` credit note means it was issued when the invoice was paid.
voided_at`TIMESTAMP`The time that the credit note was voided.
tax_amounts_amount`BIGINT`The amount, in %s, of the tax.
tax_amounts_inclusive`BOOLEAN`Whether this tax amount is inclusive or exclusive.
tax_amounts_tax_rate_id`TEXT`The tax rate that was applied to get this tax amount.Tax_rate
discount_amounts_amount`BIGINT`The amount, in %s, of the discount.
discount_amounts_discount_id`TEXT`The discount that was applied to get this discount amount.Discount

Credit_note_line_item

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`The integer amount in %s representing the gross amount being credited for this line item, excluding (exclusive) tax and discounts.
description`TEXT`Description of the item being credited.
discount_amount`BIGINT`The integer amount in %s representing the discount being credited for this line item.
invoice_line_item`TEXT`ID of the invoice line item being creditedInvoiceitem
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
quantity`BIGINT`The number of units of product being credited.
type`TEXT`The type of the credit note line item, one of `invoice_line_item` or `custom_line_item`. When the type is `invoice_line_item` there is an additional `invoice_line_item` property on the resource the value of which is the id of the credited line item on the invoice.
unit_amount`BIGINT`The cost of each unit of product being credited.
unit_amount_decimal`NUMERIC`Same as `unit_amount`, but contains a decimal value with at most 12 decimal places.
tax_amounts_amount`BIGINT`The amount, in %s, of the tax.
tax_amounts_inclusive`BOOLEAN`Whether this tax amount is inclusive or exclusive.
tax_amounts_tax_rate_id`TEXT`The tax rate that was applied to get this tax amount.Tax_rate
discount_amounts_amount`BIGINT`The amount, in %s, of the discount.
discount_amounts_discount_id`TEXT`The discount that was applied to get this discount amount.Discount

Customer_balance_transaction

Each customer has a `balance` value, which denotes a debit or credit that's automatically applied to their next invoice upon finalization. You may modify the value directly by using the update customer API, or by creating a Customer Balance Transaction, which increments or decrements the customer's `balance` by the specified `amount`.

Related guide: Customer Balance to learn more.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`The amount of the transaction. A negative value is a credit for the customer's balance, and a positive value is a debit to the customer's `balance`.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
credit_note_id`TEXT`The ID of the credit note (if any) related to the transaction.Credit_note
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
customer_id`TEXT`The ID of the customer the transaction belongs to.Customer
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users.
ending_balance`BIGINT`The customer's `balance` after the transaction was applied. A negative value decreases the amount due on the customer's next invoice. A positive value increases the amount due on the customer's next invoice.
invoice_id`TEXT`The ID of the invoice (if any) related to the transaction.Invoice
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
type`TEXT`Transaction type: `adjustment`, `applied_to_invoice`, `credit_note`, `initial`, `invoice_too_large`, `invoice_too_small`, `unspent_receiver_credit`, or `unapplied_from_invoice`. See the Customer Balance page to learn more about transaction types.

Discount

A discount represents the actual application of a coupon to a particular customer. It contains information about when the discount began and when it will end.

Related guide: Applying Discounts to Subscriptions.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`The ID of the discount object. Discounts cannot be fetched by ID. Use `expand[]=discounts` in API calls to expand discount IDs in an array.
checkout_session`TEXT`The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode.
coupon_id`TEXT`Coupon
customer_id`TEXT`The ID of the customer associated with this discount.Customer
deleted`BOOLEAN`Always true for a deleted object
invoice_id`TEXT`The invoice that the discount's coupon was applied to, if it was applied directly to a particular invoice.Invoice
invoice_item`TEXT`The invoice item `id` (or invoice line item `id` for invoice line items of type='subscription') that the discount's coupon was applied to, if it was applied directly to a particular invoice item or invoice line item.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
promotion_code_id`TEXT`The promotion code applied to create this discount.Promotion_code
start`TIMESTAMP`Date that the coupon was applied.
subscription_id`TEXT`The subscription that this coupon is applied to, if it is applied to a particular subscription.Subscription
end`TIMESTAMP`If the coupon has a duration of `repeating`, the date that this discount will end. If the coupon has a duration of `once` or `forever`, this attribute will be null.

Invoice

Invoices are statements of amounts owed by a customer, and are either generated one-off, or generated periodically from a subscription.

They contain invoice items, and proration adjustments that may be caused by subscription upgrades/downgrades (if necessary).

If your invoice is configured to be billed through automatic charges, Stripe automatically finalizes your invoice and attempts payment. Note that finalizing the invoice, when automatic, does not happen immediately as the invoice is created. Stripe waits until one hour after the last webhook was successfully sent (or the last webhook timed out after failing). If you (and the platforms you may have connected to) have no webhooks configured, Stripe waits one hour after creation to finalize the invoice.

If your invoice is configured to be billed by sending an email, then based on your email settings, Stripe will email the invoice to your customer and await payment. These emails can contain a link to a hosted page to pay the invoice.

Stripe applies any customer credit on the account before determining the amount due for the invoice (i.e., the amount that will be actually charged). If the amount due for the invoice is less than Stripe's minimum allowed charge per currency, the invoice is automatically marked paid, and we add the amount due to the customer's credit balance which is applied to the next invoice.

More details on the customer's credit balance are here.

Related guide: Send Invoices to Customers.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
deleted`BOOLEAN`Always true for a deleted object
object`TEXT`String representing the object's type. Objects of the same type share the same value.
account_country`TEXT`The country of the business associated with this invoice, most often the business creating the invoice.
account_name`TEXT`The public name of the business associated with this invoice, most often the business creating the invoice.
account_tax_ids`TEXT[]`The account tax IDs associated with the invoice. Only editable when the invoice is a draft.
amount_due`BIGINT`Final amount due at this time for this invoice. If the invoice's total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the `amount_due` may be 0. If there is a positive `starting_balance` for the invoice (the customer owes money), the `amount_due` will also take that into account. The charge that gets generated for the invoice will be for the amount specified in `amount_due`.
amount_paid`BIGINT`The amount, in %s, that was paid.
amount_remaining`BIGINT`The amount remaining, in %s, that is due.
application_fee_amount`BIGINT`The fee in %s that will be applied to the invoice and transferred to the application owner's Stripe account when the invoice is paid.
attempt_count`BIGINT`Number of payment attempts made for this invoice, from the perspective of the payment retry schedule. Any payment attempt counts as the first attempt, and subsequently only automatic retries increment the attempt count. In other words, manual payment attempts after the first attempt do not affect the retry schedule.
attempted`BOOLEAN`Whether an attempt has been made to pay the invoice. An invoice is not attempted until 1 hour after the `invoice.created` webhook, for example, so you might not want to display that invoice as unpaid to your users.
auto_advance`BOOLEAN`Controls whether Stripe will perform automatic collection of the invoice. When `false`, the invoice's state will not automatically advance without an explicit action.
billing_reason`TEXT`Indicates the reason why the invoice was created. `subscription_cycle` indicates an invoice created by a subscription advancing into a new period. `subscription_create` indicates an invoice created due to creating a subscription. `subscription_update` indicates an invoice created due to updating a subscription. `subscription` is set for all old invoices to indicate either a change to a subscription or a period advancement. `manual` is set for all invoices unrelated to a subscription (for example: created via the invoice editor). The `upcoming` value is reserved for simulated invoices per the upcoming invoice endpoint. `subscription_threshold` indicates an invoice created due to a billing threshold being reached.
charge_id`TEXT`ID of the latest charge generated for this invoice, if any.Charge
collection_method`TEXT`Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this invoice using the default source attached to the customer. When sending an invoice, Stripe will email this invoice to the customer with payment instructions.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
customer_id`TEXT`The ID of the customer who will be billed.Customer
customer_email`TEXT`The customer's email. Until the invoice is finalized, this field will equal `customer.email`. Once the invoice is finalized, this field will no longer be updated.
customer_name`TEXT`The customer's name. Until the invoice is finalized, this field will equal `customer.name`. Once the invoice is finalized, this field will no longer be updated.
customer_phone`TEXT`The customer's phone number. Until the invoice is finalized, this field will equal `customer.phone`. Once the invoice is finalized, this field will no longer be updated.
customer_tax_exempt`TEXT`The customer's tax exempt status. Until the invoice is finalized, this field will equal `customer.tax_exempt`. Once the invoice is finalized, this field will no longer be updated.
default_payment_method_id`TEXT`ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings.Payment_method
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard.
discount_id`TEXT`Describes the current discount applied to this invoice, if there is one. Not populated if there are multiple discounts.Discount
discounts`TEXT[]`The discounts applied to the invoice. Line item discounts are applied before invoice discounts. Use `expand[]=discounts` to expand each discount.
due_date`TIMESTAMP`The date on which payment for this invoice is due. This value will be `null` for invoices where `collection_method=charge_automatically`.
ending_balance`BIGINT`Ending customer balance after the invoice is finalized. Invoices are finalized approximately an hour after successful webhook delivery or when payment collection is attempted for the invoice. If the invoice has not been finalized yet, this will be null.
footer`TEXT`Footer displayed on the invoice.
hosted_invoice_url`TEXT`The URL for the hosted invoice page, which allows customers to view and pay an invoice. If the invoice has not been finalized yet, this will be null.
invoice_pdf`TEXT`The link to download the PDF for the invoice. If the invoice has not been finalized yet, this will be null.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
next_payment_attempt`TIMESTAMP`The time at which payment will next be attempted. This value will be `null` for invoices where `collection_method=send_invoice`.
number`TEXT`A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer's unique invoice_prefix if it is specified.
on_behalf_of_id`TEXT`The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the Invoices with Connect documentation for details.Account
paid`BOOLEAN`Whether payment was successfully collected for this invoice. An invoice can be paid (most commonly) with a charge or with credit from the customer's account balance.
payment_intent_id`TEXT`The PaymentIntent associated with this invoice. The PaymentIntent is generated when the invoice is finalized, and can then be used to pay the invoice. Note that voiding an invoice will cancel the PaymentIntent.Payment_intent
period_end`TIMESTAMP`End of the usage period during which invoice items were added to this invoice.
period_start`TIMESTAMP`Start of the usage period during which invoice items were added to this invoice.
post_payment_credit_notes_amount`BIGINT`Total amount of all post-payment credit notes issued for this invoice.
pre_payment_credit_notes_amount`BIGINT`Total amount of all pre-payment credit notes issued for this invoice.
receipt_number`TEXT`This is the transaction number that appears on email receipts sent for this invoice.
starting_balance`BIGINT`Starting customer balance before the invoice is finalized. If the invoice has not been finalized yet, this will be the current customer balance.
statement_descriptor`TEXT`Extra information about an invoice for the customer's credit card statement.
status`TEXT`The status of the invoice, one of `draft`, `open`, `paid`, `uncollectible`, or `void`. Learn more
subscription_id`TEXT`The subscription that this invoice was prepared for, if any.Subscription
subscription_proration_date`BIGINT`Only set for upcoming invoices that preview prorations. The time used to calculate prorations.
subtotal`BIGINT`Total of all subscriptions, invoice items, and prorations on the invoice before any invoice level discount or tax is applied. Item discounts are already incorporated
tax`BIGINT`The amount of tax on this invoice. This is the sum of all the tax amounts on this invoice.
total`BIGINT`Total after discounts and taxes.
webhooks_delivered_at`TIMESTAMP`Invoices are automatically paid or sent 1 hour after webhooks are delivered, or until all webhook delivery attempts have been exhausted. This field tracks the time when webhooks for this invoice were successfully delivered. If the invoice had no webhooks to deliver, this will be set while the invoice is being created.
customer_shipping_address`JSONB`
customer_shipping_carrier`TEXT`The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
customer_shipping_name`TEXT`Recipient name.
customer_shipping_phone`TEXT`Recipient phone (including extension).
customer_shipping_tracking_number`TEXT`The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.
transfer_data_amount`BIGINT`The amount in %s that will be transferred to the destination account when the invoice is paid. By default, the entire amount is transferred to the destination.
transfer_data_destination_id`TEXT`The account where funds from the payment will be transferred to upon payment success.Account
customer_address_city`TEXT`City, district, suburb, town, or village.
customer_address_country`TEXT`Two-letter country code (ISO 3166-1 alpha-2).
customer_address_line1`TEXT`Address line 1 (e.g., street, PO Box, or company name).
customer_address_line2`TEXT`Address line 2 (e.g., apartment, suite, unit, or building).
customer_address_postal_code`TEXT`ZIP or postal code.
customer_address_state`TEXT`State, county, province, or region.
payment_settings_payment_method_options`JSONB`Payment-method-specific configuration to provide to the invoice’s PaymentIntent.
payment_settings_payment_method_types`TEXT[]`The list of payment method types (e.g. card) to provide to the invoice’s PaymentIntent. If not set, Stripe attempts to automatically determine the types to use by looking at the invoice’s default payment method, the subscription’s default payment method, the customer’s default payment method, and your invoice template settings.
threshold_reason_amount_gte`BIGINT`The total invoice amount threshold boundary if it triggered the threshold invoice.
threshold_reason_item_reasons`JSONB`Indicates which line items triggered a threshold invoice.
status_transitions_finalized_at`TIMESTAMP`The time that the invoice draft was finalized.
status_transitions_marked_uncollectible_at`TIMESTAMP`The time that the invoice was marked uncollectible.
status_transitions_paid_at`TIMESTAMP`The time that the invoice was paid.
status_transitions_voided_at`TIMESTAMP`The time that the invoice was voided.
customer_tax_ids_type`TEXT`The type of the tax ID, one of `eu_vat`, `br_cnpj`, `br_cpf`, `gb_vat`, `nz_gst`, `au_abn`, `in_gst`, `no_vat`, `za_vat`, `ch_vat`, `mx_rfc`, `sg_uen`, `ru_inn`, `ru_kpp`, `ca_bn`, `hk_br`, `es_cif`, `tw_vat`, `th_vat`, `jp_cn`, `jp_rn`, `li_uid`, `my_itn`, `us_ein`, `kr_brn`, `ca_qst`, `my_sst`, `sg_gst`, `ae_trn`, `cl_tin`, `sa_vat`, `id_npwp`, `my_frp`, or `unknown`
customer_tax_ids_value`TEXT`The value of the tax ID.
total_discount_amounts_amount`BIGINT`The amount, in %s, of the discount.
total_discount_amounts_discount_id`TEXT`The discount that was applied to get this discount amount.Discount
custom_fields_name`TEXT`The name of the custom field.
custom_fields_value`TEXT`The value of the custom field.
last_finalization_error_charge`TEXT`For card errors, the ID of the failed charge.
last_finalization_error_code`TEXT`For some errors that could be handled programmatically, a short string indicating the error code reported.
last_finalization_error_decline_code`TEXT`For card errors resulting from a card issuer decline, a short string indicating the card issuer's reason for the decline if they provide one.
last_finalization_error_doc_url`TEXT`A URL to more information about the error code reported.
last_finalization_error_message`TEXT`A human-readable message providing more details about the error. For card errors, these messages can be shown to your users.
last_finalization_error_param`TEXT`If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field.
last_finalization_error_payment_intent_id`TEXT`Payment_intent
last_finalization_error_payment_method_id`TEXT`Payment_method
last_finalization_error_payment_method_type`TEXT`If the error is specific to the type of payment method, the payment method type that had a problem. This field is only populated for invoice-related errors.
last_finalization_error_setup_intent_id`TEXT`Setup_intent
last_finalization_error_source`JSONB`
last_finalization_error_type`TEXT`The type of error returned. One of `api_connection_error`, `api_error`, `authentication_error`, `card_error`, `idempotency_error`, `invalid_request_error`, or `rate_limit_error`
total_tax_amounts_amount`BIGINT`The amount, in %s, of the tax.
total_tax_amounts_inclusive`BOOLEAN`Whether this tax amount is inclusive or exclusive.
total_tax_amounts_tax_rate_id`TEXT`The tax rate that was applied to get this tax amount.Tax_rate

Invoice_item

Sometimes you want to add a charge or credit to a customer, but actually charge or credit the customer's card only at the end of a regular billing cycle. This is useful for combining several charges (to minimize per-transaction fees), or for having Stripe tabulate your usage-based billing totals.

Related guide: Subscription Invoices.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
deleted`BOOLEAN`Always true for a deleted object
object`TEXT`String representing the object's type. Objects of the same type share the same value.
amount`BIGINT`Amount (in the `currency` specified) of the invoice item. This should always be equal to `unit_amount * quantity`.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
customer_id`TEXT`The ID of the customer who will be billed when this invoice item is billed.Customer
date`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users.
discountable`BOOLEAN`If true, discounts will apply to this invoice item. Always false for prorations.
discounts`TEXT[]`The discounts which apply to the invoice item. Item discounts are applied before invoice discounts. Use `expand[]=discounts` to expand each discount.
invoice_id`TEXT`The ID of the invoice this invoice item belongs to.Invoice
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
plan_id`TEXT`If the invoice item is a proration, the plan of the subscription that the proration was computed for.Plan
price_id`TEXT`The price of the invoice item.Price
proration`BOOLEAN`Whether the invoice item was created automatically as a proration adjustment when the customer switched plans.
quantity`BIGINT`Quantity of units for the invoice item. If the invoice item is a proration, the quantity of the subscription that the proration was computed for.
subscription_id`TEXT`The subscription that this invoice item has been created for, if any.Subscription
subscription_item_id`TEXT`The subscription item that this invoice item has been created for, if any.Subscription_item
unit_amount`BIGINT`Unit amount (in the `currency` specified) of the invoice item.
unit_amount_decimal`NUMERIC`Same as `unit_amount`, but contains a decimal value with at most 12 decimal places.
period_end`TIMESTAMP`End of the line item's billing period
period_start`TIMESTAMP`Start of the line item's billing period

Invoice_line_item_map

Links

ColumnData TypeDescriptionReferences
line_item_id (PK)`TEXT`Line_item
invoice_id`TEXT`Invoice

Line_item

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`The amount, in %s.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users.
discountable`BOOLEAN`If true, discounts will apply to this line item. Always false for prorations.
discounts`TEXT[]`The discounts applied to the invoice line item. Line item discounts are applied before invoice discounts. Use `expand[]=discounts` to expand each discount.
invoice_item`TEXT`The ID of the invoice item associated with this line item if any.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Note that for line items with `type=subscription` this will reflect the metadata of the subscription that caused the line item to be created.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
plan_id`TEXT`The plan of the subscription, if the line item is a subscription or a proration.Plan
price_id`TEXT`The price of the line item.Price
proration`BOOLEAN`Whether this is a proration.
quantity`BIGINT`The quantity of the subscription, if the line item is a subscription or a proration.
subscription_id`TEXT`The subscription that the invoice item pertains to, if any.Subscription
subscription_item_id`TEXT`The subscription item that generated this invoice item. Left empty if the line item is not an explicit result of a subscription.Subscription_item
type`TEXT`A string identifying the type of the source of this line item, either an `invoiceitem` or a `subscription`.
tax_amounts_amount`BIGINT`The amount, in %s, of the tax.
tax_amounts_inclusive`BOOLEAN`Whether this tax amount is inclusive or exclusive.
tax_amounts_tax_rate_id`TEXT`The tax rate that was applied to get this tax amount.Tax_rate
period_end`TIMESTAMP`End of the line item's billing period
period_start`TIMESTAMP`Start of the line item's billing period
discount_amounts_amount`BIGINT`The amount, in %s, of the discount.
discount_amounts_discount_id`TEXT`The discount that was applied to get this discount amount.Discount

Plan

You can now model subscriptions more flexibly using the Prices API. It replaces the Plans API and is backwards compatible to simplify your migration.

Plans define the base price, currency, and billing cycle for recurring purchases of products. Products help you track inventory or provisioning, and plans help you track pricing. Different physical goods or levels of service should be represented by products, and pricing options should be represented by plans. This approach lets you change prices without having to change your provisioning scheme.

For example, you might have a single "gold" product that has plans for $10/month, $100/year, €9/month, and €90/year.

Related guides: Set up a subscription and more about products and prices.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
deleted`BOOLEAN`Always true for a deleted object
object`TEXT`String representing the object's type. Objects of the same type share the same value.
active`BOOLEAN`Whether the plan can be used for new purchases.
aggregate_usage`TEXT`Specifies a usage aggregation strategy for plans of `usage_type=metered`. Allowed values are `sum` for summing up all usage during a period, `last_during_period` for using the last usage record reported within a period, `last_ever` for using the last usage record ever (across period bounds) or `max` which uses the usage record with the maximum reported usage during a period. Defaults to `sum`.
amount`BIGINT`The unit amount in %s to be charged, represented as a whole integer if possible. Only set if `billing_scheme=per_unit`.
amount_decimal`NUMERIC`The unit amount in %s to be charged, represented as a decimal string with at most 12 decimal places. Only set if `billing_scheme=per_unit`.
billing_scheme`TEXT`Describes how to compute the price per period. Either `per_unit` or `tiered`. `per_unit` indicates that the fixed amount (specified in `amount`) will be charged per unit in `quantity` (for plans with `usage_type=licensed`), or per unit of total usage (for plans with `usage_type=metered`). `tiered` indicates that the unit pricing will be computed using a tiering strategy as defined using the `tiers` and `tiers_mode` attributes.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
interval`TEXT`The frequency at which a subscription is billed. One of `day`, `week`, `month` or `year`.
interval_count`BIGINT`The number of intervals (specified in the `interval` attribute) between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
nickname`TEXT`A brief description of the plan, hidden from customers.
product_id`TEXT`The product whose pricing this plan determines.Product
tiers_mode`TEXT`Defines if the tiering price should be `graduated` or `volume` based. In `volume`-based tiering, the maximum quantity within a period determines the per unit price. In `graduated` tiering, pricing can change as the quantity grows.
trial_period_days`BIGINT`Default number of trial days when subscribing a customer to this plan using `trial_from_plan=true`.
usage_type`TEXT`Configures how the quantity per period should be determined. Can be either `metered` or `licensed`. `licensed` automatically bills the `quantity` set when adding it to a subscription. `metered` aggregates the total usage based on usage records. Defaults to `licensed`.
tiers_flat_amount`BIGINT`Price for the entire tier.
tiers_flat_amount_decimal`NUMERIC`Same as `flat_amount`, but contains a decimal value with at most 12 decimal places.
tiers_unit_amount`BIGINT`Per unit price for units relevant to the tier.
tiers_unit_amount_decimal`NUMERIC`Same as `unit_amount`, but contains a decimal value with at most 12 decimal places.
tiers_up_to`BIGINT`Up to and including to this quantity will be contained in the tier.
transform_usage_divide_by`BIGINT`Divide usage by this number.
transform_usage_round`TEXT`After division, either round the result `up` or `down`.

Price

Prices define the unit cost, currency, and (optional) billing cycle for both recurring and one-time purchases of products. Products help you track inventory or provisioning, and prices help you track payment terms. Different physical goods or levels of service should be represented by products, and pricing options should be represented by prices. This approach lets you change prices without having to change your provisioning scheme.

For example, you might have a single "gold" product that has prices for $10/month, $100/year, and €9 once.

Related guides: Set up a subscription, create an invoice, and more about products and prices.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
deleted`BOOLEAN`Always true for a deleted object
object`TEXT`String representing the object's type. Objects of the same type share the same value.
active`BOOLEAN`Whether the price can be used for new purchases.
billing_scheme`TEXT`Describes how to compute the price per period. Either `per_unit` or `tiered`. `per_unit` indicates that the fixed amount (specified in `unit_amount` or `unit_amount_decimal`) will be charged per unit in `quantity` (for prices with `usage_type=licensed`), or per unit of total usage (for prices with `usage_type=metered`). `tiered` indicates that the unit pricing will be computed using a tiering strategy as defined using the `tiers` and `tiers_mode` attributes.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
lookup_key`TEXT`A lookup key used to retrieve prices dynamically from a static string.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
nickname`TEXT`A brief description of the price, hidden from customers.
product_id`TEXT`The ID of the product this price is associated with.Product
tiers_mode`TEXT`Defines if the tiering price should be `graduated` or `volume` based. In `volume`-based tiering, the maximum quantity within a period determines the per unit price. In `graduated` tiering, pricing can change as the quantity grows.
type`TEXT`One of `one_time` or `recurring` depending on whether the price is for a one-time purchase or a recurring (subscription) purchase.
unit_amount`BIGINT`The unit amount in %s to be charged, represented as a whole integer if possible. Only set if `billing_scheme=per_unit`.
unit_amount_decimal`NUMERIC`The unit amount in %s to be charged, represented as a decimal string with at most 12 decimal places. Only set if `billing_scheme=per_unit`.
transform_quantity_divide_by`BIGINT`Divide usage by this number.
transform_quantity_round`TEXT`After division, either round the result `up` or `down`.
tiers_flat_amount`BIGINT`Price for the entire tier.
tiers_flat_amount_decimal`NUMERIC`Same as `flat_amount`, but contains a decimal value with at most 12 decimal places.
tiers_unit_amount`BIGINT`Per unit price for units relevant to the tier.
tiers_unit_amount_decimal`NUMERIC`Same as `unit_amount`, but contains a decimal value with at most 12 decimal places.
tiers_up_to`BIGINT`Up to and including to this quantity will be contained in the tier.
recurring_aggregate_usage`TEXT`Specifies a usage aggregation strategy for prices of `usage_type=metered`. Allowed values are `sum` for summing up all usage during a period, `last_during_period` for using the last usage record reported within a period, `last_ever` for using the last usage record ever (across period bounds) or `max` which uses the usage record with the maximum reported usage during a period. Defaults to `sum`.
recurring_interval`TEXT`The frequency at which a subscription is billed. One of `day`, `week`, `month` or `year`.
recurring_interval_count`BIGINT`The number of intervals (specified in the `interval` attribute) between subscription billings. For example, `interval=month` and `interval_count=3` bills every 3 months.
recurring_trial_period_days`BIGINT`Default number of trial days when subscribing a customer to this price using `trial_from_plan=true`.
recurring_usage_type`TEXT`Configures how the quantity per period should be determined. Can be either `metered` or `licensed`. `licensed` automatically bills the `quantity` set when adding it to a subscription. `metered` aggregates the total usage based on usage records. Defaults to `licensed`.

Promotion_code

A Promotion Code represents a customer-redeemable code for a coupon. It can be used to create multiple codes for a single coupon.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
active`BOOLEAN`Whether the promotion code is currently active. A promotion code is only active if the coupon is also valid.
code`TEXT`The customer-facing code. Regardless of case, this code must be unique across all active promotion codes for each customer.
coupon_id`TEXT`Coupon
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
customer_id`TEXT`The customer that this promotion code can be used by.Customer
expires_at`TIMESTAMP`Date at which the promotion code can no longer be redeemed.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
max_redemptions`BIGINT`Maximum number of times this promotion code can be redeemed.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
times_redeemed`BIGINT`Number of times this promotion code has been used.
restrictions_first_time_transaction`BOOLEAN`A Boolean indicating if the Promotion Code should only be redeemed for Customers without any successful payments or invoices
restrictions_minimum_amount`BIGINT`Minimum amount required to redeem this Promotion Code into a Coupon (e.g., a purchase must be $100 or more to work).
restrictions_minimum_amount_currency`TEXT`Three-letter ISO code for minimum_amount

Subscription

Subscriptions allow you to charge a customer on a recurring basis.

Related guide: Creating Subscriptions.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
application_fee_percent`NUMERIC`A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice subtotal that will be transferred to the application owner's Stripe account.
billing_cycle_anchor`TIMESTAMP`Determines the date of the first full invoice, and, for plans with `month` or `year` intervals, the day of the month for subsequent invoices.
cancel_at`TIMESTAMP`A date in the future at which the subscription will automatically get canceled
cancel_at_period_end`BOOLEAN`If the subscription has been canceled with the `at_period_end` flag set to `true`, `cancel_at_period_end` on the subscription will be true. You can use this attribute to determine whether a subscription that has a status of active is scheduled to be canceled at the end of the current period.
canceled_at`TIMESTAMP`If the subscription has been canceled, the date of that cancellation. If the subscription was canceled with `cancel_at_period_end`, `canceled_at` will reflect the time of the most recent update request, not the end of the subscription period when the subscription is automatically moved to a canceled state.
collection_method`TEXT`Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this subscription at the end of the cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
current_period_end`TIMESTAMP`End of the current period that the subscription has been invoiced for. At the end of this period, a new invoice will be created.
current_period_start`TIMESTAMP`Start of the current period that the subscription has been invoiced for.
customer_id`TEXT`ID of the customer who owns the subscription.Customer
days_until_due`BIGINT`Number of days a customer has to pay invoices generated by this subscription. This value will be `null` for subscriptions where `collection_method=charge_automatically`.
default_payment_method_id`TEXT`ID of the default payment method for the subscription. It must belong to the customer associated with the subscription. This takes precedence over `default_source`. If neither are set, invoices will use the customer's invoice_settings.default_payment_method or default_source.Payment_method
discount_id`TEXT`Describes the current discount applied to this subscription, if there is one. When billing, a discount applied to a subscription overrides a discount applied on a customer-wide basis.Discount
ended_at`TIMESTAMP`If the subscription has ended, the date the subscription ended.
latest_invoice_id`TEXT`The most recent invoice this subscription has generated.Invoice
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
next_pending_invoice_item_invoice`TIMESTAMP`Specifies the approximate timestamp on which any pending invoice items will be billed according to the schedule provided at `pending_invoice_item_interval`.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
pending_setup_intent_id`TEXT`You can use this SetupIntent to collect user authentication when creating a subscription without immediate payment or updating a subscription's payment method, allowing you to optimize for off-session payments. Learn more in the SCA Migration Guide.Setup_intent
schedule_id`TEXT`The schedule attached to the subscriptionSubscription_schedule
start_date`TIMESTAMP`Date when the subscription was first created. The date might differ from the `created` date due to backdating.
status`TEXT`Possible values are `incomplete`, `incomplete_expired`, `trialing`, `active`, `past_due`, `canceled`, or `unpaid`.

For `collection_method=charge_automatically` a subscription moves into `incomplete` if the initial payment attempt fails. A subscription in this state can only have metadata and default_source updated. Once the first invoice is paid, the subscription moves into an `active` state. If the first invoice is not paid within 23 hours, the subscription transitions to `incomplete_expired`. This is a terminal state, the open invoice will be voided and no further invoices will be generated.

A subscription that is currently in a trial period is `trialing` and moves to `active` when the trial period is over.

If subscription `collection_method=charge_automatically` it becomes `past_due` when payment to renew it fails and `canceled` or `unpaid` (depending on your subscriptions settings) when Stripe has exhausted all payment retry attempts.

If subscription `collection_method=send_invoice` it becomes `past_due` when its invoice is not paid by the due date, and `canceled` or `unpaid` if it is still not paid by an additional deadline after that. Note that when a subscription has a status of `unpaid`, no subsequent invoices will be attempted (invoices will be created, but then immediately automatically closed). After receiving updated payment information from a customer, you may choose to reopen and pay their closed invoices.
trial_end`TIMESTAMP`If the subscription has a trial, the end of that trial.
trial_start`TIMESTAMP`If the subscription has a trial, the beginning of that trial.
billing_thresholds_amount_gte`BIGINT`Monetary threshold that triggers the subscription to create an invoice
billing_thresholds_reset_billing_cycle_anchor`BOOLEAN`Indicates if the `billing_cycle_anchor` should be reset when a threshold is reached. If true, `billing_cycle_anchor` will be updated to the date/time the threshold was last reached; otherwise, the value will remain unchanged. This value may not be `true` if the subscription contains items with plans that have `aggregate_usage=last_ever`.
pending_invoice_item_interval_interval`TEXT`Specifies invoicing frequency. Either `day`, `week`, `month` or `year`.
pending_invoice_item_interval_interval_count`BIGINT`The number of intervals between invoices. For example, `interval=month` and `interval_count=3` bills every 3 months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks).
pending_update_billing_cycle_anchor`TIMESTAMP`If the update is applied, determines the date of the first full invoice, and, for plans with `month` or `year` intervals, the day of the month for subsequent invoices.
pending_update_expires_at`TIMESTAMP`The point after which the changes reflected by this update will be discarded and no longer applied.
pending_update_subscription_items`JSONB`List of subscription items, each with an attached plan, that will be set if the update is applied.
pending_update_trial_end`TIMESTAMP`Unix timestamp representing the end of the trial period the customer will get before being charged for the first time, if the update is applied.
pending_update_trial_from_plan`BOOLEAN`Indicates if a plan's `trial_period_days` should be applied to the subscription. Setting `trial_end` per subscription is preferred, and this defaults to `false`. Setting this flag to `true` together with `trial_end` is not allowed.
transfer_data_amount_percent`NUMERIC`A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice subtotal that will be transferred to the destination account. By default, the entire amount is transferred to the destination.
transfer_data_destination_id`TEXT`The account where funds from the payment will be transferred to upon payment success.Account
pause_collection_behavior`TEXT`The payment collection behavior for this subscription while paused. One of `keep_as_draft`, `mark_uncollectible`, or `void`.
pause_collection_resumes_at`TIMESTAMP`The time after which the subscription will resume collecting payments.

Subscription_item

Subscription items allow you to create customer subscriptions with more than one plan, making it easy to represent complex billing relationships.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
deleted`BOOLEAN`Always true for a deleted object
object`TEXT`String representing the object's type. Objects of the same type share the same value.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
plan_id`TEXT`Plan
price_id`TEXT`Price
quantity`BIGINT`The quantity of the plan to which the customer should be subscribed.
subscription_id`TEXT`The `subscription` this `subscription_item` belongs to.Subscription
billing_thresholds_usage_gte`BIGINT`Usage threshold that triggers the subscription to create an invoice

Subscription_schedule

A subscription schedule allows you to create and manage the lifecycle of a subscription by predefining expected changes.

Related guide: Subscription Schedules.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
canceled_at`TIMESTAMP`Time at which the subscription schedule was canceled. Measured in seconds since the Unix epoch.
completed_at`TIMESTAMP`Time at which the subscription schedule was completed. Measured in seconds since the Unix epoch.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
customer_id`TEXT`ID of the customer who owns the subscription schedule.Customer
end_behavior`TEXT`Behavior of the subscription schedule and underlying subscription when it ends. Possible values are `release` and `cancel`.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
released_at`TIMESTAMP`Time at which the subscription schedule was released. Measured in seconds since the Unix epoch.
released_subscription`TEXT`ID of the subscription once managed by the subscription schedule (if it is released).
status`TEXT`The present status of the subscription schedule. Possible values are `not_started`, `active`, `completed`, `released`, and `canceled`. You can read more about the different states in our behavior guide.
subscription_id`TEXT`ID of the subscription managed by the subscription schedule.Subscription
default_settings_application_fee_percent`NUMERIC`A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice subtotal that will be transferred to the application owner's Stripe account during this phase of the schedule.
default_settings_billing_cycle_anchor`TEXT`Possible values are `phase_start` or `automatic`. If `phase_start` then billing cycle anchor of the subscription is set to the start of the phase when entering the phase. If `automatic` then the billing cycle anchor is automatically modified as needed when entering the phase. For more information, see the billing cycle documentation.
default_settings_billing_thresholds`JSONB`Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period
default_settings_collection_method`TEXT`Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions.
default_settings_default_payment_method_id`TEXT`ID of the default payment method for the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings.Payment_method
default_settings_invoice_settings`JSONB`The subscription schedule's default invoice settings.
default_settings_transfer_data`JSONB`The account (if any) the associated subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices.
phases_add_invoice_items`JSONB`A list of prices and quantities that will generate invoice items appended to the first invoice for this phase.
phases_application_fee_percent`NUMERIC`A non-negative decimal between 0 and 100, with at most two decimal places. This represents the percentage of the subscription invoice subtotal that will be transferred to the application owner's Stripe account during this phase of the schedule.
phases_billing_cycle_anchor`TEXT`Possible values are `phase_start` or `automatic`. If `phase_start` then billing cycle anchor of the subscription is set to the start of the phase when entering the phase. If `automatic` then the billing cycle anchor is automatically modified as needed when entering the phase. For more information, see the billing cycle documentation.
phases_billing_thresholds`JSONB`Define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period
phases_collection_method`TEXT`Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay the underlying subscription at the end of each billing cycle using the default source attached to the customer. When sending an invoice, Stripe will email your customer an invoice with payment instructions.
phases_coupon_id`TEXT`ID of the coupon to use during this phase of the subscription schedule.Coupon
phases_default_payment_method_id`TEXT`ID of the default payment method for the subscription schedule. It must belong to the customer associated with the subscription schedule. If not set, invoices will use the default payment method in the customer's invoice settings.Payment_method
phases_default_tax_rates`JSONB`The default tax rates to apply to the subscription during this phase of the subscription schedule.
phases_end_date`TIMESTAMP`The end of this phase of the subscription schedule.
phases_invoice_settings`JSONB`The invoice settings applicable during this phase.
phases_items`JSONB`Subscription items to configure the subscription to during this phase of the subscription schedule.
phases_proration_behavior`TEXT`If the subscription schedule will prorate when transitioning to this phase. Possible values are `create_prorations` and `none`.
phases_start_date`TIMESTAMP`The start of this phase of the subscription schedule.
phases_transfer_data`JSONB`The account (if any) the associated subscription's payments will be attributed to for tax reporting, and where funds from each payment will be transferred to for each of the subscription's invoices.
phases_trial_end`TIMESTAMP`When the trial ends within the phase.
current_phase_end_date`TIMESTAMP`The end of this phase of the subscription schedule.
current_phase_start_date`TIMESTAMP`The start of this phase of the subscription schedule.

Usage_record

Usage records allow you to report customer usage and metrics to Stripe for metered billing of subscription prices.

Related guide: Metered Billing.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
quantity`BIGINT`The usage quantity for the specified date.
subscription_item_id`TEXT`The ID of the subscription item this usage record contains data for.Subscription_item
timestamp`TIMESTAMP`The timestamp when this usage occurred.

Usage_record_summary

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
invoice_id`TEXT`The invoice in which this usage period has been billed for.Invoice
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
subscription_item_id`TEXT`The ID of the subscription item this summary is describing.Subscription_item
total_usage`BIGINT`The total usage within this usage period.
period_end`TIMESTAMP`The end date of this usage period. All usage up to and including this point in time is included.
period_start`TIMESTAMP`The start date of this usage period. All usage after this point in time is included.

Upcoming Invoices

Sync Inc will capture and store temporary objects that are created by Stripe in anticipation of a subscription renewing. To make these objects easy to query, Sync Inc will store these objects using the `customer_id` as the primary key in one set ot tables and the `subscription_id` as the primary key in the other.

Upcoming_customer_invoice

Invoices are statements of amounts owed by a customer, and are either generated one-off, or generated periodically from a subscription.

They contain invoice items, and proration adjustments that may be caused by subscription upgrades/downgrades (if necessary).

If your invoice is configured to be billed through automatic charges, Stripe automatically finalizes your invoice and attempts payment. Note that finalizing the invoice, when automatic, does not happen immediately as the invoice is created. Stripe waits until one hour after the last webhook was successfully sent (or the last webhook timed out after failing). If you (and the platforms you may have connected to) have no webhooks configured, Stripe waits one hour after creation to finalize the invoice.

If your invoice is configured to be billed by sending an email, then based on your email settings, Stripe will email the invoice to your customer and await payment. These emails can contain a link to a hosted page to pay the invoice.

Stripe applies any customer credit on the account before determining the amount due for the invoice (i.e., the amount that will be actually charged). If the amount due for the invoice is less than Stripe's minimum allowed charge per currency, the invoice is automatically marked paid, and we add the amount due to the customer's credit balance which is applied to the next invoice.

More details on the customer's credit balance are here.

Related guide: Send Invoices to Customers.

Links

ColumnData TypeDescriptionReferences
customer_id (PK)`TEXT`The ID of the customer who will be billed.Customer
deleted`BOOLEAN`Always true for a deleted object
object`TEXT`String representing the object's type. Objects of the same type share the same value.
account_country`TEXT`The country of the business associated with this invoice, most often the business creating the invoice.
account_name`TEXT`The public name of the business associated with this invoice, most often the business creating the invoice.
account_tax_ids`TEXT[]`The account tax IDs associated with the invoice. Only editable when the invoice is a draft.
amount_due`BIGINT`Final amount due at this time for this invoice. If the invoice's total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the `amount_due` may be 0. If there is a positive `starting_balance` for the invoice (the customer owes money), the `amount_due` will also take that into account. The charge that gets generated for the invoice will be for the amount specified in `amount_due`.
amount_paid`BIGINT`The amount, in %s, that was paid.
amount_remaining`BIGINT`The amount remaining, in %s, that is due.
application_fee_amount`BIGINT`The fee in %s that will be applied to the invoice and transferred to the application owner's Stripe account when the invoice is paid.
attempt_count`BIGINT`Number of payment attempts made for this invoice, from the perspective of the payment retry schedule. Any payment attempt counts as the first attempt, and subsequently only automatic retries increment the attempt count. In other words, manual payment attempts after the first attempt do not affect the retry schedule.
attempted`BOOLEAN`Whether an attempt has been made to pay the invoice. An invoice is not attempted until 1 hour after the `invoice.created` webhook, for example, so you might not want to display that invoice as unpaid to your users.
auto_advance`BOOLEAN`Controls whether Stripe will perform automatic collection of the invoice. When `false`, the invoice's state will not automatically advance without an explicit action.
billing_reason`TEXT`Indicates the reason why the invoice was created. `subscription_cycle` indicates an invoice created by a subscription advancing into a new period. `subscription_create` indicates an invoice created due to creating a subscription. `subscription_update` indicates an invoice created due to updating a subscription. `subscription` is set for all old invoices to indicate either a change to a subscription or a period advancement. `manual` is set for all invoices unrelated to a subscription (for example: created via the invoice editor). The `upcoming` value is reserved for simulated invoices per the upcoming invoice endpoint. `subscription_threshold` indicates an invoice created due to a billing threshold being reached.
charge_id`TEXT`ID of the latest charge generated for this invoice, if any.Charge
collection_method`TEXT`Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this invoice using the default source attached to the customer. When sending an invoice, Stripe will email this invoice to the customer with payment instructions.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
customer_email`TEXT`The customer's email. Until the invoice is finalized, this field will equal `customer.email`. Once the invoice is finalized, this field will no longer be updated.
customer_name`TEXT`The customer's name. Until the invoice is finalized, this field will equal `customer.name`. Once the invoice is finalized, this field will no longer be updated.
customer_phone`TEXT`The customer's phone number. Until the invoice is finalized, this field will equal `customer.phone`. Once the invoice is finalized, this field will no longer be updated.
customer_tax_exempt`TEXT`The customer's tax exempt status. Until the invoice is finalized, this field will equal `customer.tax_exempt`. Once the invoice is finalized, this field will no longer be updated.
default_payment_method_id`TEXT`ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings.Payment_method
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard.
discount_id`TEXT`Describes the current discount applied to this invoice, if there is one. Not populated if there are multiple discounts.Discount
discounts`TEXT[]`The discounts applied to the invoice. Line item discounts are applied before invoice discounts. Use `expand[]=discounts` to expand each discount.
due_date`TIMESTAMP`The date on which payment for this invoice is due. This value will be `null` for invoices where `collection_method=charge_automatically`.
ending_balance`BIGINT`Ending customer balance after the invoice is finalized. Invoices are finalized approximately an hour after successful webhook delivery or when payment collection is attempted for the invoice. If the invoice has not been finalized yet, this will be null.
footer`TEXT`Footer displayed on the invoice.
hosted_invoice_url`TEXT`The URL for the hosted invoice page, which allows customers to view and pay an invoice. If the invoice has not been finalized yet, this will be null.
invoice_pdf`TEXT`The link to download the PDF for the invoice. If the invoice has not been finalized yet, this will be null.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
next_payment_attempt`TIMESTAMP`The time at which payment will next be attempted. This value will be `null` for invoices where `collection_method=send_invoice`.
number`TEXT`A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer's unique invoice_prefix if it is specified.
on_behalf_of_id`TEXT`The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the Invoices with Connect documentation for details.Account
paid`BOOLEAN`Whether payment was successfully collected for this invoice. An invoice can be paid (most commonly) with a charge or with credit from the customer's account balance.
payment_intent_id`TEXT`The PaymentIntent associated with this invoice. The PaymentIntent is generated when the invoice is finalized, and can then be used to pay the invoice. Note that voiding an invoice will cancel the PaymentIntent.Payment_intent
period_end`TIMESTAMP`End of the usage period during which invoice items were added to this invoice.
period_start`TIMESTAMP`Start of the usage period during which invoice items were added to this invoice.
post_payment_credit_notes_amount`BIGINT`Total amount of all post-payment credit notes issued for this invoice.
pre_payment_credit_notes_amount`BIGINT`Total amount of all pre-payment credit notes issued for this invoice.
receipt_number`TEXT`This is the transaction number that appears on email receipts sent for this invoice.
starting_balance`BIGINT`Starting customer balance before the invoice is finalized. If the invoice has not been finalized yet, this will be the current customer balance.
statement_descriptor`TEXT`Extra information about an invoice for the customer's credit card statement.
status`TEXT`The status of the invoice, one of `draft`, `open`, `paid`, `uncollectible`, or `void`. Learn more
subscription_id`TEXT`The subscription that this invoice was prepared for, if any.Subscription
subscription_proration_date`BIGINT`Only set for upcoming invoices that preview prorations. The time used to calculate prorations.
subtotal`BIGINT`Total of all subscriptions, invoice items, and prorations on the invoice before any invoice level discount or tax is applied. Item discounts are already incorporated
tax`BIGINT`The amount of tax on this invoice. This is the sum of all the tax amounts on this invoice.
total`BIGINT`Total after discounts and taxes.
webhooks_delivered_at`TIMESTAMP`Invoices are automatically paid or sent 1 hour after webhooks are delivered, or until all webhook delivery attempts have been exhausted. This field tracks the time when webhooks for this invoice were successfully delivered. If the invoice had no webhooks to deliver, this will be set while the invoice is being created.
customer_shipping_address`JSONB`
customer_shipping_carrier`TEXT`The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
customer_shipping_name`TEXT`Recipient name.
customer_shipping_phone`TEXT`Recipient phone (including extension).
customer_shipping_tracking_number`TEXT`The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.
transfer_data_amount`BIGINT`The amount in %s that will be transferred to the destination account when the invoice is paid. By default, the entire amount is transferred to the destination.
transfer_data_destination_id`TEXT`The account where funds from the payment will be transferred to upon payment success.Account
customer_address_city`TEXT`City, district, suburb, town, or village.
customer_address_country`TEXT`Two-letter country code (ISO 3166-1 alpha-2).
customer_address_line1`TEXT`Address line 1 (e.g., street, PO Box, or company name).
customer_address_line2`TEXT`Address line 2 (e.g., apartment, suite, unit, or building).
customer_address_postal_code`TEXT`ZIP or postal code.
customer_address_state`TEXT`State, county, province, or region.
payment_settings_payment_method_options`JSONB`Payment-method-specific configuration to provide to the invoice’s PaymentIntent.
payment_settings_payment_method_types`TEXT[]`The list of payment method types (e.g. card) to provide to the invoice’s PaymentIntent. If not set, Stripe attempts to automatically determine the types to use by looking at the invoice’s default payment method, the subscription’s default payment method, the customer’s default payment method, and your invoice template settings.
threshold_reason_amount_gte`BIGINT`The total invoice amount threshold boundary if it triggered the threshold invoice.
threshold_reason_item_reasons`JSONB`Indicates which line items triggered a threshold invoice.
status_transitions_finalized_at`TIMESTAMP`The time that the invoice draft was finalized.
status_transitions_marked_uncollectible_at`TIMESTAMP`The time that the invoice was marked uncollectible.
status_transitions_paid_at`TIMESTAMP`The time that the invoice was paid.
status_transitions_voided_at`TIMESTAMP`The time that the invoice was voided.
customer_tax_ids_type`TEXT`The type of the tax ID, one of `eu_vat`, `br_cnpj`, `br_cpf`, `gb_vat`, `nz_gst`, `au_abn`, `in_gst`, `no_vat`, `za_vat`, `ch_vat`, `mx_rfc`, `sg_uen`, `ru_inn`, `ru_kpp`, `ca_bn`, `hk_br`, `es_cif`, `tw_vat`, `th_vat`, `jp_cn`, `jp_rn`, `li_uid`, `my_itn`, `us_ein`, `kr_brn`, `ca_qst`, `my_sst`, `sg_gst`, `ae_trn`, `cl_tin`, `sa_vat`, `id_npwp`, `my_frp`, or `unknown`
customer_tax_ids_value`TEXT`The value of the tax ID.
total_discount_amounts_amount`BIGINT`The amount, in %s, of the discount.
total_discount_amounts_discount_id`TEXT`The discount that was applied to get this discount amount.Discount
custom_fields_name`TEXT`The name of the custom field.
custom_fields_value`TEXT`The value of the custom field.
last_finalization_error_charge`TEXT`For card errors, the ID of the failed charge.
last_finalization_error_code`TEXT`For some errors that could be handled programmatically, a short string indicating the error code reported.
last_finalization_error_decline_code`TEXT`For card errors resulting from a card issuer decline, a short string indicating the card issuer's reason for the decline if they provide one.
last_finalization_error_doc_url`TEXT`A URL to more information about the error code reported.
last_finalization_error_message`TEXT`A human-readable message providing more details about the error. For card errors, these messages can be shown to your users.
last_finalization_error_param`TEXT`If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field.
last_finalization_error_payment_intent_id`TEXT`Payment_intent
last_finalization_error_payment_method_id`TEXT`Payment_method
last_finalization_error_payment_method_type`TEXT`If the error is specific to the type of payment method, the payment method type that had a problem. This field is only populated for invoice-related errors.
last_finalization_error_setup_intent_id`TEXT`Setup_intent
last_finalization_error_source`JSONB`
last_finalization_error_type`TEXT`The type of error returned. One of `api_connection_error`, `api_error`, `authentication_error`, `card_error`, `idempotency_error`, `invalid_request_error`, or `rate_limit_error`
total_tax_amounts_amount`BIGINT`The amount, in %s, of the tax.
total_tax_amounts_inclusive`BOOLEAN`Whether this tax amount is inclusive or exclusive.
total_tax_amounts_tax_rate_id`TEXT`The tax rate that was applied to get this tax amount.Tax_rate

Upcoming_customer_invoice_line_item_map

Links

ColumnData TypeDescriptionReferences
upcoming_line_item_id (PK)`TEXT`Upcoming_line_item
customer_id`TEXT`

Upcoming_line_item

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`The amount, in %s.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users.
discountable`BOOLEAN`If true, discounts will apply to this line item. Always false for prorations.
discounts`TEXT[]`The discounts applied to the invoice line item. Line item discounts are applied before invoice discounts. Use `expand[]=discounts` to expand each discount.
invoice_item`TEXT`The ID of the invoice item associated with this line item if any.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Note that for line items with `type=subscription` this will reflect the metadata of the subscription that caused the line item to be created.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
plan_id`TEXT`The plan of the subscription, if the line item is a subscription or a proration.Plan
price_id`TEXT`The price of the line item.Price
proration`BOOLEAN`Whether this is a proration.
quantity`BIGINT`The quantity of the subscription, if the line item is a subscription or a proration.
subscription_id`TEXT`The subscription that the invoice item pertains to, if any.Subscription
subscription_item_id`TEXT`The subscription item that generated this invoice item. Left empty if the line item is not an explicit result of a subscription.Subscription_item
type`TEXT`A string identifying the type of the source of this line item, either an `invoiceitem` or a `subscription`.
tax_amounts_amount`BIGINT`The amount, in %s, of the tax.
tax_amounts_inclusive`BOOLEAN`Whether this tax amount is inclusive or exclusive.
tax_amounts_tax_rate_id`TEXT`The tax rate that was applied to get this tax amount.Tax_rate
period_end`TIMESTAMP`End of the line item's billing period
period_start`TIMESTAMP`Start of the line item's billing period
discount_amounts_amount`BIGINT`The amount, in %s, of the discount.
discount_amounts_discount_id`TEXT`The discount that was applied to get this discount amount.Discount

Upcoming_subscription_invoice

Invoices are statements of amounts owed by a customer, and are either generated one-off, or generated periodically from a subscription.

They contain invoice items, and proration adjustments that may be caused by subscription upgrades/downgrades (if necessary).

If your invoice is configured to be billed through automatic charges, Stripe automatically finalizes your invoice and attempts payment. Note that finalizing the invoice, when automatic, does not happen immediately as the invoice is created. Stripe waits until one hour after the last webhook was successfully sent (or the last webhook timed out after failing). If you (and the platforms you may have connected to) have no webhooks configured, Stripe waits one hour after creation to finalize the invoice.

If your invoice is configured to be billed by sending an email, then based on your email settings, Stripe will email the invoice to your customer and await payment. These emails can contain a link to a hosted page to pay the invoice.

Stripe applies any customer credit on the account before determining the amount due for the invoice (i.e., the amount that will be actually charged). If the amount due for the invoice is less than Stripe's minimum allowed charge per currency, the invoice is automatically marked paid, and we add the amount due to the customer's credit balance which is applied to the next invoice.

More details on the customer's credit balance are here.

Related guide: Send Invoices to Customers.

Links

ColumnData TypeDescriptionReferences
subscription_id (PK)`TEXT`The subscription that this invoice was prepared for, if any.Subscription
deleted`BOOLEAN`Always true for a deleted object
object`TEXT`String representing the object's type. Objects of the same type share the same value.
account_country`TEXT`The country of the business associated with this invoice, most often the business creating the invoice.
account_name`TEXT`The public name of the business associated with this invoice, most often the business creating the invoice.
account_tax_ids`TEXT[]`The account tax IDs associated with the invoice. Only editable when the invoice is a draft.
amount_due`BIGINT`Final amount due at this time for this invoice. If the invoice's total is smaller than the minimum charge amount, for example, or if there is account credit that can be applied to the invoice, the `amount_due` may be 0. If there is a positive `starting_balance` for the invoice (the customer owes money), the `amount_due` will also take that into account. The charge that gets generated for the invoice will be for the amount specified in `amount_due`.
amount_paid`BIGINT`The amount, in %s, that was paid.
amount_remaining`BIGINT`The amount remaining, in %s, that is due.
application_fee_amount`BIGINT`The fee in %s that will be applied to the invoice and transferred to the application owner's Stripe account when the invoice is paid.
attempt_count`BIGINT`Number of payment attempts made for this invoice, from the perspective of the payment retry schedule. Any payment attempt counts as the first attempt, and subsequently only automatic retries increment the attempt count. In other words, manual payment attempts after the first attempt do not affect the retry schedule.
attempted`BOOLEAN`Whether an attempt has been made to pay the invoice. An invoice is not attempted until 1 hour after the `invoice.created` webhook, for example, so you might not want to display that invoice as unpaid to your users.
auto_advance`BOOLEAN`Controls whether Stripe will perform automatic collection of the invoice. When `false`, the invoice's state will not automatically advance without an explicit action.
billing_reason`TEXT`Indicates the reason why the invoice was created. `subscription_cycle` indicates an invoice created by a subscription advancing into a new period. `subscription_create` indicates an invoice created due to creating a subscription. `subscription_update` indicates an invoice created due to updating a subscription. `subscription` is set for all old invoices to indicate either a change to a subscription or a period advancement. `manual` is set for all invoices unrelated to a subscription (for example: created via the invoice editor). The `upcoming` value is reserved for simulated invoices per the upcoming invoice endpoint. `subscription_threshold` indicates an invoice created due to a billing threshold being reached.
charge_id`TEXT`ID of the latest charge generated for this invoice, if any.Charge
collection_method`TEXT`Either `charge_automatically`, or `send_invoice`. When charging automatically, Stripe will attempt to pay this invoice using the default source attached to the customer. When sending an invoice, Stripe will email this invoice to the customer with payment instructions.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
customer_id`TEXT`The ID of the customer who will be billed.Customer
customer_email`TEXT`The customer's email. Until the invoice is finalized, this field will equal `customer.email`. Once the invoice is finalized, this field will no longer be updated.
customer_name`TEXT`The customer's name. Until the invoice is finalized, this field will equal `customer.name`. Once the invoice is finalized, this field will no longer be updated.
customer_phone`TEXT`The customer's phone number. Until the invoice is finalized, this field will equal `customer.phone`. Once the invoice is finalized, this field will no longer be updated.
customer_tax_exempt`TEXT`The customer's tax exempt status. Until the invoice is finalized, this field will equal `customer.tax_exempt`. Once the invoice is finalized, this field will no longer be updated.
default_payment_method_id`TEXT`ID of the default payment method for the invoice. It must belong to the customer associated with the invoice. If not set, defaults to the subscription's default payment method, if any, or to the default payment method in the customer's invoice settings.Payment_method
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users. Referenced as 'memo' in the Dashboard.
discount_id`TEXT`Describes the current discount applied to this invoice, if there is one. Not populated if there are multiple discounts.Discount
discounts`TEXT[]`The discounts applied to the invoice. Line item discounts are applied before invoice discounts. Use `expand[]=discounts` to expand each discount.
due_date`TIMESTAMP`The date on which payment for this invoice is due. This value will be `null` for invoices where `collection_method=charge_automatically`.
ending_balance`BIGINT`Ending customer balance after the invoice is finalized. Invoices are finalized approximately an hour after successful webhook delivery or when payment collection is attempted for the invoice. If the invoice has not been finalized yet, this will be null.
footer`TEXT`Footer displayed on the invoice.
hosted_invoice_url`TEXT`The URL for the hosted invoice page, which allows customers to view and pay an invoice. If the invoice has not been finalized yet, this will be null.
invoice_pdf`TEXT`The link to download the PDF for the invoice. If the invoice has not been finalized yet, this will be null.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
next_payment_attempt`TIMESTAMP`The time at which payment will next be attempted. This value will be `null` for invoices where `collection_method=send_invoice`.
number`TEXT`A unique, identifying string that appears on emails sent to the customer for this invoice. This starts with the customer's unique invoice_prefix if it is specified.
on_behalf_of_id`TEXT`The account (if any) for which the funds of the invoice payment are intended. If set, the invoice will be presented with the branding and support information of the specified account. See the Invoices with Connect documentation for details.Account
paid`BOOLEAN`Whether payment was successfully collected for this invoice. An invoice can be paid (most commonly) with a charge or with credit from the customer's account balance.
payment_intent_id`TEXT`The PaymentIntent associated with this invoice. The PaymentIntent is generated when the invoice is finalized, and can then be used to pay the invoice. Note that voiding an invoice will cancel the PaymentIntent.Payment_intent
period_end`TIMESTAMP`End of the usage period during which invoice items were added to this invoice.
period_start`TIMESTAMP`Start of the usage period during which invoice items were added to this invoice.
post_payment_credit_notes_amount`BIGINT`Total amount of all post-payment credit notes issued for this invoice.
pre_payment_credit_notes_amount`BIGINT`Total amount of all pre-payment credit notes issued for this invoice.
receipt_number`TEXT`This is the transaction number that appears on email receipts sent for this invoice.
starting_balance`BIGINT`Starting customer balance before the invoice is finalized. If the invoice has not been finalized yet, this will be the current customer balance.
statement_descriptor`TEXT`Extra information about an invoice for the customer's credit card statement.
status`TEXT`The status of the invoice, one of `draft`, `open`, `paid`, `uncollectible`, or `void`. Learn more
subscription_proration_date`BIGINT`Only set for upcoming invoices that preview prorations. The time used to calculate prorations.
subtotal`BIGINT`Total of all subscriptions, invoice items, and prorations on the invoice before any invoice level discount or tax is applied. Item discounts are already incorporated
tax`BIGINT`The amount of tax on this invoice. This is the sum of all the tax amounts on this invoice.
total`BIGINT`Total after discounts and taxes.
webhooks_delivered_at`TIMESTAMP`Invoices are automatically paid or sent 1 hour after webhooks are delivered, or until all webhook delivery attempts have been exhausted. This field tracks the time when webhooks for this invoice were successfully delivered. If the invoice had no webhooks to deliver, this will be set while the invoice is being created.
customer_shipping_address`JSONB`
customer_shipping_carrier`TEXT`The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
customer_shipping_name`TEXT`Recipient name.
customer_shipping_phone`TEXT`Recipient phone (including extension).
customer_shipping_tracking_number`TEXT`The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.
transfer_data_amount`BIGINT`The amount in %s that will be transferred to the destination account when the invoice is paid. By default, the entire amount is transferred to the destination.
transfer_data_destination_id`TEXT`The account where funds from the payment will be transferred to upon payment success.Account
customer_address_city`TEXT`City, district, suburb, town, or village.
customer_address_country`TEXT`Two-letter country code (ISO 3166-1 alpha-2).
customer_address_line1`TEXT`Address line 1 (e.g., street, PO Box, or company name).
customer_address_line2`TEXT`Address line 2 (e.g., apartment, suite, unit, or building).
customer_address_postal_code`TEXT`ZIP or postal code.
customer_address_state`TEXT`State, county, province, or region.
payment_settings_payment_method_options`JSONB`Payment-method-specific configuration to provide to the invoice’s PaymentIntent.
payment_settings_payment_method_types`TEXT[]`The list of payment method types (e.g. card) to provide to the invoice’s PaymentIntent. If not set, Stripe attempts to automatically determine the types to use by looking at the invoice’s default payment method, the subscription’s default payment method, the customer’s default payment method, and your invoice template settings.
threshold_reason_amount_gte`BIGINT`The total invoice amount threshold boundary if it triggered the threshold invoice.
threshold_reason_item_reasons`JSONB`Indicates which line items triggered a threshold invoice.
status_transitions_finalized_at`TIMESTAMP`The time that the invoice draft was finalized.
status_transitions_marked_uncollectible_at`TIMESTAMP`The time that the invoice was marked uncollectible.
status_transitions_paid_at`TIMESTAMP`The time that the invoice was paid.
status_transitions_voided_at`TIMESTAMP`The time that the invoice was voided.
customer_tax_ids_type`TEXT`The type of the tax ID, one of `eu_vat`, `br_cnpj`, `br_cpf`, `gb_vat`, `nz_gst`, `au_abn`, `in_gst`, `no_vat`, `za_vat`, `ch_vat`, `mx_rfc`, `sg_uen`, `ru_inn`, `ru_kpp`, `ca_bn`, `hk_br`, `es_cif`, `tw_vat`, `th_vat`, `jp_cn`, `jp_rn`, `li_uid`, `my_itn`, `us_ein`, `kr_brn`, `ca_qst`, `my_sst`, `sg_gst`, `ae_trn`, `cl_tin`, `sa_vat`, `id_npwp`, `my_frp`, or `unknown`
customer_tax_ids_value`TEXT`The value of the tax ID.
total_discount_amounts_amount`BIGINT`The amount, in %s, of the discount.
total_discount_amounts_discount_id`TEXT`The discount that was applied to get this discount amount.Discount
custom_fields_name`TEXT`The name of the custom field.
custom_fields_value`TEXT`The value of the custom field.
last_finalization_error_charge`TEXT`For card errors, the ID of the failed charge.
last_finalization_error_code`TEXT`For some errors that could be handled programmatically, a short string indicating the error code reported.
last_finalization_error_decline_code`TEXT`For card errors resulting from a card issuer decline, a short string indicating the card issuer's reason for the decline if they provide one.
last_finalization_error_doc_url`TEXT`A URL to more information about the error code reported.
last_finalization_error_message`TEXT`A human-readable message providing more details about the error. For card errors, these messages can be shown to your users.
last_finalization_error_param`TEXT`If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field.
last_finalization_error_payment_intent_id`TEXT`Payment_intent
last_finalization_error_payment_method_id`TEXT`Payment_method
last_finalization_error_payment_method_type`TEXT`If the error is specific to the type of payment method, the payment method type that had a problem. This field is only populated for invoice-related errors.
last_finalization_error_setup_intent_id`TEXT`Setup_intent
last_finalization_error_source`JSONB`
last_finalization_error_type`TEXT`The type of error returned. One of `api_connection_error`, `api_error`, `authentication_error`, `card_error`, `idempotency_error`, `invalid_request_error`, or `rate_limit_error`
total_tax_amounts_amount`BIGINT`The amount, in %s, of the tax.
total_tax_amounts_inclusive`BOOLEAN`Whether this tax amount is inclusive or exclusive.
total_tax_amounts_tax_rate_id`TEXT`The tax rate that was applied to get this tax amount.Tax_rate

Upcoming_subscription_invoice_line_item_map

Links

ColumnData TypeDescriptionReferences
upcoming_line_item_id (PK)`TEXT`Upcoming_line_item
subscription_id`TEXT`

Payment Tables

These payment tables store the objects related to different payment methods.

Bank_account

These bank accounts are payment methods on `Customer` objects.

On the other hand External Accounts are transfer destinations on `Account` objects for Custom accounts. They can be bank accounts or debit cards as well, and are documented in the links above.

Related guide: Bank Debits and Transfers.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
account_id`TEXT`The ID of the account that the bank account is associated with.Account
account_holder_name`TEXT`The name of the person or business that owns the bank account.
account_holder_type`TEXT`The type of entity that holds the account. This can be either `individual` or `company`.
available_payout_methods`TEXT[]`A set of available payout methods for this bank account. Only values from this set should be passed as the `method` when creating a payout.
bank_name`TEXT`Name of the bank associated with the routing number (e.g., `WELLS FARGO`).
country`TEXT`Two-letter ISO code representing the country the bank account is located in.
currency`TEXT`Three-letter ISO code for the currency paid out to the bank account.
customer_id`TEXT`The ID of the customer that the bank account is associated with.Customer
default_for_currency`BOOLEAN`Whether this bank account is the default external account for its currency.
fingerprint`TEXT`Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
last4`TEXT`The last four digits of the bank account number.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
routing_number`TEXT`The routing transit number for the bank account.
status`TEXT`For bank accounts, possible values are `new`, `validated`, `verified`, `verification_failed`, or `errored`. A bank account that hasn't had any activity or validation performed is `new`. If Stripe can determine that the bank account exists, its status will be `validated`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be `verified`. If the verification failed for any reason, such as microdeposit failure, the status will be `verification_failed`. If a transfer sent to this bank account fails, we'll set the status to `errored` and will not continue to send transfers until the bank details are updated.

For external accounts, possible values are `new` and `errored`. Validations aren't run against external accounts because they're only used for payouts. This means the other statuses don't apply. If a transfer fails, the status is set to `errored` and transfers are stopped until account details are updated.
deleted`BOOLEAN`Always true for a deleted object

Card

You can store multiple cards on a customer in order to charge the customer later. You can also store multiple debit cards on a recipient in order to transfer to those cards later.

Related guide: Card Payments with Sources.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
account_id`TEXT`The account this card belongs to. This attribute will not be in the card object if the card belongs to a customer or recipient instead.Account
address_city`TEXT`City/District/Suburb/Town/Village.
address_country`TEXT`Billing address country, if provided when creating card.
address_line1`TEXT`Address line 1 (Street address/PO Box/Company name).
address_line1_check`TEXT`If `address_line1` was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`.
address_line2`TEXT`Address line 2 (Apartment/Suite/Unit/Building).
address_state`TEXT`State/County/Province/Region.
address_zip`TEXT`ZIP or postal code.
address_zip_check`TEXT`If `address_zip` was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`.
available_payout_methods`TEXT[]`A set of available payout methods for this card. Only values from this set should be passed as the `method` when creating a payout.
brand`TEXT`Card brand. Can be `American Express`, `Diners Club`, `Discover`, `JCB`, `MasterCard`, `UnionPay`, `Visa`, or `Unknown`.
country`TEXT`Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.
currency`TEXT`Three-letter ISO code for the currency paid out to the bank account.
customer_id`TEXT`The customer that this card belongs to. This attribute will not be in the card object if the card belongs to an account or recipient instead.Customer
cvc_check`TEXT`If a CVC was provided, results of the check: `pass`, `fail`, `unavailable`, or `unchecked`. A result of unchecked indicates that CVC was provided but hasn't been checked yet. Checks are typically performed when attaching a card to a Customer object, or when creating a charge. For more details, see Check if a card is valid without a charge.
default_for_currency`BOOLEAN`Whether this card is the default external account for its currency.
description`TEXT`A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.)
dynamic_last4`TEXT`(For tokenized numbers only.) The last four digits of the device account number.
exp_month`BIGINT`Two-digit number representing the card's expiration month.
exp_year`BIGINT`Four-digit number representing the card's expiration year.
fingerprint`TEXT`Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number.

Starting May 1, 2021, card fingerprint in India for Connect will change to allow two fingerprints for the same card --- one for India and one for the rest of the world.
funding`TEXT`Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.
iin`TEXT`Issuer identification number of the card. (For internal use only and not typically available in standard API requests.)
issuer`TEXT`The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.)
last4`TEXT`The last four digits of the card.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
name`TEXT`Cardholder name.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
recipient_id`TEXT`The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.Recipient
tokenization_method`TEXT`If the card number is tokenized, this is the method that was used. Can be `android_pay` (includes Google Pay), `apple_pay`, `masterpass`, `visa_checkout`, or null.
deleted`BOOLEAN`Always true for a deleted object

Payment_method

PaymentMethod objects represent your customer's payment instruments. They can be used with PaymentIntents to collect payments or saved to Customer objects to store instrument details for future payments.

Related guides: Payment Methods and More Payment Scenarios.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
customer_id`TEXT`The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer.Customer
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
type`TEXT`The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.
au_becs_debit_bsb_number`TEXT`Six-digit number identifying bank and branch associated with this bank account.
au_becs_debit_fingerprint`TEXT`Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
au_becs_debit_last4`TEXT`Last four digits of the bank account number.
card_brand`TEXT`Card brand. Can be `amex`, `diners`, `discover`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.
card_checks`JSONB`Checks on Card address and CVC if provided.
card_country`TEXT`Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.
card_description`TEXT`A high-level description of the type of cards issued in this range. (For internal use only and not typically available in standard API requests.)
card_exp_month`BIGINT`Two-digit number representing the card's expiration month.
card_exp_year`BIGINT`Four-digit number representing the card's expiration year.
card_fingerprint`TEXT`Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number.

Starting May 1, 2021, card fingerprint in India for Connect will change to allow two fingerprints for the same card --- one for India and one for the rest of the world.
card_funding`TEXT`Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.
card_iin`TEXT`Issuer identification number of the card. (For internal use only and not typically available in standard API requests.)
card_issuer`TEXT`The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.)
card_last4`TEXT`The last four digits of the card.
card_networks`JSONB`Contains information about card networks that can be used to process the payment.
card_three_d_secure_usage`JSONB`Contains details on how this Card maybe be used for 3D Secure authentication.
card_wallet`JSONB`If this Card is part of a card wallet, this contains the details of the card wallet.
bacs_debit_fingerprint`TEXT`Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
bacs_debit_last4`TEXT`Last four digits of the bank account number.
bacs_debit_sort_code`TEXT`Sort code of the bank account. (e.g., `10-20-30`)
fpx_account_holder_type`TEXT`Account holder type, if provided. Can be one of `individual` or `company`.
fpx_bank`TEXT`The customer's bank, if provided. Can be one of `affin_bank`, `alliance_bank`, `ambank`, `bank_islam`, `bank_muamalat`, `bank_rakyat`, `bsn`, `cimb`, `hong_leong_bank`, `hsbc`, `kfh`, `maybank2u`, `ocbc`, `public_bank`, `rhb`, `standard_chartered`, `uob`, `deutsche_bank`, `maybank2e`, or `pb_enterprise`.
eps_bank`TEXT`The customer's bank. Should be one of `arzte_und_apotheker_bank`, `austrian_anadi_bank_ag`, `bank_austria`, `bankhaus_carl_spangler`, `bankhaus_schelhammer_und_schattera_ag`, `bawag_psk_ag`, `bks_bank_ag`, `brull_kallmus_bank_ag`, `btv_vier_lander_bank`, `capital_bank_grawe_gruppe_ag`, `dolomitenbank`, `easybank_ag`, `erste_bank_und_sparkassen`, `hypo_alpeadriabank_international_ag`, `hypo_noe_lb_fur_niederosterreich_u_wien`, `hypo_oberosterreich_salzburg_steiermark`, `hypo_tirol_bank_ag`, `hypo_vorarlberg_bank_ag`, `hypo_bank_burgenland_aktiengesellschaft`, `marchfelder_bank`, `oberbank_ag`, `raiffeisen_bankengruppe_osterreich`, `schoellerbank_ag`, `sparda_bank_wien`, `volksbank_gruppe`, `volkskreditbank_ag`, or `vr_bank_braunau`.
acss_debit_bank_name`TEXT`Name of the bank associated with the bank account.
acss_debit_fingerprint`TEXT`Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
acss_debit_institution_number`TEXT`Institution number of the bank account.
acss_debit_last4`TEXT`Last four digits of the bank account number.
acss_debit_transit_number`TEXT`Transit number of the bank account.
ideal_bank`TEXT`The customer's bank, if provided. Can be one of `abn_amro`, `asn_bank`, `bunq`, `handelsbanken`, `ing`, `knab`, `moneyou`, `rabobank`, `regiobank`, `revolut`, `sns_bank`, `triodos_bank`, or `van_lanschot`.
ideal_bic`TEXT`The Bank Identifier Code of the customer's bank, if the bank was provided.
billing_details_address`JSONB`Billing address.
billing_details_email`TEXT`Email address.
billing_details_name`TEXT`Full name.
billing_details_phone`TEXT`Billing phone number (including extension).
p24_bank`TEXT`The customer's bank, if provided.
sepa_debit_bank_code`TEXT`Bank code of bank associated with the bank account.
sepa_debit_branch_code`TEXT`Branch code of bank associated with the bank account.
sepa_debit_country`TEXT`Two-letter ISO code representing the country the bank account is located in.
sepa_debit_fingerprint`TEXT`Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
sepa_debit_generated_from`JSONB`Information about the object that generated this PaymentMethod.
sepa_debit_last4`TEXT`Last four characters of the IBAN.
sofort_country`TEXT`Two-letter ISO code representing the country the bank account is located in.

Recipient

With `Recipient` objects, you can transfer money from your Stripe account to a third-party bank account or debit card. The API allows you to create, delete, and update your recipients. You can retrieve individual recipients as well as a list of all your recipients.

`Recipient` objects have been deprecated in favor of Connect, specifically Connect's much more powerful Account objects. Stripe accounts that don't already use recipients can no longer begin doing so. Please use `Account` objects instead.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
deleted`BOOLEAN`Always true for a deleted object
object`TEXT`String representing the object's type. Objects of the same type share the same value.
active_account_id`TEXT`Hash describing the current account on the recipient, if there is one.Bank_account
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
default_card_id`TEXT`The default card to use for creating transfers to this recipient.Card
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users.
email`TEXT`
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
migrated_to_id`TEXT`The ID of the Custom account this recipient was migrated to. If set, the recipient can no longer be updated, nor can transfers be made to it: use the Custom account instead.Account
name`TEXT`Full, legal name of the recipient.
rolled_back_from_id`TEXT`Account
type`TEXT`Type of the recipient, one of `individual` or `corporation`.
verified`BOOLEAN`Whether the recipient has been verified. This field is non-standard, and maybe removed in the future

Review

Reviews can be used to supplement automated fraud detection with human expertise.

Learn more about Radar and reviewing payments here.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
billing_zip`TEXT`The ZIP or postal code of the card used, if applicable.
charge_id`TEXT`The charge associated with this review.Charge
closed_reason`TEXT`The reason the review was closed, or null if it has not yet been closed. One of `approved`, `refunded`, `refunded_as_fraud`, or `disputed`.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
ip_address`TEXT`The IP address where the payment originated.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
open`BOOLEAN`If `true`, the review needs action.
opened_reason`TEXT`The reason the review was opened. One of `rule` or `manual`.
payment_intent_id`TEXT`The PaymentIntent ID associated with this review, if one exists.Payment_intent
reason`TEXT`The reason the review is currently open or closed. One of `rule`, `manual`, `approved`, `refunded`, `refunded_as_fraud`, or `disputed`.
ip_address_location_city`TEXT`The city where the payment originated.
ip_address_location_country`TEXT`Two-letter ISO code representing the country where the payment originated.
ip_address_location_latitude`NUMERIC`The geographic latitude where the payment originated.
ip_address_location_longitude`NUMERIC`The geographic longitude where the payment originated.
ip_address_location_region`TEXT`The state/county/province/region where the payment originated.
session_browser`TEXT`The browser used in this browser session (e.g., `Chrome`).
session_device`TEXT`Information about the device used for the browser session (e.g., `Samsung SM-G930T`).
session_platform`TEXT`The platform for the browser session (e.g., `Macintosh`).
session_version`TEXT`The version for the browser session (e.g., `61.0.3163.100`).

Source

`Source` objects allow you to accept a variety of payment methods. They represent a customer's payment instrument, and can be used with the Stripe API just like a `Card` object: once chargeable, they can be charged, or can be attached to customers.

Related guides: Sources API and Sources & Customers.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ÂĄ1, Japanese Yen being a zero-decimal currency) representing the total amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for `single_use` sources.
client_secret`TEXT`The client secret of the source. Used for client-side retrieval using a publishable key.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO code for the currency associated with the source. This is the currency for which the source will be chargeable once ready. Required for `single_use` sources.
customer_id`TEXT`The ID of the customer to which this source is attached. This will not be present when the source has not been attached to a customer.Customer
flow`TEXT`The authentication `flow` of the source. `flow` is one of `redirect`, `receiver`, `code_verification`, `none`.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
statement_descriptor`TEXT`Extra information about a source. This will appear on your customer's statement every time you charge the source.
status`TEXT`The status of the source, one of `canceled`, `chargeable`, `consumed`, `failed`, or `pending`. Only `chargeable` sources can be used to create a charge.
type`TEXT`The `type` of the source. The `type` is a payment method, one of `ach_credit_transfer`, `ach_debit`, `alipay`, `bancontact`, `card`, `card_present`, `eps`, `giropay`, `ideal`, `multibanco`, `klarna`, `p24`, `sepa_debit`, `sofort`, `three_d_secure`, or `wechat`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the payment method used.
usage`TEXT`Either `reusable` or `single_use`. Whether this source should be reusable or not. Some source types may or may not be reusable by construction, while others may leave the option at creation. If an incompatible value is passed, an error will be returned.
ideal_bank`TEXT`
ideal_bic`TEXT`
ideal_iban_last4`TEXT`
ideal_statement_descriptor`TEXT`
p24_reference`TEXT`
au_becs_debit_bsb_number`TEXT`
au_becs_debit_fingerprint`TEXT`
au_becs_debit_last4`TEXT`
acss_debit_bank_address_city`TEXT`
acss_debit_bank_address_line_1`TEXT`
acss_debit_bank_address_line_2`TEXT`
acss_debit_bank_address_postal_code`TEXT`
acss_debit_bank_name`TEXT`
acss_debit_category`TEXT`
acss_debit_country`TEXT`
acss_debit_fingerprint`TEXT`
acss_debit_last4`TEXT`
acss_debit_routing_number`TEXT`
receiver_address`TEXT`The address of the receiver source. This is the value that should be communicated to the customer to send their funds to.
receiver_amount_charged`BIGINT`The total amount that was moved to your balance. This is almost always equal to the amount charged. In rare cases when customers deposit excess funds and we are unable to refund those, those funds get moved to your balance and show up in amount_charged as well. The amount charged is expressed in the source's currency.
receiver_amount_received`BIGINT`The total amount received by the receiver source. `amount_received = amount_returned + amount_charged` should be true for consumed sources unless customers deposit excess funds. The amount received is expressed in the source's currency.
receiver_amount_returned`BIGINT`The total amount that was returned to the customer. The amount returned is expressed in the source's currency.
receiver_refund_attributes_method`TEXT`Type of refund attribute method, one of `email`, `manual`, or `none`.
receiver_refund_attributes_status`TEXT`Type of refund attribute status, one of `missing`, `requested`, or `available`.
giropay_bank_code`TEXT`
giropay_bank_name`TEXT`
giropay_bic`TEXT`
giropay_statement_descriptor`TEXT`
card_present_application_cryptogram`TEXT`
card_present_application_preferred_name`TEXT`
card_present_authorization_code`TEXT`
card_present_authorization_response_code`TEXT`
card_present_brand`TEXT`
card_present_country`TEXT`
card_present_cvm_type`TEXT`
card_present_data_type`TEXT`
card_present_dedicated_file_name`TEXT`
card_present_description`TEXT`
card_present_emv_auth_data`TEXT`
card_present_evidence_customer_signature`TEXT`
card_present_evidence_transaction_certificate`TEXT`
card_present_exp_month`BIGINT`
card_present_exp_year`BIGINT`
card_present_fingerprint`TEXT`
card_present_funding`TEXT`
card_present_iin`TEXT`
card_present_issuer`TEXT`
card_present_last4`TEXT`
card_present_pos_device_id`TEXT`
card_present_pos_entry_mode`TEXT`
card_present_read_method`TEXT`
card_present_reader`TEXT`
card_present_terminal_verification_results`TEXT`
card_present_transaction_status_information`TEXT`
redirect_failure_reason`TEXT`The failure reason for the redirect, either `user_abort` (the customer aborted or dropped out of the redirect flow), `declined` (the authentication failed or the transaction was declined), or `processing_error` (the redirect failed due to a technical error). Present only if the redirect status is `failed`.
redirect_return_url`TEXT`The URL you provide to redirect the customer to after they authenticated their payment.
redirect_status`TEXT`The status of the redirect, either `pending` (ready to be used by your customer to authenticate the transaction), `succeeded` (succesful authentication, cannot be reused) or `not_required` (redirect should not be used) or `failed` (failed authentication, cannot be reused).
redirect_url`TEXT`The URL provided to you to redirect a customer to as part of a `redirect` authentication flow.
bancontact_bank_code`TEXT`
bancontact_bank_name`TEXT`
bancontact_bic`TEXT`
bancontact_iban_last4`TEXT`
bancontact_preferred_language`TEXT`
bancontact_statement_descriptor`TEXT`
wechat_prepay_id`TEXT`
wechat_qr_code_url`TEXT`
wechat_statement_descriptor`TEXT`
ach_debit_bank_name`TEXT`
ach_debit_country`TEXT`
ach_debit_fingerprint`TEXT`
ach_debit_last4`TEXT`
ach_debit_routing_number`TEXT`
ach_debit_type`TEXT`
alipay_data_string`TEXT`
alipay_native_url`TEXT`
alipay_statement_descriptor`TEXT`
code_verification_attempts_remaining`BIGINT`The number of attempts remaining to authenticate the source object with a verification code.
code_verification_status`TEXT`The status of the code verification, either `pending` (awaiting verification, `attempts_remaining` should be greater than 0), `succeeded` (successful verification) or `failed` (failed verification, cannot be verified anymore as `attempts_remaining` should be 0).
sofort_bank_code`TEXT`
sofort_bank_name`TEXT`
sofort_bic`TEXT`
sofort_country`TEXT`
sofort_iban_last4`TEXT`
sofort_preferred_language`TEXT`
sofort_statement_descriptor`TEXT`
eps_reference`TEXT`
eps_statement_descriptor`TEXT`
source_order_amount`BIGINT`A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ÂĄ1, Japanese Yen being a zero-decimal currency) representing the total amount for the order.
source_order_currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
source_order_email`TEXT`The email address of the customer placing the order.
source_order_items`JSONB`List of items constituting the order.
source_order_shipping`JSONB`
sepa_debit_bank_code`TEXT`
sepa_debit_branch_code`TEXT`
sepa_debit_country`TEXT`
sepa_debit_fingerprint`TEXT`
sepa_debit_last4`TEXT`
sepa_debit_mandate_reference`TEXT`
sepa_debit_mandate_url`TEXT`
sepa_credit_transfer_bank_name`TEXT`
sepa_credit_transfer_bic`TEXT`
sepa_credit_transfer_iban`TEXT`
sepa_credit_transfer_refund_account_holder_address_city`TEXT`
sepa_credit_transfer_refund_account_holder_address_country`TEXT`
sepa_credit_transfer_refund_account_holder_address_line1`TEXT`
sepa_credit_transfer_refund_account_holder_address_line2`TEXT`
sepa_credit_transfer_refund_account_holder_address_postal_code`TEXT`
sepa_credit_transfer_refund_account_holder_address_state`TEXT`
sepa_credit_transfer_refund_account_holder_name`TEXT`
sepa_credit_transfer_refund_iban`TEXT`
ach_credit_transfer_account_number`TEXT`
ach_credit_transfer_bank_name`TEXT`
ach_credit_transfer_fingerprint`TEXT`
ach_credit_transfer_refund_account_holder_name`TEXT`
ach_credit_transfer_refund_account_holder_type`TEXT`
ach_credit_transfer_refund_routing_number`TEXT`
ach_credit_transfer_routing_number`TEXT`
ach_credit_transfer_swift_code`TEXT`
klarna_background_image_url`TEXT`
klarna_client_token`TEXT`
klarna_first_name`TEXT`
klarna_last_name`TEXT`
klarna_locale`TEXT`
klarna_logo_url`TEXT`
klarna_page_title`TEXT`
klarna_pay_later_asset_urls_descriptive`TEXT`
klarna_pay_later_asset_urls_standard`TEXT`
klarna_pay_later_name`TEXT`
klarna_pay_later_redirect_url`TEXT`
klarna_pay_now_asset_urls_descriptive`TEXT`
klarna_pay_now_asset_urls_standard`TEXT`
klarna_pay_now_name`TEXT`
klarna_pay_now_redirect_url`TEXT`
klarna_pay_over_time_asset_urls_descriptive`TEXT`
klarna_pay_over_time_asset_urls_standard`TEXT`
klarna_pay_over_time_name`TEXT`
klarna_pay_over_time_redirect_url`TEXT`
klarna_payment_method_categories`TEXT`
klarna_purchase_country`TEXT`
klarna_purchase_type`TEXT`
klarna_redirect_url`TEXT`
klarna_shipping_delay`BIGINT`
klarna_shipping_first_name`TEXT`
klarna_shipping_last_name`TEXT`
multibanco_entity`TEXT`
multibanco_reference`TEXT`
multibanco_refund_account_holder_address_city`TEXT`
multibanco_refund_account_holder_address_country`TEXT`
multibanco_refund_account_holder_address_line1`TEXT`
multibanco_refund_account_holder_address_line2`TEXT`
multibanco_refund_account_holder_address_postal_code`TEXT`
multibanco_refund_account_holder_address_state`TEXT`
multibanco_refund_account_holder_name`TEXT`
multibanco_refund_iban`TEXT`
three_d_secure_address_line1_check`TEXT`
three_d_secure_address_zip_check`TEXT`
three_d_secure_authenticated`BOOLEAN`
three_d_secure_brand`TEXT`
three_d_secure_card`TEXT`
three_d_secure_country`TEXT`
three_d_secure_customer`TEXT`
three_d_secure_cvc_check`TEXT`
three_d_secure_description`TEXT`
three_d_secure_dynamic_last4`TEXT`
three_d_secure_exp_month`BIGINT`
three_d_secure_exp_year`BIGINT`
three_d_secure_fingerprint`TEXT`
three_d_secure_funding`TEXT`
three_d_secure_iin`TEXT`
three_d_secure_issuer`TEXT`
three_d_secure_last4`TEXT`
three_d_secure_name`TEXT`
three_d_secure_three_d_secure`TEXT`
three_d_secure_tokenization_method`TEXT`
owner_address`JSONB`Owner's address.
owner_email`TEXT`Owner's email address.
owner_name`TEXT`Owner's full name.
owner_phone`TEXT`Owner's phone number (including extension).
owner_verified_address`JSONB`Verified owner's address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
owner_verified_email`TEXT`Verified owner's email address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
owner_verified_name`TEXT`Verified owner's full name. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
owner_verified_phone`TEXT`Verified owner's phone number (including extension). Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
card_address_line1_check`TEXT`
card_address_zip_check`TEXT`
card_brand`TEXT`
card_country`TEXT`
card_cvc_check`TEXT`
card_description`TEXT`
card_dynamic_last4`TEXT`
card_exp_month`BIGINT`
card_exp_year`BIGINT`
card_fingerprint`TEXT`
card_funding`TEXT`
card_iin`TEXT`
card_issuer`TEXT`
card_last4`TEXT`
card_name`TEXT`
card_three_d_secure`TEXT`
card_tokenization_method`TEXT`

Connect Tables

These connect tables store the objects related to Stripe connect. Namely, the ability to facilitate pay-outs to sellers and service providers and collect fees.

Account

This is an object representing a Stripe account. You can retrieve it to see properties on the account like its current e-mail address or if the account is enabled yet to make live charges.

Some properties, marked below, are available only to platforms that want to create and manage Express or Custom accounts.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
business_type`TEXT`The business type.
charges_enabled`BOOLEAN`Whether the account can create live charges.
country`TEXT`The account's country.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
default_currency`TEXT`Three-letter ISO currency code representing the default currency for the account. This must be a currency that Stripe supports in the account's country.
details_submitted`BOOLEAN`Whether account details have been submitted. Standard accounts cannot receive payouts before this is true.
email`TEXT`An email address associated with the account. You can treat this as metadata: it is not used for authentication or messaging account holders.
individual_id`TEXT`Person
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
payouts_enabled`BOOLEAN`Whether Stripe can send payouts to this account.
type`TEXT`The Stripe account type. Can be `standard`, `express`, or `custom`.
deleted`BOOLEAN`Always true for a deleted object
settings_bacs_debit_payments`JSONB`
settings_branding`JSONB`
settings_card_issuing`JSONB`
settings_card_payments`JSONB`
settings_dashboard`JSONB`
settings_payments`JSONB`
settings_payouts`JSONB`
settings_sepa_debit_payments`JSONB`
business_profile_mcc`TEXT`The merchant category code for the account. MCCs are used to classify businesses based on the goods or services they provide.
business_profile_name`TEXT`The customer-facing business name.
business_profile_product_description`TEXT`Internal-only description of the product sold or service provided by the business. It's used by Stripe for risk and underwriting purposes.
business_profile_support_address`JSONB`A publicly available mailing address for sending support issues to.
business_profile_support_email`TEXT`A publicly available email address for sending support issues to.
business_profile_support_phone`TEXT`A publicly available phone number to call with support issues.
business_profile_support_url`TEXT`A publicly available website for handling support issues.
business_profile_url`TEXT`The business's publicly available website.
capabilities_acss_debit_payments`TEXT`The status of the ACSS Direct Debits payments capability of the account, or whether the account can directly process ACSS Direct Debits charges.
capabilities_afterpay_clearpay_payments`TEXT`The status of the Afterpay Clearpay capability of the account, or whether the account can directly process Afterpay Clearpay charges.
capabilities_au_becs_debit_payments`TEXT`The status of the BECS Direct Debit (AU) payments capability of the account, or whether the account can directly process BECS Direct Debit (AU) charges.
capabilities_bacs_debit_payments`TEXT`The status of the Bacs Direct Debits payments capability of the account, or whether the account can directly process Bacs Direct Debits charges.
capabilities_bancontact_payments`TEXT`The status of the Bancontact payments capability of the account, or whether the account can directly process Bancontact charges.
capabilities_card_issuing`TEXT`The status of the card issuing capability of the account, or whether you can use Issuing to distribute funds on cards
capabilities_card_payments`TEXT`The status of the card payments capability of the account, or whether the account can directly process credit and debit card charges.
capabilities_cartes_bancaires_payments`TEXT`The status of the Cartes Bancaires payments capability of the account, or whether the account can directly process Cartes Bancaires card charges in EUR currency.
capabilities_eps_payments`TEXT`The status of the EPS payments capability of the account, or whether the account can directly process EPS charges.
capabilities_fpx_payments`TEXT`The status of the FPX payments capability of the account, or whether the account can directly process FPX charges.
capabilities_giropay_payments`TEXT`The status of the giropay payments capability of the account, or whether the account can directly process giropay charges.
capabilities_grabpay_payments`TEXT`The status of the GrabPay payments capability of the account, or whether the account can directly process GrabPay charges.
capabilities_ideal_payments`TEXT`The status of the iDEAL payments capability of the account, or whether the account can directly process iDEAL charges.
capabilities_jcb_payments`TEXT`The status of the JCB payments capability of the account, or whether the account (Japan only) can directly process JCB credit card charges in JPY currency.
capabilities_legacy_payments`TEXT`The status of the legacy payments capability of the account.
capabilities_oxxo_payments`TEXT`The status of the OXXO payments capability of the account, or whether the account can directly process OXXO charges.
capabilities_p24_payments`TEXT`The status of the P24 payments capability of the account, or whether the account can directly process P24 charges.
capabilities_sepa_debit_payments`TEXT`The status of the SEPA Direct Debits payments capability of the account, or whether the account can directly process SEPA Direct Debits charges.
capabilities_sofort_payments`TEXT`The status of the Sofort payments capability of the account, or whether the account can directly process Sofort charges.
capabilities_tax_reporting_us_1099_k`TEXT`The status of the tax reporting 1099-K (US) capability of the account.
capabilities_tax_reporting_us_1099_misc`TEXT`The status of the tax reporting 1099-MISC (US) capability of the account.
capabilities_transfers`TEXT`The status of the transfers capability of the account, or whether your platform can transfer funds to the account.
company_address`JSONB`
company_address_kana`JSONB`The Kana variation of the company's primary address (Japan only).
company_address_kanji`JSONB`The Kanji variation of the company's primary address (Japan only).
company_directors_provided`BOOLEAN`Whether the company's directors have been provided. This Boolean will be `true` if you've manually indicated that all directors are provided via the `directors_provided` parameter.
company_executives_provided`BOOLEAN`Whether the company's executives have been provided. This Boolean will be `true` if you've manually indicated that all executives are provided via the `executives_provided` parameter, or if Stripe determined that sufficient executives were provided.
company_name`TEXT`The company's legal name.
company_name_kana`TEXT`The Kana variation of the company's legal name (Japan only).
company_name_kanji`TEXT`The Kanji variation of the company's legal name (Japan only).
company_owners_provided`BOOLEAN`Whether the company's owners have been provided. This Boolean will be `true` if you've manually indicated that all owners are provided via the `owners_provided` parameter, or if Stripe determined that sufficient owners were provided. Stripe determines ownership requirements using both the number of owners provided and their total percent ownership (calculated by adding the `percent_ownership` of each owner together).
company_phone`TEXT`The company's phone number (used for verification).
company_structure`TEXT`The category identifying the legal structure of the company or legal entity. See Business structure for more details.
company_tax_id_provided`BOOLEAN`Whether the company's business ID number was provided.
company_tax_id_registrar`TEXT`The jurisdiction in which the `tax_id` is registered (Germany-based companies only).
company_vat_id_provided`BOOLEAN`Whether the company's business VAT number was provided.
company_verification`JSONB`Information on the verification state of the company.
tos_acceptance_date`TIMESTAMP`The Unix timestamp marking when the account representative accepted their service agreement
tos_acceptance_ip`TEXT`The IP address from which the account representative accepted their service agreement
tos_acceptance_service_agreement`TEXT`The user's service agreement type
tos_acceptance_user_agent`TEXT`The user agent of the browser from which the account representative accepted their service agreement
requirements_current_deadline`TIMESTAMP`The date the fields in `currently_due` must be collected by to keep payouts enabled for the account. These fields might block payouts sooner if the next threshold is reached before these fields are collected.
requirements_currently_due`TEXT[]`The fields that need to be collected to keep the account enabled. If not collected by the `current_deadline`, these fields appear in `past_due` as well, and the account is disabled.
requirements_disabled_reason`TEXT`If the account is disabled, this string describes why the account can’t create charges or receive payouts. Can be `requirements.past_due`, `requirements.pending_verification`, `rejected.fraud`, `rejected.terms_of_service`, `rejected.listed`, `rejected.other`, `listed`, `under_review`, or `other`.
requirements_errors`JSONB`The fields that are `currently_due` and need to be collected again because validation or verification failed for some reason.
requirements_eventually_due`TEXT[]`The fields that need to be collected assuming all volume thresholds are reached. As they become required, these fields appear in `currently_due` as well, and the `current_deadline` is set.
requirements_past_due`TEXT[]`The fields that weren't collected by the `current_deadline`. These fields need to be collected to re-enable the account.
requirements_pending_verification`TEXT[]`Fields that may become required depending on the results of verification or review. An empty array unless an asynchronous verification is pending. If verification fails, the fields in this array become required and move to `currently_due` or `past_due`.

Application

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
name`TEXT`The name of the application.
object`TEXT`String representing the object's type. Objects of the same type share the same value.

Application_fee

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
account_id`TEXT`ID of the Stripe account this fee was taken from.Account
amount`BIGINT`Amount earned, in %s.
amount_refunded`BIGINT`Amount in %s refunded (can be less than the amount attribute on the fee if a partial refund was issued)
application_id`TEXT`ID of the Connect application that earned the fee.Application
balance_transaction_id`TEXT`Balance transaction that describes the impact of this collected application fee on your account balance (not including refunds).Balance_transaction
charge_id`TEXT`ID of the charge that the application fee was taken from.Charge
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
originating_transaction_id`TEXT`ID of the corresponding charge on the platform account, if this fee was the result of a charge using the `destination` parameter.Charge
refunded`BOOLEAN`Whether the fee has been fully refunded. If the fee is only partially refunded, this attribute will still be false.

Capability

This is an object representing a capability for a Stripe account.

Related guide: Account capabilities.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`The identifier for the capability.
account_id`TEXT`The account for which the capability enables functionality.Account
object`TEXT`String representing the object's type. Objects of the same type share the same value.
requested`BOOLEAN`Whether the capability has been requested.
requested_at`TIMESTAMP`Time at which the capability was requested. Measured in seconds since the Unix epoch.
status`TEXT`The status of the capability. Can be `active`, `inactive`, `pending`, or `unrequested`.
requirements_current_deadline`TIMESTAMP`The date the fields in `currently_due` must be collected by to keep the capability enabled for the account.
requirements_currently_due`TEXT[]`The fields that need to be collected to keep the capability enabled. If not collected by the `current_deadline`, these fields appear in `past_due` as well, and the capability is disabled.
requirements_disabled_reason`TEXT`If the capability is disabled, this string describes why. Possible values are `requirement.fields_needed`, `pending.onboarding`, `pending.review`, `rejected_fraud`, `rejected.unsupported_business` or `rejected.other`.

`rejected.unsupported_business` means that the account's business is not supported by the capability. For example, payment methods may restrict the businesses they support in their terms of service:

- Afterpay Clearpay's terms of service

If you believe that the rejection is in error, please contact support@stripe.com for assistance.
requirements_errors`JSONB`The fields that are `currently_due` and need to be collected again because validation or verification failed for some reason.
requirements_eventually_due`TEXT[]`The fields that need to be collected assuming all volume thresholds are reached. As they become required, these fields appear in `currently_due` as well, and the `current_deadline` is set.
requirements_past_due`TEXT[]`The fields that weren't collected by the `current_deadline`. These fields need to be collected to enable the capability for the account.
requirements_pending_verification`TEXT[]`Fields that may become required depending on the results of verification or review. An empty array unless an asynchronous verification is pending. If verification fails, the fields in this array become required and move to `currently_due` or `past_due`.

Connect_collection_transfer

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`Amount transferred, in %s.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
destination_id`TEXT`ID of the account that funds are being collected for.Account
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
object`TEXT`String representing the object's type. Objects of the same type share the same value.

Country_spec

Stripe needs to collect certain pieces of information about each account created. These requirements can differ depending on the account's country. The Country Specs API makes these rules available to your integration.

You can also view the information from this API call as an online guide.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object. Represented as the ISO country code for this country.
default_currency`TEXT`The default currency for this country. This applies to both payment methods and bank accounts.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
supported_bank_account_currencies`JSONB`Currencies that can be accepted in the specific country (for transfers).
supported_payment_currencies`TEXT[]`Currencies that can be accepted in the specified country (for payments).
supported_payment_methods`TEXT[]`Payment methods available in the specified country. You may need to enable some payment methods (e.g., ACH) on your account before they appear in this list. The `stripe` payment method refers to charging through your platform.
supported_transfer_countries`TEXT[]`Countries that can accept transfers from the specified country.
verification_fields_company`JSONB`
verification_fields_individual`JSONB`

Fee_refund

`Application Fee Refund` objects allow you to refund an application fee that has previously been created but not yet refunded. Funds will be refunded to the Stripe account from which the fee was originally collected.

Related guide: Refunding Application Fees.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`Amount, in %s.
balance_transaction_id`TEXT`Balance transaction that describes the impact on your account balance.Balance_transaction
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
fee_id`TEXT`ID of the application fee that was refunded.Application_fee
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.

Person

This is an object representing a person associated with a Stripe account.

A platform cannot access a Standard or Express account's persons after the account starts onboarding, such as after generating an account link for the account. See the Standard onboarding or Express onboarding documentation for information about platform pre-filling and account onboarding steps.

Related guide: Handling Identity Verification with the API.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
deleted`BOOLEAN`Always true for a deleted object
object`TEXT`String representing the object's type. Objects of the same type share the same value.
account_id`TEXT`The account the person is associated with.Account
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
email`TEXT`The person's email address.
first_name`TEXT`The person's first name.
first_name_kana`TEXT`The Kana variation of the person's first name (Japan only).
first_name_kanji`TEXT`The Kanji variation of the person's first name (Japan only).
gender`TEXT`The person's gender (International regulations require either "male" or "female").
id_number_provided`BOOLEAN`Whether the person's `id_number` was provided.
last_name`TEXT`The person's last name.
last_name_kana`TEXT`The Kana variation of the person's last name (Japan only).
last_name_kanji`TEXT`The Kanji variation of the person's last name (Japan only).
maiden_name`TEXT`The person's maiden name.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
nationality`TEXT`The country where the person is a national.
phone`TEXT`The person's phone number.
political_exposure`TEXT`Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction.
ssn_last_4_provided`BOOLEAN`Whether the last four digits of the person's Social Security number have been provided (U.S. only).
relationship_director`BOOLEAN`Whether the person is a director of the account's legal entity. Currently only required for accounts in the EU. Directors are typically members of the governing board of the company, or responsible for ensuring the company meets its regulatory obligations.
relationship_executive`BOOLEAN`Whether the person has significant responsibility to control, manage, or direct the organization.
relationship_owner`BOOLEAN`Whether the person is an owner of the account’s legal entity.
relationship_percent_ownership`NUMERIC`The percent owned by the person of the account's legal entity.
relationship_representative`BOOLEAN`Whether the person is authorized as the primary representative of the account. This is the person nominated by the business to provide information about themselves, and general information about the account. There can only be one representative at any given time. At the time the account is created, this person should be set to the person responsible for opening the account.
relationship_title`TEXT`The person's title (e.g., CEO, Support Engineer).
dob_day`BIGINT`The day of birth, between 1 and 31.
dob_month`BIGINT`The month of birth, between 1 and 12.
dob_year`BIGINT`The four-digit year of birth.
address_kana_city`TEXT`City/Ward.
address_kana_country`TEXT`Two-letter country code (ISO 3166-1 alpha-2).
address_kana_line1`TEXT`Block/Building number.
address_kana_line2`TEXT`Building details.
address_kana_postal_code`TEXT`ZIP or postal code.
address_kana_state`TEXT`Prefecture.
address_kana_town`TEXT`Town/cho-me.
requirements_currently_due`TEXT[]`Fields that need to be collected to keep the person's account enabled. If not collected by the account's `current_deadline`, these fields appear in `past_due` as well, and the account is disabled.
requirements_errors`JSONB`The fields that are `currently_due` and need to be collected again because validation or verification failed for some reason.
requirements_eventually_due`TEXT[]`Fields that need to be collected assuming all volume thresholds are reached. As fields are needed, they are moved to `currently_due` and the account's `current_deadline` is set.
requirements_past_due`TEXT[]`Fields that weren't collected by the account's `current_deadline`. These fields need to be collected to enable payouts for the person's account.
requirements_pending_verification`TEXT[]`Fields that may become required depending on the results of verification or review. An empty array unless an asynchronous verification is pending. If verification fails, the fields in this array become required and move to `currently_due` or `past_due`.
address_city`TEXT`City, district, suburb, town, or village.
address_country`TEXT`Two-letter country code (ISO 3166-1 alpha-2).
address_line1`TEXT`Address line 1 (e.g., street, PO Box, or company name).
address_line2`TEXT`Address line 2 (e.g., apartment, suite, unit, or building).
address_postal_code`TEXT`ZIP or postal code.
address_state`TEXT`State, county, province, or region.
verification_additional_document`JSONB`A document showing address, either a passport, local ID card, or utility bill from a well-known utility company.
verification_details`TEXT`A user-displayable string describing the verification state for the person. For example, this may say "Provided identity information could not be verified".
verification_details_code`TEXT`One of `document_address_mismatch`, `document_dob_mismatch`, `document_duplicate_type`, `document_id_number_mismatch`, `document_name_mismatch`, `document_nationality_mismatch`, `failed_keyed_identity`, or `failed_other`. A machine-readable code specifying the verification state for the person.
verification_document`JSONB`
verification_status`TEXT`The state of verification for the person. Possible values are `unverified`, `pending`, or `verified`.
address_kanji_city`TEXT`City/Ward.
address_kanji_country`TEXT`Two-letter country code (ISO 3166-1 alpha-2).
address_kanji_line1`TEXT`Block/Building number.
address_kanji_line2`TEXT`Building details.
address_kanji_postal_code`TEXT`ZIP or postal code.
address_kanji_state`TEXT`Prefecture.
address_kanji_town`TEXT`Town/cho-me.

Platform_tax_fee

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
account_id`TEXT`The Connected account that incurred this charge.Account
object`TEXT`String representing the object's type. Objects of the same type share the same value.
source_transaction_id`TEXT`The payment object that caused this tax to be inflicted.Source_transaction
type`TEXT`The type of tax (VAT).

Topup

To top up your Stripe balance, you create a top-up object. You can retrieve individual top-ups, as well as list all top-ups. Top-ups are identified by a unique, random ID.

Related guide: Topping Up your Platform Account.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`Amount transferred.
balance_transaction_id`TEXT`ID of the balance transaction that describes the impact of this top-up on your account balance. May not be specified depending on status of top-up.Balance_transaction
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users.
expected_availability_date`BIGINT`Date the funds are expected to arrive in your Stripe account for payouts. This factors in delays like weekends or bank holidays. May not be specified depending on status of top-up.
failure_code`TEXT`Error code explaining reason for top-up failure if available (see the errors section for a list of codes).
failure_message`TEXT`Message to user further explaining reason for top-up failure if available.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
source_id`TEXT`Source
statement_descriptor`TEXT`Extra information about a top-up. This will appear on your source's bank statement. It must contain at least one letter.
status`TEXT`The status of the top-up is either `canceled`, `failed`, `pending`, `reversed`, or `succeeded`.
transfer_group`TEXT`A string that identifies this top-up as part of a group.

Transfer

A `Transfer` object is created when you move funds between Stripe accounts as part of Connect.

Before April 6, 2017, transfers also represented movement of funds from a Stripe account to a card or bank account. This behavior has since been split out into a Payout object, with corresponding payout endpoints. For more information, read about the transfer/payout split.

Related guide: Creating Separate Charges and Transfers.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`Amount in %s to be transferred.
amount_reversed`BIGINT`Amount in %s reversed (can be less than the amount attribute on the transfer if a partial reversal was issued).
balance_transaction_id`TEXT`Balance transaction that describes the impact of this transfer on your account balance.Balance_transaction
created`TIMESTAMP`Time that this record of the transfer was first created.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users.
destination_id`TEXT`ID of the Stripe account the transfer was sent to.Account
destination_payment_id`TEXT`If the destination is a Stripe account, this will be the ID of the payment that the destination account received for the transfer.Charge
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
reversed`BOOLEAN`Whether the transfer has been fully reversed. If the transfer is only partially reversed, this attribute will still be false.
source_transaction_id`TEXT`ID of the charge or payment that was used to fund the transfer. If null, the transfer was funded from the available balance.Charge
source_type`TEXT`The source balance this transfer came from. One of `card`, `fpx`, or `bank_account`.
transfer_group`TEXT`A string that identifies this transaction as part of a group. See the Connect documentation for details.

Transfer_reversal

Stripe Connect platforms can reverse transfers made to a connected account, either entirely or partially, and can also specify whether to refund any related application fees. Transfer reversals add to the platform's balance and subtract from the destination account's balance.

Reversing a transfer that was made for a destination charge is allowed only up to the amount of the charge. It is possible to reverse a transfer_group transfer only if the destination account has enough balance to cover the reversal.

Related guide: Reversing Transfers.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`Amount, in %s.
balance_transaction_id`TEXT`Balance transaction that describes the impact on your account balance.Balance_transaction
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
destination_payment_refund_id`TEXT`Linked payment refund for the transfer reversal.Refund
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
source_refund_id`TEXT`ID of the refund responsible for the transfer reversal.Refund
transfer_id`TEXT`ID of the transfer that was reversed.Transfer

Order Tables

These order tables contain the objects related to one-off, transactional sales.

Item

A line item.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount_subtotal`BIGINT`Total before any discounts or taxes are applied.
amount_total`BIGINT`Total after discounts and taxes.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users. Defaults to product name.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
price_id`TEXT`The price used to generate the line item.Price
quantity`BIGINT`The quantity of products being purchased.
discounts_amount`BIGINT`The amount discounted.
discounts_discount_id`TEXT`Discount
taxes_amount`BIGINT`Amount of tax applied for this rate.
taxes_rate_id`TEXT`Tax_rate

Order

Order objects are created to handle end customers' purchases of previously defined products. You can create, retrieve, and pay individual orders, as well as list all orders. Orders are identified by a unique, random ID.

Related guide: Tax, Shipping, and Inventory.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ÂĄ1, Japanese Yen being a zero-decimal currency) representing the total amount for the order.
amount_returned`BIGINT`The total amount that was returned to the customer.
application_id`TEXT`ID of the Connect Application that created the order.Application
application_fee`BIGINT`A fee in cents that will be applied to the order and transferred to the application owner’s Stripe account. The request must be made with an OAuth key or the Stripe-Account header in order to take an application fee. For more information, see the application fees documentation.
charge_id`TEXT`The ID of the payment used to pay for the order. Present if the order status is `paid`, `fulfilled`, or `refunded`.Charge
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
customer_id`TEXT`The customer used for the order.Customer
email`TEXT`The email address of the customer placing the order.
external_coupon_code`TEXT`External coupon code to load for this order.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
selected_shipping_method`TEXT`The shipping method that is currently selected for this order, if any. If present, it is equal to one of the `id`s of shipping methods in the `shipping_methods` array. At order creation time, if there are multiple shipping methods, Stripe will automatically selected the first method.
status`TEXT`Current order status. One of `created`, `paid`, `canceled`, `fulfilled`, or `returned`. More details in the Orders Guide.
updated`TIMESTAMP`Time at which the object was last updated. Measured in seconds since the Unix epoch.
upstream_id`TEXT`The user's order ID if it is different from the Stripe order ID.
status_transitions_canceled`TIMESTAMP`The time that the order was canceled.
status_transitions_fulfiled`TIMESTAMP`The time that the order was fulfilled.
status_transitions_paid`TIMESTAMP`The time that the order was paid.
status_transitions_returned`TIMESTAMP`The time that the order was returned.
items_amount`BIGINT`A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ÂĄ1, Japanese Yen being a zero-decimal currency) representing the total amount for the line item.
items_currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
items_description`TEXT`Description of the line item, meant to be displayable to the user (e.g., `"Express shipping"`).
items_object`TEXT`String representing the object's type. Objects of the same type share the same value.
items_parent_id`TEXT`The ID of the associated object for this line item. Expandable if not null (e.g., expandable to a SKU).Sku
items_quantity`BIGINT`A positive integer representing the number of instances of `parent` that are included in this order item. Applicable/present only if `type` is `sku`.
items_type`TEXT`The type of line item. One of `sku`, `tax`, `shipping`, or `discount`.
shipping_address`JSONB`
shipping_carrier`TEXT`The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
shipping_name`TEXT`Recipient name.
shipping_phone`TEXT`Recipient phone (including extension).
shipping_tracking_number`TEXT`The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.

Order_return

A return represents the full or partial return of a number of order items. Returns always belong to an order, and may optionally contain a refund.

Related guide: Handling Returns.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ÂĄ1, Japanese Yen being a zero-decimal currency) representing the total amount for the returned line item.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
order_id`TEXT`The order that this return includes items from.Order
refund_id`TEXT`The ID of the refund issued for this return.Refund
items_amount`BIGINT`A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ÂĄ1, Japanese Yen being a zero-decimal currency) representing the total amount for the line item.
items_currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
items_description`TEXT`Description of the line item, meant to be displayable to the user (e.g., `"Express shipping"`).
items_object`TEXT`String representing the object's type. Objects of the same type share the same value.
items_parent_id`TEXT`The ID of the associated object for this line item. Expandable if not null (e.g., expandable to a SKU).Sku
items_quantity`BIGINT`A positive integer representing the number of instances of `parent` that are included in this order item. Applicable/present only if `type` is `sku`.
items_type`TEXT`The type of line item. One of `sku`, `tax`, `shipping`, or `discount`.

Sku

Stores representations of stock keeping units. SKUs describe specific product variations, taking into account any combination of: attributes, currency, and cost. For example, a product may be a T-shirt, whereas a specific SKU represents the `size: large`, `color: red` version of that shirt.

Can also be used to manage inventory.

Related guide: Tax, Shipping, and Inventory.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
deleted`BOOLEAN`Always true for a deleted object
object`TEXT`String representing the object's type. Objects of the same type share the same value.
active`BOOLEAN`Whether the SKU is available for purchase.
attributes`JSONB`A dictionary of attributes and values for the attributes defined by the product. If, for example, a product's attributes are `["size", "gender"]`, a valid SKU has the following dictionary of attributes: `{"size": "Medium", "gender": "Unisex"}`.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
image`TEXT`The URL of an image for this SKU, meant to be displayable to the customer.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
price`BIGINT`The cost of the item as a positive integer in the smallest currency unit (that is, 100 cents to charge $1.00, or 100 to charge ÂĄ100, Japanese Yen being a zero-decimal currency).
product_id`TEXT`The ID of the product this SKU is associated with. The product must be currently active.Product
updated`TIMESTAMP`Time at which the object was last updated. Measured in seconds since the Unix epoch.
package_dimensions_height`NUMERIC`Height, in inches.
package_dimensions_length`NUMERIC`Length, in inches.
package_dimensions_weight`NUMERIC`Weight, in ounces.
package_dimensions_width`NUMERIC`Width, in inches.
inventory_quantity`BIGINT`The count of inventory available. Will be present if and only if `type` is `finite`.
inventory_type`TEXT`Inventory type. Possible values are `finite`, `bucket` (not quantified), and `infinite`.
inventory_value`TEXT`An indicator of the inventory available. Possible values are `in_stock`, `limited`, and `out_of_stock`. Will be present if and only if `type` is `bucket`.

Additional Tables

Beyond syncing data related to customers, products, and charges, Sync Inc will also sync all the other data provided by the Stripe API. Below are additional tables that are available in your Sync Inc database.

Sessions and Portals

Some waffle about the core tables and what's important.

Billing_portal_configuration

A portal configuration describes the functionality and behavior of a portal session.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
active`BOOLEAN`Whether the configuration is active and can be used to create portal sessions.
application_id`TEXT`ID of the Connect Application that created the configuration.Application
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
default_return_url`TEXT`The default URL to redirect customers to when they click on the portal's link to return to your website. This can be overriden when creating the session.
is_default`BOOLEAN`Whether the configuration is the default. If `true`, this configuration can be managed in the Dashboard and portal sessions will use this configuration unless it is overriden when creating the session.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
updated`TIMESTAMP`Time at which the object was last updated. Measured in seconds since the Unix epoch.
features_customer_update`JSONB`
features_invoice_history`JSONB`
features_payment_method_update`JSONB`
features_subscription_cancel`JSONB`
features_subscription_pause`JSONB`
features_subscription_update`JSONB`
business_profile_headline`TEXT`The messaging shown to customers in the portal.
business_profile_privacy_policy_url`TEXT`A link to the business’s publicly available privacy policy.
business_profile_terms_of_service_url`TEXT`A link to the business’s publicly available terms of service.

Billing_portal_session

The Billing customer portal is a Stripe-hosted UI for subscription and billing management.

A portal configuration describes the functionality and features that you want to provide to your customers through the portal.

A portal session describes the instantiation of the customer portal for a particular customer. By visiting the session's URL, the customer can manage their subscriptions and billing details. For security reasons, sessions are short-lived and will expire if the customer does not visit the URL. Create sessions on-demand when customers intend to manage their subscriptions and billing details.

Learn more in the product overview and integration guide.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
configuration_id`TEXT`The configuration used by this session, describing the features available.Billing_portal.configuration
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
customer_id`TEXT`The ID of the customer for this session.Customer
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
on_behalf_of`TEXT`The account for which the session was created on behalf of. When specified, only subscriptions and invoices with this `on_behalf_of` account appear in the portal. For more information, see the docs. Use the Accounts API to modify the `on_behalf_of` account's branding settings, which the portal displays.
return_url`TEXT`The URL to redirect customers to when they click on the portal's link to return to your website.
url`TEXT`The short-lived URL of the session that gives customers access to the customer portal.

Checkout_session

A Checkout Session represents your customer's session as they pay for one-time purchases or subscriptions through Checkout. We recommend creating a new Session each time your customer attempts to pay.

Once payment is successful, the Checkout Session will contain a reference to the Customer, and either the successful PaymentIntent or an active Subscription.

You can create a Checkout Session on your server and pass its ID to the client to begin Checkout.

Related guide: Checkout Server Quickstart.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object. Used to pass to `redirectToCheckout`
in Stripe.js.
allow_promotion_codes`BOOLEAN`Enables user redeemable promotion codes.
amount_subtotal`BIGINT`Total of all items before discounts or taxes are applied.
amount_total`BIGINT`Total of all items after discounts and taxes are applied.
billing_address_collection`TEXT`Describes whether Checkout should collect the customer's billing address.
cancel_url`TEXT`The URL the customer will be directed to if they decide to cancel payment and return to your website.
client_reference_id`TEXT`A unique string to reference the Checkout Session. This can be a
customer ID, a cart ID, or similar, and can be used to reconcile the
Session with your internal systems.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
customer_id`TEXT`The ID of the customer for this Session.
For Checkout Sessions in `payment` or `subscription` mode, Checkout
will create a new customer object based on information provided
during the payment flow unless an existing customer was provided when
the Session was created.
Customer
customer_email`TEXT`If provided, this value will be used when the Customer object is created.
If not provided, customers will be asked to enter their email address.
Use this parameter to prefill customer data if you already have an email
on file. To access information about the customer once the payment flow is
complete, use the `customer` attribute.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
locale`TEXT`The IETF language tag of the locale Checkout is displayed in. If blank or `auto`, the browser's locale is used.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
mode`TEXT`The mode of the Checkout Session.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
payment_intent_id`TEXT`The ID of the PaymentIntent for Checkout Sessions in `payment` mode.Payment_intent
payment_method_types`TEXT[]`A list of the types of payment methods (e.g. card) this Checkout
Session is allowed to accept.
payment_status`TEXT`The payment status of the Checkout Session, one of `paid`, `unpaid`, or `no_payment_required`.
You can use this value to decide when to fulfill your customer's order.
setup_intent_id`TEXT`The ID of the SetupIntent for Checkout Sessions in `setup` mode.Setup_intent
submit_type`TEXT`Describes the type of transaction being performed by Checkout in order to customize
relevant text on the page, such as the submit button. `submit_type` can only be
specified on Checkout Sessions in `payment` mode, but not Checkout Sessions
in `subscription` or `setup` mode.
subscription_id`TEXT`The ID of the subscription for Checkout Sessions in `subscription` mode.Subscription
success_url`TEXT`The URL the customer will be directed to after the payment or
subscription creation is successful.
shipping_address`JSONB`
shipping_carrier`TEXT`The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
shipping_name`TEXT`Recipient name.
shipping_phone`TEXT`Recipient phone (including extension).
shipping_tracking_number`TEXT`The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.
shipping_address_collection_allowed_countries`TEXT[]`An array of two-letter ISO country codes representing which countries Checkout should provide as options for
shipping locations. Unsupported country codes: `AS, CX, CC, CU, HM, IR, KP, MH, FM, NF, MP, PW, SD, SY, UM, VI`.
customer_details_email`TEXT`The customer’s email at time of checkout.
customer_details_tax_exempt`TEXT`The customer’s tax exempt status at time of checkout.
customer_details_tax_ids`JSONB`The customer’s tax IDs at time of checkout.
total_details_amount_discount`BIGINT`This is the sum of all the line item discounts.
total_details_amount_shipping`BIGINT`This is the sum of all the line item shipping amounts.
total_details_amount_tax`BIGINT`This is the sum of all the line item tax amounts.
total_details_breakdown`JSONB`
payment_method_options_acss_debit`JSONB`

Radar

These tables store objects related to Stripe Radar and fraud.

Radar_early_fraud_warning

An early fraud warning indicates that the card issuer has notified us that a charge may be fraudulent.

Related guide: Early Fraud Warnings.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
actionable`BOOLEAN`An EFW is actionable if it has not received a dispute and has not been fully refunded. You may wish to proactively refund a charge that receives an EFW, in order to avoid receiving a dispute later.
charge_id`TEXT`ID of the charge this early fraud warning is for, optionally expanded.Charge
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
fraud_type`TEXT`The type of fraud labelled by the issuer. One of `card_never_received`, `fraudulent_card_application`, `made_with_counterfeit_card`, `made_with_lost_card`, `made_with_stolen_card`, `misc`, `unauthorized_use_of_card`.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
payment_intent_id`TEXT`ID of the Payment Intent this early fraud warning is for, optionally expanded.Payment_intent

Radar_value_list

Value lists allow you to group values together which can then be referenced in rules.

Related guide: Default Stripe Lists.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
deleted`BOOLEAN`Always true for a deleted object
object`TEXT`String representing the object's type. Objects of the same type share the same value.
alias`TEXT`The name of the value list for use in rules.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
created_by`TEXT`The name or email address of the user who created this value list.
item_type`TEXT`The type of items in the value list. One of `card_fingerprint`, `card_bin`, `email`, `ip_address`, `country`, `string`, or `case_sensitive_string`.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
name`TEXT`The name of the value list.

Radar_value_list_item

Value list items allow you to add specific values to a given Radar value list, which can then be used in rules.

Related guide: Managing List Items.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
deleted`BOOLEAN`Always true for a deleted object
object`TEXT`String representing the object's type. Objects of the same type share the same value.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
created_by`TEXT`The name or email address of the user who added this item to the value list.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
value`TEXT`The value of the item.
value_list`TEXT`The identifier of the value list this item belongs to.Radar.value_list

Reporting

These tables store objects related to Stripe Sigma and report generation.

Reporting_report_run

The Report Run object represents an instance of a report type generated with specific run parameters. Once the object is created, Stripe begins processing the report. When the report has finished running, it will give you a reference to a file where you can retrieve your results. For an overview, see API Access to Reports.

Note that certain report types can only be run based on your live-mode data (not test-mode data), and will error when queried without a live-mode API key.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
error`TEXT`If something should go wrong during the run, a message about the failure (populated when
`status=failed`).
livemode`BOOLEAN``true` if the report is run on live mode data and `false` if it is run on test mode data.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
report_type`TEXT`The ID of the report type to run, such as `"balance.summary.1"`.Reporting.report_type
result_id`TEXT`The file object representing the result of the report run (populated when
`status=succeeded`).
File
status`TEXT`Status of this report run. This will be `pending` when the run is initially created.
When the run finishes, this will be set to `succeeded` and the `result` field will be populated.
Rarely, we may encounter an error, at which point this will be set to `failed` and the `error` field will be populated.
succeeded_at`TIMESTAMP`Timestamp at which this run successfully finished (populated when
`status=succeeded`). Measured in seconds since the Unix epoch.
parameters_columns`TEXT[]`The set of output columns requested for inclusion in the report run.
parameters_connected_account`TEXT`Connected account ID by which to filter the report run.
parameters_currency`TEXT`Currency of objects to be included in the report run.
parameters_interval_end`TIMESTAMP`Ending timestamp of data to be included in the report run (exclusive).
parameters_interval_start`TIMESTAMP`Starting timestamp of data to be included in the report run.
parameters_payout`TEXT`Payout ID by which to filter the report run.
parameters_reporting_category`TEXT`Category of balance transactions to be included in the report run.
parameters_timezone`TEXT`Defaults to `Etc/UTC`. The output timezone for all timestamps in the report. A list of possible time zone values is maintained at the IANA Time Zone Database. Has no effect on `interval_start` or `interval_end`.

Reporting_report_type

The Report Type resource corresponds to a particular type of report, such as the "Activity summary" or "Itemized payouts" reports. These objects are identified by an ID belonging to a set of enumerated values. See API Access to Reports documentation for those Report Type IDs, along with required and optional parameters.

Note that certain report types can only be run based on your live-mode data (not test-mode data), and will error when queried without a live-mode API key.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`The ID of the Report Type, such as `balance.summary.1`.
data_available_end`TIMESTAMP`Most recent time for which this Report Type is available. Measured in seconds since the Unix epoch.
data_available_start`TIMESTAMP`Earliest time for which this Report Type is available. Measured in seconds since the Unix epoch.
default_columns`TEXT[]`List of column names that are included by default when this Report Type gets run. (If the Report Type doesn't support the `columns` parameter, this will be null.)
name`TEXT`Human-readable name of the Report Type
object`TEXT`String representing the object's type. Objects of the same type share the same value.
updated`TIMESTAMP`When this Report Type was latest updated. Measured in seconds since the Unix epoch.
version`BIGINT`Version of the Report Type. Different versions report with the same ID will have the same purpose, but may take different run parameters or have different result schemas.

Scheduled_query_run

If you have scheduled a Sigma query, you'll receive a `sigma.scheduled_query_run.created` webhook each time the query runs. The webhook contains a `ScheduledQueryRun` object, which you can use to retrieve the query results.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
data_load_time`TIMESTAMP`When the query was run, Sigma contained a snapshot of your Stripe data at this time.
file_id`TEXT`The file object representing the results of the query.File
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
result_available_until`TIMESTAMP`Time at which the result expires and is no longer available for download.
sql`TEXT`SQL for the query.
status`TEXT`The query's execution status, which will be `completed` for successful runs, and `canceled`, `failed`, or `timed_out` otherwise.
title`TEXT`Title of the query.
error_message`TEXT`Information about the run failure.

Tax

These tables store objects related to taxes.

Tax_deducted_at_source

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
period_end`TIMESTAMP`The end of the invoicing period. This TDS applies to Stripe fees collected during this invoicing period.
period_start`TIMESTAMP`The start of the invoicing period. This TDS applies to Stripe fees collected during this invoicing period.
tax_deduction_account_number`TEXT`The TAN that was supplied to Stripe when TDS was assessed

Tax_id

You can add one or multiple tax IDs to a customer. A customer's tax IDs are displayed on invoices and credit notes issued for the customer.

Related guide: Customer Tax Identification Numbers.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
deleted`BOOLEAN`Always true for a deleted object
object`TEXT`String representing the object's type. Objects of the same type share the same value.
country`TEXT`Two-letter ISO code representing the country of the tax ID.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
customer_id`TEXT`ID of the customer.Customer
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
type`TEXT`Type of the tax ID, one of `ae_trn`, `au_abn`, `br_cnpj`, `br_cpf`, `ca_bn`, `ca_qst`, `ch_vat`, `cl_tin`, `es_cif`, `eu_vat`, `gb_vat`, `hk_br`, `id_npwp`, `in_gst`, `jp_cn`, `jp_rn`, `kr_brn`, `li_uid`, `mx_rfc`, `my_frp`, `my_itn`, `my_sst`, `no_vat`, `nz_gst`, `ru_inn`, `ru_kpp`, `sa_vat`, `sg_gst`, `sg_uen`, `th_vat`, `tw_vat`, `us_ein`, or `za_vat`. Note that some legacy tax IDs have type `unknown`
value`TEXT`Value of the tax ID.
verification_status`TEXT`Verification status, one of `pending`, `verified`, `unverified`, or `unavailable`.
verification_verified_address`TEXT`Verified address.
verification_verified_name`TEXT`Verified name.

Tax_rate

Tax rates can be applied to invoices, subscriptions and Checkout Sessions to collect tax.

Related guide: Tax Rates.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
active`BOOLEAN`Defaults to `true`. When set to `false`, this tax rate cannot be used with new applications or Checkout Sessions, but will still work for subscriptions and invoices that already have it set.
country`TEXT`Two-letter country code (ISO 3166-1 alpha-2).
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
description`TEXT`An arbitrary string attached to the tax rate for your internal use only. It will not be visible to your customers.
display_name`TEXT`The display name of the tax rates as it will appear to your customer on their receipt email, PDF, and the hosted invoice page.
inclusive`BOOLEAN`This specifies if the tax rate is inclusive or exclusive.
jurisdiction`TEXT`The jurisdiction for the tax rate. You can use this label field for tax reporting purposes. It also appears on your customer’s invoice.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
percentage`NUMERIC`This represents the tax rate percent out of 100.
state`TEXT`ISO 3166-2 subdivision code, without country prefix. For example, "NY" for New York, United States.

Terminal

These tables store objects related to Stripe terminal.

Terminal_location

A Location represents a grouping of readers.

Related guide: Fleet Management.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
deleted`BOOLEAN`Always true for a deleted object
object`TEXT`String representing the object's type. Objects of the same type share the same value.
display_name`TEXT`The display name of the location.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
address_city`TEXT`City, district, suburb, town, or village.
address_country`TEXT`Two-letter country code (ISO 3166-1 alpha-2).
address_line1`TEXT`Address line 1 (e.g., street, PO Box, or company name).
address_line2`TEXT`Address line 2 (e.g., apartment, suite, unit, or building).
address_postal_code`TEXT`ZIP or postal code.
address_state`TEXT`State, county, province, or region.

Terminal_reader

A Reader represents a physical device for accepting payment details.

Related guide: Connecting to a Reader.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
deleted`BOOLEAN`Always true for a deleted object
object`TEXT`String representing the object's type. Objects of the same type share the same value.
device_sw_version`TEXT`The current software version of the reader.
device_type`TEXT`Type of reader, one of `bbpos_chipper2x` or `verifone_P400`.
ip_address`TEXT`The local IP address of the reader.
label`TEXT`Custom label given to the reader for easier identification.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
location`TEXT`The location identifier of the reader.Terminal.location
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
serial_number`TEXT`Serial number of the reader.
status`TEXT`The networking status of the reader.

Issuing Tables

These tables relate to issuing cards.

Issuer_fraud_record

This resource has been renamed to Early Fraud Warning and will be removed in a future API version.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
actionable`BOOLEAN`An IFR is actionable if it has not received a dispute and has not been fully refunded. You may wish to proactively refund a charge that receives an IFR, in order to avoid receiving a dispute later.
charge_id`TEXT`ID of the charge this issuer fraud record is for, optionally expanded.Charge
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
fraud_type`TEXT`The type of fraud labelled by the issuer. One of `card_never_received`, `fraudulent_card_application`, `made_with_counterfeit_card`, `made_with_lost_card`, `made_with_stolen_card`, `misc`, `unauthorized_use_of_card`.
has_liability_shift`BOOLEAN`If true, the associated charge is subject to liability shift.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
post_date`BIGINT`The timestamp at which the card issuer posted the issuer fraud record.

Issuing_authorization

When an issued card is used to make a purchase, an Issuing `Authorization` object is created. Authorizations must be approved for the purchase to be completed successfully.

Related guide: Issued Card Authorizations.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`The total amount that was authorized or rejected. This amount is in the card's currency and in the smallest currency unit.
approved`BOOLEAN`Whether the authorization has been approved.
authorization_method`TEXT`How the card details were provided.
card_id`TEXT`Issuing.card
cardholder_id`TEXT`The cardholder to whom this authorization belongs.Issuing.cardholder
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
merchant_amount`BIGINT`The total amount that was authorized or rejected. This amount is in the `merchant_currency` and in the smallest currency unit.
merchant_currency`TEXT`The currency that was presented to the cardholder for the authorization. Three-letter ISO currency code, in lowercase. Must be a supported currency.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
status`TEXT`The current status of the authorization in its lifecycle.
wallet`TEXT`What, if any, digital wallet was used for this authorization. One of `apple_pay`, `google_pay`, or `samsung_pay`.
amount_details_atm_fee`BIGINT`The fee charged by the ATM for the cash withdrawal.
merchant_data_category`TEXT`A categorization of the seller's type of business. See our merchant categories guide for a list of possible values.
merchant_data_city`TEXT`City where the seller is located
merchant_data_country`TEXT`Country where the seller is located
merchant_data_name`TEXT`Name of the seller
merchant_data_network_id`TEXT`Identifier assigned to the seller by the card brand
merchant_data_postal_code`TEXT`Postal code where the seller is located
merchant_data_state`TEXT`State where the seller is located
verification_data_address_line1_check`TEXT`Whether the cardholder provided an address first line and if it matched the cardholder’s `billing.address.line1`.
verification_data_address_postal_code_check`TEXT`Whether the cardholder provided a postal code and if it matched the cardholder’s `billing.address.postal_code`.
verification_data_cvc_check`TEXT`Whether the cardholder provided a CVC and if it matched Stripe’s record.
verification_data_expiry_check`TEXT`Whether the cardholder provided an expiry date and if it matched Stripe’s record.
pending_request_amount`BIGINT`The additional amount Stripe will hold if the authorization is approved, in the card's currency and in the smallest currency unit.
pending_request_amount_details`JSONB`Detailed breakdown of amount components. These amounts are denominated in `currency` and in the smallest currency unit.
pending_request_currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
pending_request_is_amount_controllable`BOOLEAN`If set `true`, you may provide amount to control how much to hold for the authorization.
pending_request_merchant_amount`BIGINT`The amount the merchant is requesting to be authorized in the `merchant_currency`. The amount is in the smallest currency unit.
pending_request_merchant_currency`TEXT`The local currency the merchant is requesting to authorize.
request_history_amount`BIGINT`The `pending_request.amount` at the time of the request, presented in your card's currency and in the smallest currency unit. Stripe held this amount from your account to fund the authorization if the request was approved.
request_history_amount_details`JSONB`Detailed breakdown of amount components. These amounts are denominated in `currency` and in the smallest currency unit.
request_history_approved`BOOLEAN`Whether this request was approved.
request_history_created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
request_history_currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
request_history_merchant_amount`BIGINT`The `pending_request.merchant_amount` at the time of the request, presented in the `merchant_currency` and in the smallest currency unit.
request_history_merchant_currency`TEXT`The currency that was collected by the merchant and presented to the cardholder for the authorization. Three-letter ISO currency code, in lowercase. Must be a supported currency.
request_history_reason`TEXT`The reason for the approval or decline.

Issuing_card

You can create physical or virtual cards that are issued to cardholders.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
brand`TEXT`The brand of the card.
cancellation_reason`TEXT`The reason why the card was canceled.
cardholder_id`TEXT`Issuing.cardholder
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
cvc`TEXT`The card's CVC. For security reasons, this is only available for virtual cards, and will be omitted unless you explicitly request it with the `expand` parameter. Additionally, it's only available via the "Retrieve a card" endpoint, not via "List all cards" or any other endpoint.
exp_month`BIGINT`The expiration month of the card.
exp_year`BIGINT`The expiration year of the card.
last4`TEXT`The last 4 digits of the card number.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
number`TEXT`The full unredacted card number. For security reasons, this is only available for virtual cards, and will be omitted unless you explicitly request it with the `expand` parameter. Additionally, it's only available via the "Retrieve a card" endpoint, not via "List all cards" or any other endpoint.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
replaced_by_id`TEXT`The latest card that replaces this card, if any.Issuing.card
replacement_for_id`TEXT`The card this card replaces, if any.Issuing.card
replacement_reason`TEXT`The reason why the previous card needed to be replaced.
status`TEXT`Whether authorizations can be approved on this card.
type`TEXT`The type of the card.
shipping_address`JSONB`
shipping_carrier`TEXT`The delivery company that shipped a card.
shipping_eta`TIMESTAMP`A unix timestamp representing a best estimate of when the card will be delivered.
shipping_name`TEXT`Recipient name.
shipping_service`TEXT`Shipment service, such as `standard` or `express`.
shipping_status`TEXT`The delivery status of the card.
shipping_tracking_number`TEXT`A tracking number for a card shipment.
shipping_tracking_url`TEXT`A link to the shipping carrier's site where you can view detailed information about a card shipment.
shipping_type`TEXT`Packaging options.
spending_controls_allowed_categories`TEXT[]`Array of strings containing categories of authorizations to allow. All other categories will be blocked. Cannot be set with `blocked_categories`.
spending_controls_blocked_categories`TEXT[]`Array of strings containing categories of authorizations to decline. All other categories will be allowed. Cannot be set with `allowed_categories`.
spending_controls_spending_limits`JSONB`Limit spending with amount-based rules that apply across any cards this card replaced (i.e., its `replacement_for` card and that card's `replacement_for` card, up the chain).
spending_controls_spending_limits_currency`TEXT`Currency of the amounts within `spending_limits`. Always the same as the currency of the card.

Issuing_cardholder

An Issuing `Cardholder` object represents an individual or business entity who is issued cards.

Related guide: How to create a Cardholder

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
email`TEXT`The cardholder's email address.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
name`TEXT`The cardholder's name. This will be printed on cards issued to them.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
phone_number`TEXT`The cardholder's phone number.
status`TEXT`Specifies whether to permit authorizations on this cardholder's cards.
type`TEXT`One of `individual` or `company`.
billing_address`JSONB`
individual_dob`JSONB`The date of birth of this cardholder.
individual_first_name`TEXT`The first name of this cardholder.
individual_last_name`TEXT`The last name of this cardholder.
individual_verification`JSONB`Government-issued ID document for this cardholder.
requirements_disabled_reason`TEXT`If `disabled_reason` is present, all cards will decline authorizations with `cardholder_verification_required` reason.
requirements_past_due`TEXT[]`Array of fields that need to be collected in order to verify and re-enable the cardholder.
company_tax_id_provided`BOOLEAN`Whether the company's business ID number was provided.
spending_controls_allowed_categories`TEXT[]`Array of strings containing categories of authorizations to allow. All other categories will be blocked. Cannot be set with `blocked_categories`.
spending_controls_blocked_categories`TEXT[]`Array of strings containing categories of authorizations to decline. All other categories will be allowed. Cannot be set with `allowed_categories`.
spending_controls_spending_limits`JSONB`Limit spending with amount-based rules that apply across this cardholder's cards.
spending_controls_spending_limits_currency`TEXT`Currency of the amounts within `spending_limits`.

Issuing_dispute

As a card issuer, you can dispute transactions that the cardholder does not recognize, suspects to be fraudulent, or has other issues with.

Related guide: Disputing Transactions

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`Disputed amount. Usually the amount of the `transaction`, but can differ (usually because of currency fluctuation).
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`The currency the `transaction` was made in.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
status`TEXT`Current status of the dispute.
transaction_id`TEXT`The transaction being disputed.Issuing.transaction
evidence_canceled`JSONB`
evidence_duplicate`JSONB`
evidence_fraudulent`JSONB`
evidence_merchandise_not_as_described`JSONB`
evidence_not_received`JSONB`
evidence_other`JSONB`
evidence_reason`TEXT`The reason for filing the dispute. Its value will match the field containing the evidence.
evidence_service_not_as_described`JSONB`

Issuing_transaction

Any use of an issued card that results in funds entering or leaving your Stripe account, such as a completed purchase or refund, is represented by an Issuing `Transaction` object.

Related guide: Issued Card Transactions.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`The transaction amount, which will be reflected in your balance. This amount is in your currency and in the smallest currency unit.
authorization_id`TEXT`The `Authorization` object that led to this transaction.Issuing.authorization
balance_transaction_id`TEXT`ID of the balance transaction associated with this transaction.Balance_transaction
card_id`TEXT`The card used to make this transaction.Issuing.card
cardholder_id`TEXT`The cardholder to whom this transaction belongs.Issuing.cardholder
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
dispute_id`TEXT`If you've disputed the transaction, the ID of the dispute.Issuing.dispute
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
merchant_amount`BIGINT`The amount that the merchant will receive, denominated in `merchant_currency` and in the smallest currency unit. It will be different from `amount` if the merchant is taking payment in a different currency.
merchant_currency`TEXT`The currency with which the merchant is taking payment.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
type`TEXT`The nature of the transaction.
merchant_data_category`TEXT`A categorization of the seller's type of business. See our merchant categories guide for a list of possible values.
merchant_data_city`TEXT`City where the seller is located
merchant_data_country`TEXT`Country where the seller is located
merchant_data_name`TEXT`Name of the seller
merchant_data_network_id`TEXT`Identifier assigned to the seller by the card brand
merchant_data_postal_code`TEXT`Postal code where the seller is located
merchant_data_state`TEXT`State where the seller is located
purchase_details_flight`JSONB`Information about the flight that was purchased with this transaction.
purchase_details_fuel`JSONB`Information about fuel that was purchased with this transaction.
purchase_details_lodging`JSONB`Information about lodging that was purchased with this transaction.
purchase_details_receipt`JSONB`The line items in the purchase.
purchase_details_reference`TEXT`A merchant-specific order number.
amount_details_atm_fee`BIGINT`The fee charged by the ATM for the cash withdrawal.

Other

Alipay_account

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
customer_id`TEXT`The ID of the customer associated with this Alipay Account.Customer
fingerprint`TEXT`Uniquely identifies the account and will be the same across all Alipay account objects that are linked to the same Alipay account.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
payment_amount`BIGINT`If the Alipay account object is not reusable, the exact amount that you can create a charge for.
payment_currency`TEXT`If the Alipay account object is not reusable, the exact currency that you can create a charge for.
reusable`BOOLEAN`True if you can create multiple payments using this account. If the account is reusable, then you can freely choose the amount of each payment.
used`BOOLEAN`Whether this Alipay account object has ever been used for a payment.
username`TEXT`The username for the Alipay account.
deleted`BOOLEAN`Always true for a deleted object

Bitcoin_receiver

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
active`BOOLEAN`True when this bitcoin receiver has received a non-zero amount of bitcoin.
amount`BIGINT`The amount of `currency` that you are collecting as payment.
amount_received`BIGINT`The amount of `currency` to which `bitcoin_amount_received` has been converted.
bitcoin_amount`BIGINT`The amount of bitcoin that the customer should send to fill the receiver. The `bitcoin_amount` is denominated in Satoshi: there are 10^8 Satoshi in one bitcoin.
bitcoin_amount_received`BIGINT`The amount of bitcoin that has been sent by the customer to this receiver.
bitcoin_uri`TEXT`This URI can be displayed to the customer as a clickable link (to activate their bitcoin client) or as a QR code (for mobile wallets).
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO code for the currency to which the bitcoin will be converted.
customer_id`TEXT`The customer ID of the bitcoin receiver.Customer
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users.
email`TEXT`The customer's email address, set by the API call that creates the receiver.
filled`BOOLEAN`This flag is initially false and updates to true when the customer sends the `bitcoin_amount` to this receiver.
inbound_address`TEXT`A bitcoin address that is specific to this receiver. The customer can send bitcoin to this address to fill the receiver.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
payment`TEXT`The ID of the payment created from the receiver, if any. Hidden when viewing the receiver with a publishable key.
refund_address`TEXT`The refund address of this bitcoin receiver.
uncaptured_funds`BOOLEAN`This receiver contains uncaptured funds that can be used for a payment or refunded.
used_for_payment`BOOLEAN`Indicate if this source is used for payment.
deleted`BOOLEAN`Always true for a deleted object

Bitcoin_transaction

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`The amount of `currency` that the transaction was converted to in real-time.
bitcoin_amount`BIGINT`The amount of bitcoin contained in the transaction.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO code for the currency to which this transaction was converted.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
receiver`TEXT`The receiver to which this transaction was sent.Bitcoin_receiver

Reserve_transaction

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
description`TEXT`An arbitrary string attached to the object. Often useful for displaying to users.
object`TEXT`String representing the object's type. Objects of the same type share the same value.

Source_mandate_notification

Source mandate notifications should be created when a notification related to a source mandate must be sent to the payer. They will trigger a webhook or deliver an email to the customer.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ÂĄ1, Japanese Yen being a zero-decimal currency) representing the amount associated with the mandate notification. The amount is expressed in the currency of the underlying source. Required if the notification type is `debit_initiated`.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
reason`TEXT`The reason of the mandate notification. Valid reasons are `mandate_confirmed` or `debit_initiated`.
source_id`TEXT`Source
status`TEXT`The status of the mandate notification. Valid statuses are `pending` or `submitted`.
type`TEXT`The type of source this mandate notification is attached to. Should be the source type identifier code for the payment method, such as `three_d_secure`.
acss_debit_statement_descriptor`TEXT`The statement descriptor associate with the debit.
bacs_debit_last4`TEXT`Last 4 digits of the account number associated with the debit.
sepa_debit_creditor_identifier`TEXT`SEPA creditor ID.
sepa_debit_last4`TEXT`Last 4 digits of the account number associated with the debit.
sepa_debit_mandate_reference`TEXT`Mandate reference associated with the debit.

Source_transaction

Some payment methods have no required amount that a customer must send. Customers can be instructed to send any amount, and it can be made up of multiple transactions. As such, sources can have multiple associated transactions.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ÂĄ1, Japanese Yen being a zero-decimal currency) representing the amount your customer has pushed to the receiver.
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
source_id`TEXT`The ID of the source this transaction is attached to.Source
status`TEXT`The status of the transaction, one of `succeeded`, `pending`, or `failed`.
type`TEXT`The type of source this transaction is attached to.
sepa_credit_transfer_reference`TEXT`Reference associated with the transfer.
sepa_credit_transfer_sender_iban`TEXT`Sender's bank account IBAN.
sepa_credit_transfer_sender_name`TEXT`Sender's name.
gbp_credit_transfer_fingerprint`TEXT`Bank account fingerprint associated with the Stripe owned bank account receiving the transfer.
gbp_credit_transfer_funding_method`TEXT`The credit transfer rails the sender used to push this transfer. The possible rails are: Faster Payments, BACS, CHAPS, and wire transfers. Currently only Faster Payments is supported.
gbp_credit_transfer_last4`TEXT`Last 4 digits of sender account number associated with the transfer.
gbp_credit_transfer_reference`TEXT`Sender entered arbitrary information about the transfer.
gbp_credit_transfer_sender_account_number`TEXT`Sender account number associated with the transfer.
gbp_credit_transfer_sender_name`TEXT`Sender name associated with the transfer.
gbp_credit_transfer_sender_sort_code`TEXT`Sender sort code associated with the transfer.
chf_credit_transfer_reference`TEXT`Reference associated with the transfer.
chf_credit_transfer_sender_address_country`TEXT`Sender's country address.
chf_credit_transfer_sender_address_line1`TEXT`Sender's line 1 address.
chf_credit_transfer_sender_iban`TEXT`Sender's bank account IBAN.
chf_credit_transfer_sender_name`TEXT`Sender's name.
ach_credit_transfer_customer_data`TEXT`Customer data associated with the transfer.
ach_credit_transfer_fingerprint`TEXT`Bank account fingerprint associated with the transfer.
ach_credit_transfer_last4`TEXT`Last 4 digits of the account number associated with the transfer.
ach_credit_transfer_routing_number`TEXT`Routing number associated with the transfer.
paper_check_available_at`TEXT`Time at which the deposited funds will be available for use. Measured in seconds since the Unix epoch.
paper_check_invoices`TEXT`Comma-separated list of invoice IDs associated with the paper check.

Three_d_secure

Cardholder authentication via 3D Secure is initiated by creating a `3D Secure` object. Once the object has been created, you can use it to authenticate the cardholder and create a charge.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
amount`BIGINT`Amount of the charge that you will create when authentication completes.
authenticated`BOOLEAN`True if the cardholder went through the authentication flow and their bank indicated that authentication succeeded.
card_id`TEXT`Card
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
currency`TEXT`Three-letter ISO currency code, in lowercase. Must be a supported currency.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
object`TEXT`String representing the object's type. Objects of the same type share the same value.
redirect_url`TEXT`If present, this is the URL that you should send the cardholder to for authentication. If you are going to use Stripe.js to display the authentication page in an iframe, you should use the value "_callback".
status`TEXT`Possible values are `redirect_pending`, `succeeded`, or `failed`. When the cardholder can be authenticated, the object starts with status `redirect_pending`. When liability will be shifted to the cardholder's bank (either because the cardholder was successfully authenticated, or because the bank has not implemented 3D Secure, the object wlil be in status `succeeded`. `failed` indicates that authentication was attempted unsuccessfully.

Webhook_endpoint

You can configure webhook endpoints via the API to be notified about events that happen in your Stripe account or connected accounts.

Most users configure webhooks from the dashboard, which provides a user interface for registering and testing your webhook endpoints.

Related guide: Setting up Webhooks.

Links

ColumnData TypeDescriptionReferences
id (PK)`TEXT`Unique identifier for the object.
deleted`BOOLEAN`Always true for a deleted object
object`TEXT`String representing the object's type. Objects of the same type share the same value.
api_version`TEXT`The API version events are rendered as for this webhook endpoint.
application_id`TEXT`The ID of the associated Connect application.Application
created`TIMESTAMP`Time at which the object was created. Measured in seconds since the Unix epoch.
description`TEXT`An optional description of what the webhook is used for.
enabled_events`TEXT[]`The list of events to enable for this endpoint. `['*']` indicates that all events are enabled, except those that require explicit selection.
livemode`BOOLEAN`Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
metadata`JSONB`Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
secret`TEXT`The endpoint's secret, used to generate webhook signatures. Only returned at creation.
status`TEXT`The status of the webhook. It can be `enabled` or `disabled`.
url`TEXT`The URL of the webhook endpoint.
Reference
AWS Lambda

Was this helpful?