7οΈβ£Card Issuance
Now that you have created a customer account, you are able to issue cards for the account. To do so, you need to use /accounts/{accountId}/card
POST
request.
Creates new card for the account
Unique account ID
HTTP message signature
HTTP message signature input
Idempotency key (UUID)
Content digest
Card type
POST /v1/accounts/{accountId}/cards HTTP/1.1
Host: api.offblocks.xyz
Authorization: Bearer JWT
Signature: text
Signature-Input: text
Idempotency-Key: 123e4567-e89b-12d3-a456-426614174000
Content-Digest: text
Content-Type: application/json
Accept: */*
Content-Length: 299
{
"type": "virtual",
"billingAddress": {
"firstLine": "Flat G",
"secondLine": "321 West End Lane",
"city": "London",
"state": "text",
"country": "GB",
"postCode": "NW6 2FG"
},
"shippingAddress": {
"firstLine": "Flat G",
"secondLine": "321 West End Lane",
"city": "London",
"state": "text",
"country": "GB",
"postCode": "NW6 2FG"
}
}
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"accountId": "123e4567-e89b-12d3-a456-426614174000",
"type": "virtual",
"name": "John Carter",
"network": "visa",
"maskedPan": "530518******9871",
"expirationDate": "10/2028",
"billingAddress": {
"firstLine": "Flat G",
"secondLine": "321 West End Lane",
"city": "London",
"state": "text",
"country": "GB",
"postCode": "NW6 2FG"
},
"status": "issuing",
"createdAt": "2025-07-08T18:14:12.278Z",
"updatedAt": "2025-07-08T18:14:12.278Z"
}
Let's say we want to open a new virtual card (physical cards are not supported at the moment):
{
"type": "virtual",
"billingAddress": {
"firstLine": "1 Test Avenue",
"city": "London",
"country": "GB",
"postCode": "SW1 1AA"
}
}
If everything was successful, you will receive a response with status 201 (Created)
which looks similar to the following:
{
"accountId": "ae61c362-4136-49af-8e01-544457fe265b",
"billingAddress": {
"city": "London",
"country": "GB",
"firstLine": "1 Test Avenue",
"postCode": "SW1 1AA"
},
"createdAt": "2024-01-12T15:12:26.923705379Z",
"id": "fc4912aa-cac9-4bb0-a6a7-6ec50bf45879",
"status": "issuing",
"type": "virtual",
"updatedAt": "2024-01-12T15:12:26.923705379Z"
}
At this stage, you can use our Simulator to issue or fail a pending card issuance request.
Assuming you would like to issue the card and proceed with next steps, you need to make an empty PATCH
request to /simulator/cards/{cardId}/issue
.
Simulates card issuing success
Unique card ID
HTTP message signature
HTTP message signature input
Idempotency key (UUID)
PATCH /v1/simulator/cards/{cardId}/issue HTTP/1.1
Host: api.offblocks.xyz
Authorization: Bearer JWT
Signature: text
Signature-Input: text
Idempotency-Key: 123e4567-e89b-12d3-a456-426614174000
Accept: */*
No content
If your request was successful, you will receive an empty response with status 202 (Accepted)
.
In our Sandbox environment the card will be automatically issued and activated, which you can verify by making a GET
request to /cards/{cardId}
.
Retrieves card's details
Unique card ID
HTTP message signature
HTTP message signature input
GET /v1/cards/{cardId} HTTP/1.1
Host: api.offblocks.xyz
Authorization: Bearer JWT
Signature: text
Signature-Input: text
Accept: */*
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"accountId": "123e4567-e89b-12d3-a456-426614174000",
"type": "virtual",
"name": "John Carter",
"network": "visa",
"maskedPan": "530518******9871",
"expirationDate": "10/2028",
"billingAddress": {
"firstLine": "Flat G",
"secondLine": "321 West End Lane",
"city": "London",
"state": "text",
"country": "GB",
"postCode": "NW6 2FG"
},
"status": "issuing",
"createdAt": "2025-07-08T18:14:12.278Z",
"updatedAt": "2025-07-08T18:14:12.278Z"
}
{
"accountId": "ae61c362-4136-49af-8e01-544457fe265b",
"billingAddress": {
"city": "London",
"country": "GB",
"firstLine": "1 Test Avenue",
"postCode": "SW1 1AA"
},
"createdAt": "2024-01-12T15:12:26.923705Z",
"id": "fc4912aa-cac9-4bb0-a6a7-6ec50bf45879",
"status": "active",
"type": "virtual",
"updatedAt": "2024-01-12T15:16:03.983949Z"
}
From there we can proceed to simulating card authorisations and transactions.
Last updated