Reissuing a card

How to reissue a card.

To reissue a card, use the POST /cards/{card_id}/reissue operation and provide the parameter as shown in the table below:

Body ParameterDescription
reissue_type
required
Type of reissue:
same_card_number - issue a card with the same card number as the old card.

same_card_number_updated_expiry - issue a card with the same card number but a new expiry date.

new_card_number - issue a card with a different number from the old card.

🚧

Note

For all three reissue types, the old card will not work anymore once reissued, and the cardholder will be unable to transact with an old physical card until they receive the new card.

If the customer's card is lost or stolen, we recommend using new_card_number to create a new primary account number (PAN) for the new card.

Creating a new PAN is especially relevant for recurring payment or card-on-file use cases. Because merchants are not allowed to store CVVs for saved cards, they are unable to check CVV when they process an authorization for a saved card. This makes it important to reissue a lost or stolen card with a new card number and details. However, if the old card is damaged or still in the user's possession, use same_card_number or same_card_number_updated_expiry to change the expiry without creating a new PAN.

🚧

Note

When a card is reissued, it defaults to an inactive status. You must activate the new card to be able to use it.

Once the correct reissue type has been identified, you can make the request to the /cards/{card_id}/reissue endpoint. An example of a request to reissue the card ID 2742ff6a-7455-4066-8b45-ae12d3acca34 with the same card number but with a new expiry date is shown below:

curl --request POST \
  --url https://sandbox.bond.tech/api/v0.1/cards/2742ff6a-7455-4066-8b45-ae12d3acca34/reissue \
  --header 'Authorization: YOUR-AUTHORIZATION' \
  --header 'Content-Type: application/json' \
  --header 'Identity: YOUR-IDENTITY'
  {
  "reissue_type": "same_card_number_updated_expiry"
}
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://sandbox.bond.tech/api/v0.1/cards/2742ff6a-7455-4066-8b45-ae12d3acca34/reissue")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Identity"] = 'YOUR-IDENTITY'
request["Authorization"] = 'YOUR-AUTHORIZATION'
request.body = "{\"reissue_type\":\"same_card_number_updated_expiry\"}"
response = http.request(request)
puts response.read_body
const options = {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    Identity: 'YOUR-IDENTITY',
    Authorization: 'YOUR-AUTHORIZATION'
  },
  body: JSON.stringify({reissue_type: 'same_card_number_updated_expiry'})
};

fetch('https://sandbox.bond.tech/api/v0.1/cards/2742ff6a-7455-4066-8b45-ae12d3acca34/reissue', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
import requests

url = "https://sandbox.bond.tech/api/v0.1/cards/2742ff6a-7455-4066-8b45-ae12d3acca34/reissue"

payload = {"reissue_type": "same_card_number_updated_expiry"}
headers = {
    "Content-Type": "application/json",
    "Identity": "YOUR-IDENTITY",
    "Authorization": "YOUR-AUTHORIZATION"
}

response = requests.request("POST", url, json=payload, headers=headers)

print(response.text)
var client = new RestClient("https://sandbox.bond.tech/api/v0.1/cards/2742ff6a-7455-4066-8b45-ae12d3acca34/reissue");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Identity", "YOUR-IDENTITY");
request.AddHeader("Authorization", "YOUR-AUTHORIZATION");
request.AddParameter("application/json", "{\"reissue_type\":\"same_card_number_updated_expiry\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"reissue_type\":\"same_card_number_updated_expiry\"}");
Request request = new Request.Builder()
  .url("https://sandbox.bond.tech/api/v0.1/cards/2742ff6a-7455-4066-8b45-ae12d3acca34/reissue")
  .post(body)
  .addHeader("Content-Type", "application/json")
  .addHeader("Identity", "YOUR-IDENTITY")
  .addHeader("Authorization", "YOUR-AUTHORIZATION")
  .build();

Response response = client.newCall(request).execute();

An example of a successful response to a request to reissue a card is shown below.

{
  "card_id": "2742ff6a-7455-4066-8b45-ae12d3acca34",
  "date_updated": "2020-08-16T19:39:34Z",
  "date_created": "2020-08-15T19:39:34Z",
  "customer_id": "c8940088-21e8-451c-987c-0a0398db3ee5",
  "account_id": "26bdeb70-157c-4c44-a04a-3727793b9779",
  "expiry_date": "tok_live_7g3eARzeEBJw89rJRCHqHv",
  "last_four": "6270",
  "card_number": "tok_live_q7kwTYb5YCYznpgRHHTs9p",
  "cvv": "tok_live_c94od3AsFWYQ1ecaaMYtFU",
  "status": "active",
  "card_design_id": null
}

For a complete specification and interactive examples, see Reissue a card.