Issuing Cards

Learn how to issue new digital cards for your business

Issue Using Dynamic BIN Allocation

We recommend that customers use Dynamic BIN Allocation (DBA) to maximize card acceptance. Dynamic BIN Allocation automatically assigns a card brand and class based on the merchant and transaction type. However, we understand that there may be situations where you need to specify the card brand and class yourself.

For more information about card brands and classes, see What is a BIN?

Cards can be issued using our Create card endpoint. By default, this endpoint will use Dynamic BIN Allocation if no card_bin parameter is specified in the request payload. Here's an example of issuing a digital card this way:

import os
import requests

API_URL = "https://api.dba.thepennyinc.com/v1"
ACCESS_TOKEN = os.getenv("PENNY_ACCESS_TOKEN")

payload = {
  "card_type": "virtual",
  "purchase_type": "AIRLINE",
  "amount_limit": 1000,
  "cardholder": {
    "first_name": "John",
    "last_name": "Doe"
  }
}

headers = {
    "Authorization": f"Bearer {ACCESS_TOKEN}" 
}

response = requests.post(API_URL + "/cards", headers=headers, json=payload)

Issue Using A Custom Setup

Issuing a card without Dynamic BIN Allocation is similar to issuing one with it: the Create card endpoint is still used, however the request payload request must include the card_bin parameter (i.e. the BIN representing the card brand and class). A list of active BINs can be retrieved via our List active BINs endpoint.

import os
import requests

API_URL = "https://api.dba.thepennyinc.com/v1"
ACCESS_TOKEN = os.getenv("PENNY_ACCESS_TOKEN")

payload = {
  "card_type": "virtual",
  "purchase_type": "AIRLINE",
  "amount_limit": 1000,
  "cardholder": {
    "first_name": "John",
    "last_name": "Doe"
  }
  "card_bin": "<CUSTOM BIN>"    # Note the additional BIN specifier
}

headers = {
    "Authorization": f"Bearer {ACCESS_TOKEN}" 
}

response = requests.post(API_URL + "/cards", headers=headers, json=payload)

Reasons Suppliers May Not Accept A Card

You may find that some cards you issue may not be accepted by certain suppliers. Common reasons why a supplier won't accept a given card include that the supplier might:

  • not have a relationship with the card issuer.
  • not be able to process transactions for that type of card.
  • have a policy of not accepting certain types of cards.

If you are unsure whether a supplier will accept a certain type of card, it is best to contact the supplier directly to inquire.

Frequently Asked Questions

Should I make a domestic or international card?

If you are planning on using the issued card with merchants outside of the U.S. then you should make an international card (i.e. setting the global_use flag to Truein the Create card endpoint. Otherwise a domestic card would be more suitable (i.e. global_use set to False).

I've accidentally issued a card, what do I do?

In the event that a card has been issued in error, you can use the Terminate card endpoint.

How can I see what cards I've issued?

If you would like to view your issued cards, you can use the List cards endpoint.

I've issued a card with incorrect details

Depending on which details are incorrect, you can make changes to issued cards using our Update details for a specific card endpoint.