Issuing cards list
Show a table of all issued cards.
Issuing cards list renders a table view of all the cards issued to your connected accounts.
The permission boundary for this component is at the connected account level, not at the individual card level. This UI should be shown to users that have access to all cards, not to users that have restricted access to a single card.
When creating an Account Session, enable the Issuing cards list component by specifying issuing_cards_list in the components parameter. You can enable or disable individual features of the Issuing cards list component by specifying the features parameter under issuing_cards_list.
Command Line
Select a language
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
After creating the account session and initializing ConnectJS, you can render the Issuing cards list component in the front end:
issuing-cards-list.js
Select a language
JavaScript
React
No results
// Include this element in your HTML
const issuingCardsList = stripeConnectInstance.create('issuing-cards-list');
issuingCardsList.setShowSpendControls(true);
container.appendChild(issuingCardsList);
Disable Stripe user authentication
Use the disable_stripe_user_authentication feature to control whether the component requires Stripe user authentication.
By default, this parameter is false.
This value can only be true for accounts where controller.requirement_collection is application.
We recommend implementing 2FA or equivalent security measures as a best practice. For account configurations that support this feature, such as Custom accounts, you assume liability for connected accounts if they can’t pay back negative balances.
Set spending controls
You can use Issuing Connect embedded components to view and, optionally, edit spending controls on your cards by turning on the Issuing component’s showSpendControls attribute.
Select a language
JavaScript
React
No results
const issuingCardsList = stripeConnectInstance.create('issuing-cards-list');
issuingCardsList.setShowSpendControls(true);
document.body.appendChild(issuingCardsList);
To enable editing spend controls in the component, pass spend_control_management: true as a feature when you create an AccountSession.
Command Line
Select a language
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
Sensitive data display
Issuing Connect embedded components integrate with Issuing Elements to provide a PCI-compliant way for you to allow your admins to view card numbers (PANs) and CVV or CVCs for virtual cards. The sensitive data renders inside Stripe-hosted iframes and never touches your servers.
The components can use an ephemeral key to securely retrieve card information from the Stripe API without publicly exposing your secret keys.
To enable this functionality you must:
- Set up an ephemeral key exchange on your server.
- Pass an asynchronous callback to the components.
Stripe generates a nonce from the Card ID in the Issuing Card or Issuing Cards List component when a card is selected or loaded. Stripe then calls your callback function which returns an ephemeral key, and then renders a Show numbers button if the ephemeral key is valid.
Ephemeral key exchange
Your server-side endpoint needs to accept a Card ID and a nonce. It can then create an ephemeral key using Stripe.
Here’s how you might implement an ephemeral key creation endpoint in web application frameworks across various languages:
server.js
Select a language
Node.js
Ruby
PHP
Python
No results
// This example sets up an endpoint using the Express framework.
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
// Don't put any keys in code. See https://docs.stripe.com/keys-best-practices.
const stripe = require('stripe')('sk_test_BQokikJOvBiI2HlWgH4olfQ2');
app.post('/ephemeral-keys', async (request, response) => {
const { card_id, nonce } = request.body;
const ephemeralKey = await stripe.ephemeralKeys.create({
nonce: nonce,
issuing_card: card_id,
}, {
apiVersion: '2026-08-26.dahlia',
stripeAccount: '{{CONNECTED_ACCOUNT_ID}}',
});
response.json({
ephemeralKeySecret: ephemeralKey.secret,
nonce: nonce,
issuingCard: card_id,
});
});
Asynchronous callback
You must define an asynchronous function that accepts a named argument with property issuingCard which is a Card ID and additionally, a nonce property. This function must return an Object with properties issuingCard, nonce, and ephemeralKeySecret which are retrieved from the endpoint you set up in the previous step.
Here’s how you might implement this callback:
Select a language
JavaScript
React
No results
const issuingCard = stripeConnectInstance.create('issuing-card');
const fetchEphemeralKey = async (fetchParams) => {
const { issuingCard, nonce } = fetchParams;
// This may vary greatly based on your implementation
const response = await myServer.getEphemeralKey({issuingCard, nonce})
return {
issuingCard: response.issuingCard,
nonce: response.nonce,
ephemeralKeySecret: response.ephemeralKeySecret
}
}
issuingCard.setFetchEphemeralKey(fetchEphemeralKey);
document.body.appendChild(issuingCard);
