Cards
Create Card
Creates a new virtual card for a given cardholder and wallet.
{{baseUrl}}/hashdt/issuing/api/v1/card
Description
This API creates a virtual card for a cardholder. Spend limits are optional; if not provided, the program-level default limits are applied.
Note:
- This API supports virtual card creation only. To issue a physical card, use the separate Assign Card API instead.
- Virtual cards are activated automatically upon creation.
📩 Request Headers
x-api-key string required
x-product-id string required
x-request-id string required
x-user-id string required
Content-Type string required
application/jsonAuthorization string required
📦 Request Body
card_type string required
VIRTUALcard_holder_id string required
created_by string required
request_id string required
program object required
purpose string required
COMMERCIAL.authorization_controls object required
allowed_transaction_count string required
MULTIPLE is currently supported — the card can be used for multiple debit transactions.transaction_limits object required
currency string required
limits array
amount double required
interval string required
PER_TRANSACTION.is_personalized boolean required
false.- 🧩 Examples
Request Example
- cURL
- Python
- Java
- NodeJs
curl --location --request POST \
--url '{{baseUrl}}/hashdt/issuing/api/v1/card' \
--header 'x-api-key: {{Shared X-API Key}}' \
--header 'x-product-id: {{Shared ProductID}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{UserID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{AccessToken}}' \
--data '{
"card_type": "VIRTUAL",
"card_holder_id": "individual_cardholder_id",
"created_by": "Postman Test",
"request_id": "your-request-id",
"program": {
"purpose": "COMMERCIAL"
},
"authorization_controls": {
"allowed_transaction_count": "MULTIPLE",
"transaction_limits": {
"currency": "USD",
"limits": [
{
"amount": 1000,
"interval": "PER_TRANSACTION"
}
]
}
},
"is_personalized": false
}'
import requests
import json
url = "{{baseUrl}}/hashdt/issuing/api/v1/card "
payload = json.dumps({
"card_type": "VIRTUAL",
"card_holder_id": "individual_cardholder_id",
"created_by": "Postman Test",
"request_id": "your-request-id",
"program": {
"purpose": "COMMERCIAL"
},
"authorization_controls": {
"allowed_transaction_count": "MULTIPLE",
"transaction_limits": {
"currency": "USD",
"limits": [
{
"amount": 1000,
"interval": "PER_TRANSACTION"
}
]
}
},
"is_personalized": False
})
headers = {
'x-api-key': '{{Shared X-API Key}}',
'x-product-id': '{{Shared ProductI}}',
'x-request-id': '{{IdempotencyKey}}',
'x-user-id': '{{UserID}}',
'Content-Type': 'application/json',
'Authorization': 'Bearer {{AccessToken}}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"card_type\": \"VIRTUAL\",\n \"card_holder_id\": \"individual_cardholder_id\",\n \"created_by\": \"Postman Test\",\n \"request_id\": \"your-request-id\",\n \"program\": {\n \"purpose\": \"COMMERCIAL\"\n },\n \"authorization_controls\": {\n \"allowed_transaction_count\": \"MULTIPLE\",\n \"transaction_limits\": {\n \"currency\": \"USD\",\n \"limits\": [\n {\n \"amount\": 1000,\n \"interval\": \"PER_TRANSACTION\"\n }\n ]\n }\n },\n \"is_personalized\": false\n }");
Request request = new Request.Builder()
.url("{{baseUrl}}/hashdt/issuing/api/v1/card ")
.method("POST", body)
.addHeader("x-api-key", "{{Shared X-API Key}}")
.addHeader("x-product-id", "{{Shared ProductID}}")
.addHeader("x-request-id", "{{IdempotencyKey}}")
.addHeader("x-user-id", "{{UserID}}")
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer {{AccessToken}}")
.build();
Response response = client.newCall(request).execute();
const axios = require('axios');
let data = JSON.stringify({
"card_type": "VIRTUAL",
"card_holder_id": "individual_cardholder_id",
"created_by": "Postman Test",
"request_id": "your-request-id",
"program": {
"purpose": "COMMERCIAL"
},
"authorization_controls": {
"allowed_transaction_count": "MULTIPLE",
"transaction_limits": {
"currency": "USD",
"limits": [
{
"amount": 1000,
"interval": "PER_TRANSACTION"
}
]
}
},
"is_personalized": false
});
let config = {
method: 'post',
maxBodyLength: Infinity,
url: '{{baseUrl}}/hashdt/issuing/api/v1/card ',
headers: {
'x-api-key': '{{Shared X-API Key}}',
'x-product-id': '{{Shared ProductID}}',
'x-request-id': '{{IdempotencyKey}}',
'x-user-id': '{{UserID}}',
'Content-Type': 'application/json',
'Authorization': 'Bearer {{AccessToken}}'
},
data : data
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
Response Example
- 201
- 400
{
"status": "success",
"message": "Card created successfully.",
"code": 201,
"data": {
"id": "card-id"
}
}
{
"code": 400,
"status": "error",
"message": "Error Message"
}
Assign Card
This API assigns a physical card to a cardholder.
{{baseUrl}}/hashdt/issuing/api/v1/card/assign
Description
This API is used to assign a pre-issued physical card to an existing cardholder. The physical card is identified using its card number and is then linked to the specified cardholder, making it available for use.
💡 Physical cards must be activated using Activate Card API before they can be used.
📩 Request Headers
x-api-key string required
x-product-id string required
x-request-id string required
x-user-id string required
Content-Type string required
application/jsonAuthorization string required
📦 Request Body
cardholder_id string required
card_number string required
card_currency string required
card_mode string required
SINGLE. SINGLE indicates a prepaid card, which must be loaded with funds before it can be used.createdBy string required
- 🧩 Examples
Request Example
- cURL
- Python
- Java
- NodeJs
curl --location --request POST \
--url '{{baseUrl}}/hashdt/issuing/api/v1/card/assign' \
--header 'x-api-key: {{Shared X-API key}}' \
--header 'x-product-id: {{Shared ProductID}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{UserID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{AccessToken}}' \
--data '{
"cardholder_id": "cardholder-id",
"card_number": "card-number",
"card_currency": "USD",
"card_mode": "SINGLE",
"created_by": "admin_user"
}'
import requests
import json
url = "{{baseUrl}}/hashdt/issuing/api/v1/card/assign"
payload = json.dumps({
"cardholder_id": "cardholder-id",
"card_number": "card-number",
"card_currency": "USD",
"card_mode": "SINGLE",
"created_by": "admin_user"
})
headers = {
'x-api-key': '{{Shared X-API key}}',
'x-product-id': '{{Shared ProductID}}',
'x-request-id': '{{IdempotencyKey}}',
'x-user-id': '{{UserID}}',
'Content-Type': 'application/json',
'Authorization': 'Bearer {{AccessToken}}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\r\n \"cardholder_id\": \"cardholder-id\",\r\n \"card_number\": \"card-number\",\r\n \"card_currency\": \"USD\",\r\n \"card_mode\": \"SINGLE\",\r\n \"created_by\": \"admin_user\"\r\n}");
Request request = new Request.Builder()
.url("{{baseUrl}}/hashdt/issuing/api/v1/card/assign")
.method("POST", body)
.addHeader("x-api-key", "{{Shared X-API key}}")
.addHeader("x-product-id", "{{Shared ProductID}}")
.addHeader("x-request-id", "{{IdempotencyKey}}")
.addHeader("x-user-id", "{{UserID}}")
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer {{AccessToken}}")
.build();
Response response = client.newCall(request).execute();
const axios = require('axios');
let data = JSON.stringify({
"cardholder_id": "cardholder-id",
"card_number": "card-number",
"card_currency": "USD",
"card_mode": "SINGLE",
"created_by": "admin_user"
});
let config = {
method: 'post',
maxBodyLength: Infinity,
url: '{{baseUrl}}/hashdt/issuing/api/v1/card/assign',
headers: {
'x-api-key': '{{Shared X-API key}}',
'x-product-id': '{{Shared ProductID}}',
'x-request-id': '{{IdempotencyKey}}',
'x-user-id': '{{UserID}}',
'Content-Type': 'application/json',
'Authorization': 'Bearer {{AccessToken}}'
},
data : data
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
Response Example
- 200
- 400
{
"status": "success",
"message": "Card assign successfully.",
"code": 200,
"data": [
{
"card_id": "card-id"
}
]
}
{
"code": 400,
"status": "error",
"message": "Error Message"
}
Activate Card
This API is used to activate a assigned physical card.
{{baseUrl}}/hashdt/issuing/api/v1/card/activate
Description
This API is used to activate a physical card and set its PIN, enabling it for card payment authorizations.
📩 Request Headers
x-api-key string required
x-product-id string required
x-request-id string required
x-user-id string required
Content-Type string required
application/jsonAuthorization string required
📦 Request Body
activation_code string required
pin string required
🔍 Query Parameters
id string required
- 🧩 Examples
Request Example
- cURL
- Python
- Java
- NodeJs
curl --location --request POST \
--url '{{baseUrl}}/hashdt/issuing/api/v1/card/activate?id={{CardID}}' \
--header 'x-api-key: {{Shared X-API key}}' \
--header 'x-product-id: {{Shared ProductID}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{UserID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{AccessToken}}' \
--data '{
"activation_code": "111222333",
"pin": "123456"
}'
import requests
import json
url = "{{baseUrl}}/hashdt/issuing/api/v1/card/activate?id={{CardID}}"
payload = json.dumps({
"activation_code": "111222333",
"pin": "123456"
})
headers = {
'x-api-key': '{{Shared X-API key}}',
'x-product-id': '{{Shared ProductID}}',
'x-request-id': '{{IdempotencyKey}}',
'x-user-id': '{{UserID}}',
'Content-Type': 'application/json',
'Authorization': 'Bearer {{AccessToken}}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"activation_code\": \"111222333\",\n \"pin\": \"123456\"\n }");
Request request = new Request.Builder()
.url("{{baseUrl}}/hashdt/issuing/api/v1/card/activate?id={{CardID}}")
.method("POST", body)
.addHeader("x-api-key", "{{Shared X-API key}}")
.addHeader("x-product-id", "{{Shared ProductID}}")
.addHeader("x-request-id", "{{IdempotencyKey}}")
.addHeader("x-user-id", "{{UserID}}")
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer {{AccessToken}}")
.build();
Response response = client.newCall(request).execute();
const axios = require('axios');
let data = JSON.stringify({
"activation_code": "111222333",
"pin": "123456"
});
let config = {
method: 'post',
maxBodyLength: Infinity,
url: '{{baseUrl}}/hashdt/issuing/api/v1/card/activate?id={{CardID}}',
headers: {
'x-api-key': '{{Shared X-API key}}',
'x-product-id': '{{Shared ProductID}}',
'x-request-id': '{{IdempotencyKey}}',
'x-user-id': '{{UserID}}',
'Content-Type': 'application/json',
'Authorization': 'Bearer {{AccessToken}}'
},
data : data
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
Response Example
- 200
- 400
{
"code": 200,
"status": "success",
"message": "card activated successfully"
}
{
"code": 400,
"status": "error",
"message": "Error Message"
}
Reset PIN
This API resets the PIN for a assigned physical card.
{{baseUrl}}/hashdt/issuing/api/v1/card/pin
Description
This API is used to reset the PIN of an assigned physical card.
📩 Request Headers
x-api-key string required
x-product-id string required
x-request-id string required
x-user-id string required
Content-Type string required
application/jsonAuthorization string required
📦 Request Body
pin string required
🔍 Query Parameters
id string required
- 🧩 Examples
Request Example
- cURL
- Python
- Java
- NodeJs
curl --location --request POST \
--url '{{baseUrl}}/hashdt/issuing/api/v1/card/pin?id={{CardID}}' \
--header 'x-api-key: {{Shared X-API key}}' \
--header 'x-product-id: {{Shared ProductID}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{UserID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{AccessToken}}' \
--data '{
"pin": "123456"
}'
import requests
import json
url = "{{baseUrl}}/hashdt/issuing/api/v1/card/pin?id={{CardID}}"
payload = json.dumps({
"pin": "123456"
})
headers = {
'x-api-key': '{{Shared X-API key}}',
'x-product-id': '{{Shared ProductID}}',
'x-request-id': '{{IdempotencyKey}}',
'x-user-id': '{{UserID}}',
'Content-Type': 'application/json',
'Authorization': 'Bearer {{AccessToken}}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"pin\": \"123456\"\n }");
Request request = new Request.Builder()
.url("{{baseUrl}}/hashdt/issuing/api/v1/card/pin?id={{CardID}}")
.method("POST", body)
.addHeader("x-api-key", "{{Shared X-API key}}")
.addHeader("x-product-id", "{{Shared ProductID}}")
.addHeader("x-request-id", "{{IdempotencyKey}}")
.addHeader("x-user-id", "{{UserID}}")
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer {{AccessToken}}")
.build();
Response response = client.newCall(request).execute();
const axios = require('axios');
let data = JSON.stringify({
"pin": "123456"
});
let config = {
method: 'post',
maxBodyLength: Infinity,
url: '{{baseUrl}}/hashdt/issuing/api/v1/card/pin?id={{CardID}}',
headers: {
'x-api-key': '{{Shared X-API key}}',
'x-product-id': '{{Shared ProductID}}',
'x-request-id': '{{IdempotencyKey}}',
'x-user-id': '{{UserID}}',
'Content-Type': 'application/json',
'Authorization': 'Bearer {{AccessToken}}'
},
data : data
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
Response Example
- 200
- 400
{
"code": 200,
"status": "success",
"message": "Pin reset successfully."
}
{
"code": 400,
"status": "error",
"message": "Error Message"
}
Update Card
This API updates card details including authorization controls and status.
{{baseUrl}}/hashdt/issuing/api/v1/card
Description
This endpoint updates card details by setting the values of the included parameters. Parameters that are not included will be left unchanged.
📩 Request Headers
x-api-key string required
x-product-id string required
x-request-id string required
x-user-id string required
Content-Type string required
application/jsonAuthorization string required
📦 Request Body
card_status string
ACTIVE, INACTIVE, CLOSED.transaction_limits array
type string required
PER_TRANSACTION.value double required
updated_by string required
🔍 Query Parameters
id string required
- 🧩 Examples
Request Example
- cURL
- Python
- Java
- NodeJs
curl --location --request PATCH \
--url '{{baseUrl}}/hashdt/issuing/api/v1/card?id={{CardID}}' \
--header 'x-api-key: {{Shared X-API key}}' \
--header 'x-product-id: {{Shared ProductID}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{UserID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{AccessToken}}' \
--data '{
"transaction_limits": [
{
"type": "PER_TRANSACTION",
"value": 100
}
],
"updated_by": "test"
}'
import requests
import json
url = "{{baseUrl}}/hashdt/issuing/api/v1/card?id={{CardID}}"
payload = json.dumps({
"transaction_limits": [
{
"type": "PER_TRANSACTION",
"value": 100
}
],
"updated_by": "test"
})
headers = {
'x-api-key': '{{Shared X-API key}}',
'x-request-id': '{{IdempotencyKey}}',
'Content-Type': 'application/json',
'x-product-id': '{{Shared ProductID}}',
'x-user-id': '{{UserID}}',
'Authorization': 'Bearer {{AccessToken}}'
}
response = requests.request("PATCH", url, headers=headers, data=payload)
print(response.text)
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\r\n \"transaction_limits\": [\r\n {\r\n \"type\": \"PER_TRANSACTION\",\r\n \"value\": 100\r\n }\r\n ],\r\n \"updated_by\": \"test\"\r\n }");
Request request = new Request.Builder()
.url("{{baseUrl}}/hashdt/issuing/api/v1/card?id={{CardID}}")
.method("PATCH", body)
.addHeader("x-api-key", "{{Shared X-API key}}")
.addHeader("x-product-id", "{{Shared ProductID}}")
.addHeader("x-request-id", "{{IdempotencyKey}}")
.addHeader("x-user-id", "{{UserID}}")
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer {{AccessToken}}")
.build();
Response response = client.newCall(request).execute();
const axios = require('axios');
let data = JSON.stringify({
"transaction_limits": [
{
"type": "PER_TRANSACTION",
"value": 100
}
],
"updated_by": "test"
});
let config = {
method: 'patch',
maxBodyLength: Infinity,
url: '{{baseUrl}}/hashdt/issuing/api/v1/card?id={{CardID}}',
headers: {
'x-api-key': '{{Shared X-API key}}',
'x-product-id': '{{Shared ProductID}}',
'x-request-id': '{{IdempotencyKey}}',
'x-user-id': '{{UserID}}',
'Content-Type': 'application/json',
'Authorization': 'Bearer {{AccessToken}}'
},
data : data
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
Response Example
- 200
- 400
{
"code": 200,
"status": "success",
"message": "card updated successfully"
}
{
"code": 400,
"status": "error",
"message": "Error Message"
}
Recharge Card
Recharge / Load Funds to Card
{{baseUrl}}/hashdt/issuing/api/v1/card/recharge
Description
Adds funds to a specific card associated with the authenticated user. This API performs a card recharge (load) operation and credits the specified amount to the card balance. The card to be recharged is identified using the id query parameter.
📩 Request Headers
x-api-key string required
x-product-id string required
x-request-id string required
x-user-id string required
Content-Type string required
application/jsonAuthorization string required
📦 Request Body
amount double required
🔍 Query Parameters
id string required
- 🧩 Examples
Request Example
- cURL
- Python
- Java
- NodeJs
curl --location --request POST \
--url '{{baseUrl}}/hashdt/issuing/api/v1/card/recharge?id={{CardID}}' \
--header 'x-api-key: {{Shared X-API key}}' \
--header 'x-product-id: {{Shared ProductID}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{UserID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{AccessToken}}' \
--data '{
"amount": 100.0
}'
import requests
import json
url = "{{baseUrl}}/hashdt/issuing/api/v1/card/recharge?id={{CardID}}"
payload = json.dumps({
"amount": 100.0
})
headers = {
'x-api-key': '{{Shared X-API key}}',
'x-product-id': '{{Shared ProductID}}',
'x-request-id': '{{IdempotencyKey}}',
'x-user-id': '{{UserID}}',
'Content-Type': 'application/json',
'Authorization': 'Bearer {{AccessToken}}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\r\n \"amount\": 100.0\r\n}");
Request request = new Request.Builder()
.url("{{baseUrl}}/hashdt/issuing/api/v1/card/recharge?id={{CardID}}")
.method("POST", body)
.addHeader("x-api-key", "{{Shared X-API key}}")
.addHeader("x-product-id", "{{Shared ProductID}}")
.addHeader("x-request-id", "{{IdempotencyKey}}")
.addHeader("x-user-id", "{{UserID}}")
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer {{AccessToken}}")
.build();
Response response = client.newCall(request).execute();
const axios = require('axios');
let data = JSON.stringify({
"amount": 100.0
});
let config = {
method: 'post',
maxBodyLength: Infinity,
url: '{{baseUrl}}/hashdt/issuing/api/v1/card/recharge?id={{CardID}}',
headers: {
'x-api-key': '{{Shared X-API key}}',
'x-product-id': '{{Shared ProductID}}',
'x-request-id': '{{IdempotencyKey}}',
'x-user-id': '{{UserID}}',
'Content-Type': 'application/json',
'Authorization': 'Bearer {{AccessToken}}'
},
data : data
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
Response Example
- 200
- 400
{
"code": 200,
"status": "success",
"message": "Card recharge successfully."
}
{
"code": 400,
"status": "error",
"message": "Error Message"
}
Get All Cards
Retrieves all cards (virtual/physical) associated with the user.
{{baseUrl}}/hashdt/issuing/api/v1/card
Description
This endpoint returns a list of all cards (both physical and virtual) associated with the authenticated user. The response includes key card attributes such as card status, masked number, type, associated cardholder ID, and timestamps for creation and updates.
You can also filter the results using query parameters such as card ID, cardholder ID and card status to retrieve specific card records.
📩 Request Headers
x-api-key string required
x-product-id string required
x-request-id string required
x-user-id string required
Content-Type string required
application/jsonAuthorization string required
🔍 Query Parameters
cardholder_id string
id string
status string
ACTIVE, INACTIVEpage_num integer
page_size integer
- 🧩 Examples
Request Example
- cURL
- Python
- Java
- NodeJs
curl --location --request GET \
--url '{{baseUrl}}/hashdt/issuing/api/v1/card' \
--header 'x-api-key: {{Shared X-API key}}' \
--header 'x-product-id: {{Shared ProductID}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{UserID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{AccessToken}}'
import requests
url = "{{baseUrl}}/hashdt/issuing/api/v1/card"
headers = {
"x-api-key": "{{Shared X-API key}}",
"x-product-id": "{{Shared ProductID}}",
"x-request-id": "{{IdempotencyKey}}",
"x-user-id": "{{UserID}}",
"Content-Type": "application/json",
"Authorization": "Bearer {{AccessToken}}"
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("{{baseUrl}}/hashdt/issuing/api/v1/card"))
.header("x-api-key", "{{Shared X-API key}}")
.header("x-product-id", "{{Shared ProductID}}")
.header("x-request-id", "{{IdempotencyKey}}")
.header("x-user-id", "{{UserID}}")
.addHeader("Content-Type", "application/json")
.header("Authorization", "Bearer {{AccessToken}}")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
const axios = require('axios');
let config = {
method: 'get',
maxBodyLength: Infinity,
url: '{{baseUrl}}/hashdt/issuing/api/v1/card',
headers: {
'x-api-key': '{{Shared X-API key}}',
'x-product-id': '{{Shared ProductID}}',
'x-request-id': '{{IdempotencyKey}}',
'x-user-id': '{{UserID}}',
'Content-Type': 'application/json',
'Authorization': 'Bearer {{AccessToken}}'
}
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
Response Example
- 200
- 400
{
"status": "success",
"message": "Card fetched successfully",
"code": 200,
"data": [
{
"card_hash_id": "card-id",
"card_status": "ACTIVE",
"masked_card_number": "40963608****7655",
"available_balance": 100.0,
"cardholder_id": "cardholder-id",
"created_at": "2026-08-11T13:37:22",
"updated_at": null,
"name_on_card": "John Doe's card",
"card_type": "PHYSICAL",
"currency": "USD",
"postal_address": null
},
{
"card_hash_id": "card-id",
"card_status": "ACTIVE",
"masked_card_number": "40963608****0018",
"available_balance": 10.0,
"cardholder_id": "cardholder-id",
"created_at": "2026-08-11T13:35:25",
"updated_at": null,
"name_on_card": "John Doe's card",
"card_type": "VIRTUAL",
"currency": "USD",
"postal_address": null
}
]
}
{
"code": 400,
"status": "error",
"message": "Error Message"
}
Show Card Details
Retrieves the details of a specific card (virtual or physical).
{{baseUrl}}/hashdt/issuing/api/v1/card/detail
Description
This endpoint retrieves comprehensive card information, including card details, cardholder information, card status, spending and authorization controls, program details, and configured card settings. Sensitive card information, such as the card number, is masked for security.
Note: For displaying sensitive card details to end users in a PCI-compliant manner, refer to the Secure Iframe Guide.
📩 Request Headers
x-api-key string required
x-product-id string required
x-request-id string required
x-user-id string required
Content-Type string required
application/jsonAuthorization string required
🔍 Query Parameters
id string required
- 🧩 Examples
Request Example
- cURL
- Python
- Java
- NodeJs
curl --location --request GET \
--url '{{baseUrl}}/hashdt/issuing/api/v1/card/detail?id={{CardID}}' \
--header 'x-api-key: {{Shared X-API key}}' \
--header 'x-product-id: {{Shared ProductID}}' \
--header 'x-request-id: {{IdempotencyKey}}' \
--header 'x-user-id: {{UserID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{AccessToken}}'
import requests
url = "{{baseUrl}}/hashdt/issuing/api/v1/card/detail"
params = {
"id": "{{CardID}}"
}
headers = {
"x-api-key": "{{Shared X-API key}}",
"x-product-id": "{{Shared ProductID}}",
"x-request-id": "{{IdempotencyKey}}",
"x-user-id": "{{UserID}}",
"Content-Type": "application/json",
"Authorization": "Bearer {{AccessToken}}"
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("{{baseUrl}}/hashdt/issuing/api/v1/card/detail?id={{CardID}}"))
.header("x-api-key", "{{Shared X-API key}}")
.header("x-product-id", "{{Shared ProductID}}")
.header("x-request-id", "{{IdempotencyKey}}")
.header("x-user-id", "{{UserID}}")
.header("Content-Type", "application/json")
.header("Authorization", "Bearer {{AccessToken}}")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
const axios = require('axios');
let config = {
method: 'get',
maxBodyLength: Infinity,
url: '{{baseUrl}}/hashdt/issuing/api/v1/card/detail?id={{CardID}}',
headers: {
'x-api-key': '{{Shared X-API key}}',
'x-product-id': '{{Shared ProductID}}',
'x-request-id': '{{IdempotencyKey}}',
'x-user-id': '{{UserID}}',
'Content-Type': 'application/json',
'Authorization': 'Bearer {{AccessToken}}'
}
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
Response Example
- 200
- 400
{
"status": "success",
"message": "Card details fetched successfully.",
"code": 200,
"data": [
{
"personalized": false,
"card_id": "card-id",
"card_bin": "40963608",
"card_scheme": "VISA",
"card_currency": "USD",
"card_number": "************7655",
"form_factor": "PHYSICAL",
"mode_type": "SINGLE",
"card_product_id": "71405e1f-3fce-4e3c-80fe-08d47b9dec3c",
"card_limit": 0.0,
"available_balance": 10.0,
"cardholder": {
"cardholder_id": "card-id",
"email": "demo@yopmail.com",
"number_of_cards": null,
"first_name": "John",
"middle_name": "P",
"last_name": "Doe",
"create_time": "2026-08-10T16:48:22+08:00",
"cardholder_status": "SUCCESS",
"date_of_birth": "",
"country_code": "",
"phone_number": ""
},
"spending_controls": [
{
"amount": 20000.0,
"interval": "PER_TRANSACTION",
"remaining": null
}
],
"authorization_controls": null,
"no_pin_payment_amount": "USD",
"risk_controls": {
"allow3dsTransactions": "Y"
},
"metadata": {},
"card_status": "ACTIVE",
"brand": null,
"cardholder_id": null,
"created_at": null,
"created_by": null,
"is_personalized": false,
"name_on_card": null,
"nick_name": null,
"program": null,
"purpose": null,
"delivery_details": null,
"postal_address": null
}
]
}
{
"code": 400,
"status": "error",
"message": "Error Message"
}