B2B Payments integration guide
Build a B2B Payments integration with Issuing.
Build a US B2B Payments integration by using Stripe Issuing to create cards for your business, employees, or contractors to make purchases on your behalf.
By the end of this guide, you’ll know how to:
- Fund your Issuing Balance
- Create virtual cards for your own business
- Use these cards to spend funds from your Issuing Balance
Before you begin
- Sign up for a Stripe account.
- Activate Issuing test mode in the Dashboard.
Add funds
To spend money using cards, add funds to the Issuing balance on your account. This balance represents funds reserved for Issuing and is safely separated from your earnings, payouts, and funds from other Stripe products.
You can add funds from your Dashboard or using the create top-up endpoint.
Create cardholders and cards
Create a cardholder
The Cardholder is the company or business entity that’s authorized to use card funding by the Issuing balance. The Cardholder
object includes relevant details, such as a name to display on cards and a billing address, which is usually the business address.
The following API call creates a new Cardholder
:
Stripe returns a Cardholder
object that contains the information you provided and sends the issuing_
webhook event.
Create a card
Create a card and attach it to the Cardholder
that you want to make the authorized user of the card.
In the following examples, we show you how to create a virtual card. You can, however, create physical cards and ship them to cardholders in live mode.
Stripe returns a Card
object on creation, and sends the issuing_
webhook event:
{ "id": "ic_1NvPjF2SSJdH5vn2OVbE7r0b", "object": "issuing.card", "brand": "Visa", ... "status": "inactive", "type": "virtual" }
You need to activate the card before a user can use it. While you can activate virtual cards in the same API call you used to create it, physical cards must be activated separately. When ready, activate the card by marking the status
as active
:
At this point, there’s now an active card attached to a cardholder. See the Issuing page to view the card and cardholder information.
{ "id": "ic_1NvPjF2SSJdH5vn2OVbE7r0b", "object": "issuing.card", "brand": "Visa", ... "status": "active", "type": "virtual", }
To learn more, see:
Use the card
Create an authorization
To observe the impact of card activity on the associated balance, generate a test authorization. You can do this in the Issuing page of the Dashboard for the connected account, or with the following call to the Authorization API:
After approval, Stripe creates an Authorization
in a pending
state while it waits for capture. Note the authorization id
that you’ll use to capture the funds:
{ "id": "iauth_1NvPyY2SSJdH5vn2xZQE8C7k", "object": "issuing.authorization", "amount": 1000, ... "status": "pending", "transactions": [], }
Capture the funds
Capture the funds using the following code:
After the authorization is captured, Stripe creates an Issuing Transaction, the status
of the authorization is set to closed
.