Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Overview
Start an integration
Products
Global Payouts
Capital
Issuing cards
    Overview
    How Issuing works
    Global availability
    Manage fraud
    Cards
    Choose your card type
    Virtual cards
    Issue virtual cards
    Physical cards
    Manage cards
    Digital wallets
    Replacement cards
    Card programs
    Program management
    Customize your card program
    Add funds to your card program
    Credit Consumer Issuing
    Controls
    Spending controls
    Advanced fraud tools
    3DS
    Fraud challenges
    Real-time authorizations
    PIN management
    Issuing Elements
    Token Management
    Funding
    Balance
    Postfund your integration with Stripe
    Postfund your integration with Dynamic Reserves
    Purchases
    Authorizations
    Transactions
    Disputes
    Testing
    Merchant categories
    ATM Usage
    Issuing with Connect
    Set up an Issuing and Connect integration
    Update terms of service acceptance
    Connect funding
    Connected accounts, cardholders, and cards
    Embed card management UI
    Credit
    Overview
    Set up connected accounts
    Manage credit terms
    Report other credit decisions and manage AANs
    Report required regulatory data for credit decisions
    Manage account obligations
    Test credit integration
    Additional information
    Choose a cardholder type
    Customer support for Issuing and Treasury
    Issuing watchlist
    Marketing guidance (Europe/UK)
    Product and marketing compliance guidance (US)
Treasury
Manage money
HomeMoney managementIssuing cards

Issuing transactions

Learn how to use Issuing to handle transactions.

Copy page

After an authorization is approved and is captured, the status on the authorization is set to closed and a Transaction object is created. This normally happens within 24 hours; however hotels, airlines, and car rental companies are able to capture up to 31 days after authorization.

When an authorization is captured, two things happen.

  • The status on the authorization is set to closed, releasing the purchase amount held by that authorization. A balance transaction of type issuing_authorization_release is created to represent this.
  • A new transaction object of type capture is created. The purchase amount is deducted from the balance you’re using for Issuing.

Spending controls, real time authorization controls, and card status (whether a card is active or not) don’t apply for capture. They can be used to determine whether authorizations are approved, but captures for approved authorizations always succeed.

Handling other transactions

In addition to regular transactions, there are a few other cases that you should be ready to handle.

Merchants might initiate a capture despite receiving a declined authorization, or even without an authorization. In either case, Stripe creates transaction objects, and we deduct the captured amount from your Issuing balance and send it to the merchant. If we didn’t receive an authorization request for the capture, the transaction objects won’t have a linked authorization object.

Sometimes these transactions correspond to legitimate purchases. In other cases, these transactions are unauthorized purchases or a result of fraudulent behavior. It’s up to you (or your cardholder) to recognize when this is the case and dispute illegitimate transactions. Because some of these transactions are legitimate, you can’t block them.

An example of a legitimate transaction without an authorization is a payment on an airplane. The terminals used on airplanes are usually not connected to the internet. Purchases on flights are not able to create authorizations and instead create transactions that are sent after the plane lands.

{ "id": "ipi_1GTG10EEsyYlpYZ9VJn2xV3B", "object": "issuing.transaction", "amount": -100, "authorization": null, "balance_transaction": null, "card": "ic_1GBZQJEEsyYlpYZ99v6rq38S", "cardholder": null, "created": 1585783834, "currency": "usd", "livemode": false, "merchant_amount": -100, "merchant_currency": "usd", "merchant_data": { "category": "airlines_air_carriers", "city": "San Francisco", "country": "US", "name": "Rocket Rides", "network_id": "1234567890", "postal_code": "94111", "state": "CA", "url": null }, "metadata": {}, "type": "capture", }

Testing

To simulate the creation of a force capture, you can use the Transaction Create Force Capture API in the Issuing test helpers.

Command Line
cURL
curl https://api.stripe.com/v1/test_helpers/issuing/transactions/create_force_capture \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d card=
{{CARD_ID}}
\ -d amount=100
Was this page helpful?
YesNo
Need help? Contact Support.
Join our early access program.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc