API Reference Striped v0.4.0
modules
Modules
Library to interface with the Stripe Api. Most of the code is generated from the Stripe OpenApi definitions.
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.
Account Links are the means by which a Connect platform grants a connected account permission to access Stripe-hosted applications, such as Connect Onboarding.
Secret Store is an API that allows Stripe Apps developers to securely persist secrets for use by UI Extensions and app backends.
This is an object representing your Stripe balance. You can retrieve it to see the balance currently on your Stripe account.
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.
These bank accounts are payment methods on Customer
objects.
A portal configuration describes the functionality and behavior of a portal session.
The Billing customer portal is a Stripe-hosted UI for subscription and billing management.
This is an object representing a capability for a Stripe account.
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.
A customer's Cash balance
represents real funds. Customers can add funds to their cash balance by sending a bank transfer. These funds can be used for payment and can eventually be paid out to your bank account.
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.
A Checkout Session represents your customer's session as they pay for one-time purchases or subscriptions through Checkout or Payment Links. We recommend creating a new Session each time your customer attempts to pay.
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.
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 subscriptions, invoices, checkout sessions, quotes, and more. Coupons do not work with conventional one-off charges or payment intents.
Issue a credit note to adjust an invoice's amount after the invoice is finalized.
This object represents a customer of your business. It lets you create recurring charges and track payments that belong to the same customer.
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
.
Customers with certain payments enabled have a cash balance, representing funds that were paid by the customer to a merchant, but have not yet been allocated to a payment. Cash Balance Transactions represent when funds are moved into or out of this balance. This includes funding by the customer, allocation to payments, and refunds to the customer.
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.
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.
Exchange Rate
objects allow you to determine the rates that Stripe is
currently using to convert from one currency to another. Since this number is
variable throughout the day, there are various reasons why you might want to
know the current rate (for example, to dynamically price an item for a user
with a default payment in a foreign currency).
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.
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).
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.
A Financial Connections Account represents an account that exists outside of Stripe, to which you have been granted some degree of access.
A Financial Connections Session is the secure way to programmatically launch the client-side Stripe.js modal that lets your users link their accounts.
Each customer has a balance
that is
automatically applied to future invoices and payments using the customer_balance
payment method.
Customers can fund this balance by initiating a bank transfer to any account in the
financial_addresses
field.
Related guide: Customer Balance - Funding Instructions to learn more
A VerificationReport is the result of an attempt to collect and verify data from a user.
The collection of verification checks performed is determined from the type
and options
parameters used. You can find the result of each verification check performed in the
appropriate sub-resource: document
, id_number
, selfie
.
A VerificationSession guides you through the process of collecting and verifying the identities of your users. It contains details about the type of verification, such as what verification check to perform. Only create one VerificationSession for each verification in your system.
Invoices are statements of amounts owed by a customer, and are either generated one-off, or generated periodically from a subscription.
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.
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.
You can create physical or virtual cards that are issued to cardholders.
An Issuing Cardholder
object represents an individual or business entity who is issued cards.
As a card issuer, you can dispute transactions that the cardholder does not recognize, suspects to be fraudulent, or has other issues with.
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.
A line item.
All top-level API resources have support for bulk fetches via "list" API methods. For instance, you can list charges, list customers, and list invoices. These list API methods share a common structure, taking at least these three parameters: limit
, starting_after
, and ending_before
.
A Mandate is a record of the permission a customer has given you to debit their payment method.
An Order describes a purchase being made by a customer, including the products & quantities being purchased, the order status, the payment information, and the billing/shipping details.
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 payment link is a shareable URL that will take your customers to a hosted payment page. A payment link can be shared and used multiple times.
PaymentMethod objects represent your customer's payment instruments. You can use them with PaymentIntents to collect payments or save them to Customer objects to store instrument details for future payments.
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.
This is an object representing a person associated with a Stripe account.
You can now model subscriptions more flexibly using the Prices API. It replaces the Plans API and is backwards compatible to simplify your migration.
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.
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 Payment Links, Checkout, and Subscriptions.
A Promotion Code represents a customer-redeemable code for a coupon. It can be used to create multiple codes for a single coupon.
A Quote is a way to model prices that you'd like to provide to a customer. Once accepted, it will automatically create an invoice, subscription or subscription schedule.
An early fraud warning indicates that the card issuer has notified us that a charge may be fraudulent.
Value lists allow you to group values together which can then be referenced in rules.
Value list items allow you to add specific values to a given Radar value list, which can then be used in rules.
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.
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.
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.
Reviews can be used to supplement automated fraud detection with human expertise.
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.
Some top-level API resource have support for retrieval via "search" API methods. For example, you can search charges, search customers, and search subscriptions.
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.
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.
Shipping rates describe the price of shipping presented to your customers and can be applied to Checkout Sessions and Orders to collect shipping costs.
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.
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.
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.
Subscriptions allow you to charge a customer on a recurring basis.
Subscription items allow you to create customer subscriptions with more than one plan, making it easy to represent complex billing relationships.
A subscription schedule allows you to create and manage the lifecycle of a subscription by predefining expected changes.
Tax codes classify goods and services for tax purposes.
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.
Tax rates can be applied to invoices, subscriptions and Checkout Sessions to collect tax.
Telemetry integration.
A Configurations object represents how features should be configured for terminal readers.
A Connection Token is used by the Stripe Terminal SDK to connect to a reader.
A Location represents a grouping of readers.
A Reader represents a physical device for accepting payment details.
A test clock enables deterministic control over objects in testmode. With a test clock, you can create objects at a frozen time in the past or future, and advance to a specific future time to observe webhooks and state changes. After the clock advances, you can either validate the current state of your scenario (and test your assumptions), change the current state of your scenario (and test more complex scenarios), or keep advancing forward in time.
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.
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.
A Transfer
object is created when you move funds between Stripe accounts as
part of Connect.
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.
You can reverse some ReceivedCredits depending on their network and source flow. Reversing a ReceivedCredit leads to the creation of a new object known as a CreditReversal.
You can reverse some ReceivedDebits depending on their network and source flow. Reversing a ReceivedDebit leads to the creation of a new object known as a DebitReversal.
Stripe Treasury provides users with a container for money called a FinancialAccount that is separate from their Payments balance. FinancialAccounts serve as the source and destination of Treasury’s money movement APIs.
Encodes whether a FinancialAccount has access to a particular Feature, with a status
enum and associated status_details
.
Stripe or the platform can control Features via the requested field.
Use InboundTransfers to add funds to your FinancialAccount via a PaymentMethod that is owned by you. The funds will be transferred via an ACH debit.
Use OutboundPayments to send funds to another party's external bank account or FinancialAccount. To send money to an account belonging to the same user, use an OutboundTransfer.
Use OutboundTransfers to transfer funds from a FinancialAccount to a PaymentMethod belonging to the same entity. To send funds to a different party, use OutboundPayments instead. You can send funds over ACH rails or through a domestic wire transfer to a user's own external bank account.
ReceivedCredits represent funds sent to a FinancialAccount (for example, via ACH or wire). These money movements are not initiated from the FinancialAccount.
ReceivedDebits represent funds pulled from a FinancialAccount. These are not initiated from the FinancialAccount.
Transactions represent changes to a FinancialAccount's balance.
TransactionEntries represent individual units of money movements within a single Transaction.
Usage records allow you to report customer usage and metrics to Stripe for metered billing of subscription prices.
You can configure webhook endpoints via the API to be notified about events that happen in your Stripe account or connected accounts.