Visa Next Platform

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Authentication

  • API Key (ApiKeyAuth)
    • Parameter Name: X-API-KEY, in: header. API key required to authorize request.

cardtemplates

Operation for Cardtemplate

Create a Cardtemplate

Code samples

# You can also use wget
curl -X POST /api/v1/cardtemplates \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.post '/api/v1/cardtemplates',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.post('/api/v1/cardtemplates', params={

}, headers = headers)

print r.json()

const fetch = require('node-fetch');
const inputBody = '{
  "card_controls": [
    {
      "type": "AUTHORIZATION",
      "active": true,
      "transaction_scope": {
        "tcc": 0
      },
      "spend_limits": {
        "amount_limit": 0,
        "velocity_window": "DAY"
      },
      "merchant_scope": {
        "mcc": 0
      }
    }
  ],
  "tokenization": "APPLE_PAY",
  "address": {
    "line1": "min 10 char, max 40 char",
    "line2": "max 40 char",
    "city": "max 40 char",
    "province": "max 40 char",
    "postal_code": "max 10 char",
    "country": "max 2 char"
  },
  "type": "VIRTUAL | PHYSICAL",
  "customization": {
    "card_art": "string",
    "personalized_message": "max 40 char",
    "expiry": {
      "month": "min 2 char, max 2 char",
      "year": "min 2 char, max 4 char"
    }
  },
  "funding_source_id": "string",
  "metadata": {
    "prop1": "string",
    "prop2": "string"
  },
  "status": "INACTIVE",
  "number_limit": 0,
  "rpin": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('/api/v1/cardtemplates',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("/api/v1/cardtemplates");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /cardtemplates

Creates a new Cardtemplate object for which Card object settings will default to.

Body parameter

{
  "card_controls": [
    {
      "type": "AUTHORIZATION",
      "active": true,
      "transaction_scope": {
        "tcc": 0
      },
      "spend_limits": {
        "amount_limit": 0,
        "velocity_window": "DAY"
      },
      "merchant_scope": {
        "mcc": 0
      }
    }
  ],
  "tokenization": "APPLE_PAY",
  "address": {
    "line1": "min 10 char, max 40 char",
    "line2": "max 40 char",
    "city": "max 40 char",
    "province": "max 40 char",
    "postal_code": "max 10 char",
    "country": "max 2 char"
  },
  "type": "VIRTUAL | PHYSICAL",
  "customization": {
    "card_art": "string",
    "personalized_message": "max 40 char",
    "expiry": {
      "month": "min 2 char, max 2 char",
      "year": "min 2 char, max 4 char"
    }
  },
  "funding_source_id": "string",
  "metadata": {
    "prop1": "string",
    "prop2": "string"
  },
  "status": "INACTIVE",
  "number_limit": 0,
  "rpin": "string"
}

Parameters

Parameter Description
body
object
(required)
Create a cardtemplate request body
card_controls
(optional)
none
type
string
(optional)
none
active
boolean
(optional)
none
transaction_scope
object
(optional)
none
tcc
number
(optional)
none
spend_limits
object
(optional)
none
amount_limit
number
(optional)
none
velocity_window
string
(optional)
none
merchant_scope
object
(optional)
none
mcc
number
(optional)
none
tokenization
string
(required)
Represents the default tokenization schemes to be supported on issuable cards.
address
(optional)
Address object
line1
string
(required)
Block number, street name
line2
string
(optional)
Unit number, building/office name
city
string
(required)
Name of city
province
string
(required)
Name of state/province
postal_code
string
(optional)
Postal/zip code
country
string
(required)
Country code in ISO 3166 two-letter format
type
(optional)
Type of Card
customization
(optional)
none
card_art
(optional)
Cards' card art image URL.
personalized_message
(optional)
Personalized message to be shown/printed on issued card. Default message like an enterprise name to be added below the cardholder name.
expiry
(optional)
Card object expiration
month
string
(required)
2-digit card expiration month
year
string
(required)
2-digit/4-digit expiration year
funding_source_id
string(UUID)
(optional)
none
metadata
(optional)
Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
status
(optional)
Lifecyle of Card object
number_limit
integer
(optional)
none
rpin
string
(optional)
none

Example responses

201 Response

{
  "id": "string",
  "card_controls": [
    {
      "type": "AUTHORIZATION",
      "active": true,
      "transaction_scope": {
        "tcc": 0
      },
      "spend_limits": {
        "amount_limit": 0,
        "velocity_window": "DAY"
      },
      "merchant_scope": {
        "mcc": 0
      }
    }
  ],
  "tokenization": [
    "APPLE_PAY"
  ],
  "address": {
    "line1": "min 10 char, max 40 char",
    "line2": "max 40 char",
    "city": "max 40 char",
    "province": "max 40 char",
    "postal_code": "max 10 char",
    "country": "max 2 char"
  },
  "type": "VIRTUAL | PHYSICAL",
  "customization": {
    "card_art": "string",
    "personalized_message": "max 40 char",
    "expiry": {
      "month": "min 2 char, max 2 char",
      "year": "min 2 char, max 4 char"
    }
  },
  "funding_source_id": "string",
  "metadata": {
    "prop1": "string",
    "prop2": "string"
  },
  "status": true,
  "number_limit": 0,
  "rpin": "string"
}

Responses

Status Meaning Description Schema
201 Created Created Cardtemplate
400 Bad Request Bad Request Error
401 Unauthorized API key and/or authorization token are missing, invalid, or expired None
500 Internal Server Error Internal Server Error None
502 Bad Gateway Bad Gateway None
503 Service Unavailable Service Unavailable None
504 Gateway Time-out Gateway Timeout None

Cardholders

Create a Cardholder

Code samples

# You can also use wget
curl -X POST /api/v1/cardholders \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.post '/api/v1/cardholders',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.post('/api/v1/cardholders', params={

}, headers = headers)

print r.json()

const fetch = require('node-fetch');
const inputBody = '{
  "address": {
    "line1": "min 10 char, max 40 char",
    "line2": "max 40 char",
    "city": "max 40 char",
    "province": "max 40 char",
    "postal_code": "max 10 char",
    "country": "max 2 char"
  },
  "email": "min 6 char, max 128 char",
  "first_name": "min 2 char, max 20 char",
  "last_name": "min 2 char, max 20 char",
  "locale": "<language_code>-<country_code>",
  "metadata": {
    "prop1": "string",
    "prop2": "string"
  },
  "parent": "<parent_cardholder_id>",
  "phone": "+<country_code><subscriber_number>",
  "type": "primary | authorized"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('/api/v1/cardholders',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("/api/v1/cardholders");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /cardholders

Creates a new Cardholder object for which Card object will belong to.

Body parameter

{
  "address": {
    "line1": "min 10 char, max 40 char",
    "line2": "max 40 char",
    "city": "max 40 char",
    "province": "max 40 char",
    "postal_code": "max 10 char",
    "country": "max 2 char"
  },
  "email": "min 6 char, max 128 char",
  "first_name": "min 2 char, max 20 char",
  "last_name": "min 2 char, max 20 char",
  "locale": "<language_code>-<country_code>",
  "metadata": {
    "prop1": "string",
    "prop2": "string"
  },
  "parent": "<parent_cardholder_id>",
  "phone": "+<country_code><subscriber_number>",
  "type": "primary | authorized"
}

Parameters

Parameter Description
body
object
(required)
Create cardholder request body
address
object
(required)
Address of card holder. It will be validated by PAV/AVS checks for use as billing address and default physical card delivery address. Address fields requirement depend on country.
line1
string
(optional)
Block number, street name
line2
string
(optional)
Unit number, building/office name
city
string
(optional)
Name of city
province
string
(optional)
Name of state/province
postal_code
string
(optional)
Postal/zip code
country
string
(optional)
Country code in ISO 3166 two-letter format
email
string(email)
(optional)
Email address of cardholder. It will be used for OTP, KYC and push provisioning purposes.
first_name
string
(required)
First name of cardholder. This field will be used as first name part of printed physical card.
last_name
string
(required)
Last name of cardholder. This field will be used as last name part of printed physical card.
locale
string
(required)
Locale to use for cardholder
metadata
(optional)
Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
parent
string
(optional)
Cardholder ID of parent cardholder when creating a sub/child card.
phone
string
(optional)
Phone number of cardholder in E.164 format, e.g. +[country code][subscriber number including area code]. It will be used for OTP, KYC and push provisioning purposes.
type
string
(required)
Cardholder type determines whether the cardholder can create sub/child cards

Example responses

201 Response

{
  "data": {
    "id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
    "first_name": "min 2 char, max 20 char",
    "last_name": "min 2 char, max 20 char",
    "phone": "+<country_code><subscriber_number>",
    "locale": "<language_code>-<country_code>",
    "email": "min 6 char, max 128 char",
    "address": {
      "line1": "min 10 char, max 40 char",
      "line2": "max 40 char",
      "city": "max 40 char",
      "province": "max 40 char",
      "postal_code": "max 10 char",
      "country": "max 2 char"
    },
    "type": "primary",
    "metadata": {
      "prop1": "string",
      "prop2": "string"
    },
    "created": "2007-04-05T14:30Z",
    "modified": "2007-04-05T14:30Z",
    "status": "PENDING_KYC"
  }
}

Responses

Status Meaning Description Schema
201 Created Created Inline
400 Bad Request Bad Request Error
401 Unauthorized API key and/or authorization token are missing, invalid, or expired None
500 Internal Server Error Internal Server Error None
502 Bad Gateway Bad Gateway None
503 Service Unavailable Service Unavailable None
504 Gateway Time-out Gateway Timeout None

Response Schema

Status Code 201

Name Type Required Restrictions Description
data Cardholder false none Cardholder object
id CardholderId true none Cardholder ID (UUID) to whom card belongs to
first_name string true none Cardholder's first name
last_name string true none Cardholder's last name
phone string false none Cardholder's phone number in E.164 format
locale Locale true none Locale
email string(email) false none Cardholder's email address
address Address true none Address object
line1 string true none Block number, street name
line2 string false none Unit number, building/office name
city string true none Name of city
province string true none Name of state/province
postal_code string false none Postal/zip code
country string true none Country code in ISO 3166 two-letter format
type string true none Cardholder's type
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
created string(date-time) true none Cardholder's create timestamp
modified string(date-time) true none Cardholder's last updated timestamp
status string true none none

List all Cardholder

Code samples

# You can also use wget
curl -X GET /api/v1/cardholders \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.get '/api/v1/cardholders',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.get('/api/v1/cardholders', params={

}, headers = headers)

print r.json()

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('/api/v1/cardholders',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("/api/v1/cardholders");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /cardholders

Returns a collection of Cardholder objects. The collection can be selected, filtered, and sorted with ODATA query.

Parameters

Parameter Description
$select
string
(optional)
ODATA query to select cardholder records fields to be returned. Example: $select=id,last_name
$filter
string
(optional)
ODATA query to filter cardholder records to be returned; can be combined with $select. Example: $filter=address/country eq 'Singapore'&$select=last_name
$orderby
string
(optional)
ODATA query to sort cardholder records. Example: $orderby=created
$offset
string
(optional)
none
$top
string
(optional)
none

Example responses

200 Response

[
  {
    "id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
    "first_name": "min 2 char, max 20 char",
    "last_name": "min 2 char, max 20 char",
    "phone": "+<country_code><subscriber_number>",
    "locale": "<language_code>-<country_code>",
    "email": "min 6 char, max 128 char",
    "address": {
      "line1": "min 10 char, max 40 char",
      "line2": "max 40 char",
      "city": "max 40 char",
      "province": "max 40 char",
      "postal_code": "max 10 char",
      "country": "max 2 char"
    },
    "type": "primary",
    "metadata": {
      "prop1": "string",
      "prop2": "string"
    },
    "created": "2007-04-05T14:30Z",
    "modified": "2007-04-05T14:30Z",
    "status": "PENDING_KYC"
  }
]

Responses

Status Meaning Description Schema
200 OK Cardholder objects collection Inline
400 Bad Request Bad Request Error
401 Unauthorized API key and/or authorization token are missing, invalid, or expired None
500 Internal Server Error Internal Server Error None
502 Bad Gateway Bad Gateway None
503 Service Unavailable Service Unavailable None
504 Gateway Time-out Gateway Timeout None

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [Cardholder] false none [Cardholder object]
id CardholderId true none Cardholder ID (UUID) to whom card belongs to
first_name string true none Cardholder's first name
last_name string true none Cardholder's last name
phone string false none Cardholder's phone number in E.164 format
locale Locale true none Locale
email string(email) false none Cardholder's email address
address Address true none Address object
line1 string true none Block number, street name
line2 string false none Unit number, building/office name
city string true none Name of city
province string true none Name of state/province
postal_code string false none Postal/zip code
country string true none Country code in ISO 3166 two-letter format
type string true none Cardholder's type
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
created string(date-time) true none Cardholder's create timestamp
modified string(date-time) true none Cardholder's last updated timestamp
status string true none none

Retrieve a Cardholder

Code samples

# You can also use wget
curl -X GET /api/v1/cardholders/{cardholder_id} \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.get '/api/v1/cardholders/{cardholder_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.get('/api/v1/cardholders/{cardholder_id}', params={

}, headers = headers)

print r.json()

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('/api/v1/cardholders/{cardholder_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("/api/v1/cardholders/{cardholder_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /cardholders/{cardholder_id}

Retrieve a Cardholder object

Parameters

Parameter Description
$expand
string
(optional)
none
cardholder_id
string
(required)
Cardholder object ID (UUID) of Cardholder object

Example responses

200 Response

{
  "data": {
    "id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
    "first_name": "min 2 char, max 20 char",
    "last_name": "min 2 char, max 20 char",
    "phone": "+<country_code><subscriber_number>",
    "locale": "<language_code>-<country_code>",
    "email": "min 6 char, max 128 char",
    "address": {
      "line1": "min 10 char, max 40 char",
      "line2": "max 40 char",
      "city": "max 40 char",
      "province": "max 40 char",
      "postal_code": "max 10 char",
      "country": "max 2 char"
    },
    "type": "primary",
    "metadata": {
      "prop1": "string",
      "prop2": "string"
    },
    "created": "2007-04-05T14:30Z",
    "modified": "2007-04-05T14:30Z",
    "status": "PENDING_KYC"
  }
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Error
401 Unauthorized API key and/or authorization token are missing, invalid, or expired None
404 Not Found Not Found None
500 Internal Server Error Internal Server Error None
502 Bad Gateway Bad Gateway None
503 Service Unavailable Service Unavailable None
504 Gateway Time-out Gateway Timeout None

Response Schema

Status Code 200

Name Type Required Restrictions Description
data Cardholder false none Cardholder object
id CardholderId true none Cardholder ID (UUID) to whom card belongs to
first_name string true none Cardholder's first name
last_name string true none Cardholder's last name
phone string false none Cardholder's phone number in E.164 format
locale Locale true none Locale
email string(email) false none Cardholder's email address
address Address true none Address object
line1 string true none Block number, street name
line2 string false none Unit number, building/office name
city string true none Name of city
province string true none Name of state/province
postal_code string false none Postal/zip code
country string true none Country code in ISO 3166 two-letter format
type string true none Cardholder's type
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
created string(date-time) true none Cardholder's create timestamp
modified string(date-time) true none Cardholder's last updated timestamp
status string true none none

Update a Cardholder

Code samples

# You can also use wget
curl -X PUT /api/v1/cardholders/{cardholder_id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.put '/api/v1/cardholders/{cardholder_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.put('/api/v1/cardholders/{cardholder_id}', params={

}, headers = headers)

print r.json()

const fetch = require('node-fetch');
const inputBody = '{
  "address": {
    "line1": "min 10 char, max 40 char",
    "line2": "max 40 char",
    "city": "max 40 char",
    "province": "max 40 char",
    "postal_code": "max 10 char",
    "country": "max 2 char"
  },
  "email": "min 6 char, max 128 char",
  "first_name": "min 2 char, max 20 char",
  "last_name": "min 2 char, max 20 char",
  "locale": "<language_code>-<country_code>",
  "metadata": {
    "prop1": "string",
    "prop2": "string"
  },
  "phone": "+<country_code><subscriber_number>"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('/api/v1/cardholders/{cardholder_id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("/api/v1/cardholders/{cardholder_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

PUT /cardholders/{cardholder_id}

Updates all of Cardholder object properties

Body parameter

{
  "address": {
    "line1": "min 10 char, max 40 char",
    "line2": "max 40 char",
    "city": "max 40 char",
    "province": "max 40 char",
    "postal_code": "max 10 char",
    "country": "max 2 char"
  },
  "email": "min 6 char, max 128 char",
  "first_name": "min 2 char, max 20 char",
  "last_name": "min 2 char, max 20 char",
  "locale": "<language_code>-<country_code>",
  "metadata": {
    "prop1": "string",
    "prop2": "string"
  },
  "phone": "+<country_code><subscriber_number>"
}

Parameters

Parameter Description
body
(required)
Update cardholder request body
address
object
(optional)
Address of cardholder. It will be validated by PAV/AVS checks for use as billing address and default physical card delivery address. Address fields requirement depend on country.
line1
string
(optional)
Block number, street name
line2
string
(optional)
Unit number, building/office name
city
string
(optional)
Name of city
province
string
(optional)
Name of state/province
postal_code
string
(optional)
Postal/zip code
country
string
(optional)
Country code in ISO 3166 two-letter format
email
string(email)
(optional)
Email address of cardholder. It will be used for OTP, KYC and push provisioning purposes.
first_name
string
(optional)
First name of cardholder. This field will be used as first name part of printed physical card.
last_name
string
(optional)
Last name of cardholder. This field will be used as last name part of printed physical card.
locale
string
(optional)
Locale to use for cardholder
metadata
(optional)
Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
phone
string
(optional)
Phone number of cardholder in E.164 format, e.g. [+][country code][subscriber number including area code]. It will be used for OTP, KYC and push provisioning purposes.
cardholder_id
string
(required)
Cardholder object ID (UUID) of Cardholder object

Example responses

200 Response

{
  "data": {
    "id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
    "first_name": "min 2 char, max 20 char",
    "last_name": "min 2 char, max 20 char",
    "phone": "+<country_code><subscriber_number>",
    "locale": "<language_code>-<country_code>",
    "email": "min 6 char, max 128 char",
    "address": {
      "line1": "min 10 char, max 40 char",
      "line2": "max 40 char",
      "city": "max 40 char",
      "province": "max 40 char",
      "postal_code": "max 10 char",
      "country": "max 2 char"
    },
    "type": "primary",
    "metadata": {
      "prop1": "string",
      "prop2": "string"
    },
    "created": "2007-04-05T14:30Z",
    "modified": "2007-04-05T14:30Z",
    "status": "PENDING_KYC"
  }
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request None
401 Unauthorized API key and/or authorization token are missing, invalid, or expired None
404 Not Found Not Found None
409 Conflict Conflict None
500 Internal Server Error Internal Server Error None
502 Bad Gateway Bad Gateway None
503 Service Unavailable Service Unavailable None
504 Gateway Time-out Gateway Timeout None

Response Schema

Status Code 200

Name Type Required Restrictions Description
data Cardholder false none Cardholder object
id CardholderId true none Cardholder ID (UUID) to whom card belongs to
first_name string true none Cardholder's first name
last_name string true none Cardholder's last name
phone string false none Cardholder's phone number in E.164 format
locale Locale true none Locale
email string(email) false none Cardholder's email address
address Address true none Address object
line1 string true none Block number, street name
line2 string false none Unit number, building/office name
city string true none Name of city
province string true none Name of state/province
postal_code string false none Postal/zip code
country string true none Country code in ISO 3166 two-letter format
type string true none Cardholder's type
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
created string(date-time) true none Cardholder's create timestamp
modified string(date-time) true none Cardholder's last updated timestamp
status string true none none

Delete a Cardholder

Code samples

# You can also use wget
curl -X DELETE /api/v1/cardholders/{cardholder_id} \
  -H 'X-API-KEY: API_KEY'

require 'rest-client'
require 'json'

headers = {
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.delete '/api/v1/cardholders/{cardholder_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'X-API-KEY': 'API_KEY'
}

r = requests.delete('/api/v1/cardholders/{cardholder_id}', params={

}, headers = headers)

print r.json()

const fetch = require('node-fetch');

const headers = {
  'X-API-KEY':'API_KEY'

};

fetch('/api/v1/cardholders/{cardholder_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("/api/v1/cardholders/{cardholder_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

DELETE /cardholders/{cardholder_id}

Delete Cardholder object

Parameters

Parameter Description
cardholder_id
string
(required)
Cardholder object ID (UUID) of Cardholder object

Responses

Status Meaning Description Schema
204 No Content No Content None
401 Unauthorized API key and/or authorization token are missing, invalid, or expired None
404 Not Found Not Found None
409 Conflict Conflict None
500 Internal Server Error Internal Server Error None
502 Bad Gateway Bad Gateway None
503 Service Unavailable Service Unavailable None
504 Gateway Time-out Gateway Timeout None

Cards

Create a Card

Code samples

# You can also use wget
curl -X POST /api/v1/cards \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'X-Cardholder-ID: string' \
  -H 'X-API-KEY: API_KEY'

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'X-Cardholder-ID' => 'string',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.post '/api/v1/cards',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'X-Cardholder-ID': 'string',
  'X-API-KEY': 'API_KEY'
}

r = requests.post('/api/v1/cards', params={

}, headers = headers)

print r.json()

const fetch = require('node-fetch');
const inputBody = '{
  "address": {
    "line1": "min 10 char, max 40 char",
    "line2": "max 40 char",
    "city": "max 40 char",
    "province": "max 40 char",
    "postal_code": "max 10 char",
    "country": "max 2 char"
  },
  "cardholder_id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
  "customization": {
    "card_art": "string",
    "personalized_message": "max 40 char",
    "expiry": {
      "month": "min 2 char, max 2 char",
      "year": "min 2 char, max 4 char"
    }
  },
  "display_name": "min 2 char, max 41 char",
  "metadata": {
    "prop1": "string",
    "prop2": "string"
  },
  "status": "INACTIVE",
  "template_id": "string",
  "type": "VIRTUAL | PHYSICAL",
  "rpin": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'X-Cardholder-ID':'string',
  'X-API-KEY':'API_KEY'

};

fetch('/api/v1/cards',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("/api/v1/cards");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /cards

Creates a Card object

Body parameter

{
  "address": {
    "line1": "min 10 char, max 40 char",
    "line2": "max 40 char",
    "city": "max 40 char",
    "province": "max 40 char",
    "postal_code": "max 10 char",
    "country": "max 2 char"
  },
  "cardholder_id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
  "customization": {
    "card_art": "string",
    "personalized_message": "max 40 char",
    "expiry": {
      "month": "min 2 char, max 2 char",
      "year": "min 2 char, max 4 char"
    }
  },
  "display_name": "min 2 char, max 41 char",
  "metadata": {
    "prop1": "string",
    "prop2": "string"
  },
  "status": "INACTIVE",
  "template_id": "string",
  "type": "VIRTUAL | PHYSICAL",
  "rpin": "string"
}

Parameters

Parameter Description
X-Cardholder-ID
string
(optional)
none
body
object
(required)
Create card request body
address
object
(optional)
Address of cardholder. It will be validated by PAV/AVS checks for use as billing address and default physical card delivery address. Address fields requirement depend on country.
line1
string
(optional)
Block number, street name
line2
string
(optional)
Unit number, building/office name
city
string
(optional)
Name of city
province
string
(optional)
Name of state/province
postal_code
string
(optional)
Postal/zip code
country
string
(optional)
Country code in ISO 3166 two-letter format
cardholder_id
(required)
Cardholder ID (UUID) to whom card belongs to
customization
(optional)
none
card_art
(optional)
Cards' card art image URL.
personalized_message
(optional)
Personalized message to be shown/printed on issued card. Default message like an enterprise name to be added below the cardholder name.
expiry
(optional)
Card object expiration
month
string
(required)
2-digit card expiration month
year
string
(required)
2-digit/4-digit expiration year
display_name
(optional)
Cardholder name to display on issued card; if not passed during create card request, defaults to composite of cardholder's first and last name.
metadata
(optional)
Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
status
string
(optional)
Status of card to be issued
template_id
(required)
Card template object ID (UUID) to which issued card will inherit elements from. Inherited elements can be card controls, alerts configurations, etc.
type
(required)
Type of Card
rpin
string
(optional)
none

Example responses

201 Response

{
  "data": {
    "id": "string",
    "display_name": "min 2 char, max 41 char",
    "last_four": "max 4 char",
    "expiry": {
      "month": "min 2 char, max 2 char",
      "year": "min 2 char, max 4 char"
    },
    "locale": "<language_code>-<country_code>",
    "pan": "XXXXXXXXXXXX4242",
    "cvv2": "string",
    "address": {
      "line1": "min 10 char, max 40 char",
      "line2": "max 40 char",
      "city": "max 40 char",
      "province": "max 40 char",
      "postal_code": "max 10 char",
      "country": "max 2 char"
    },
    "type": "VIRTUAL | PHYSICAL",
    "cardholder": {
      "id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
      "first_name": "min 2 char, max 20 char",
      "last_name": "min 2 char, max 20 char",
      "phone": "+<country_code><subscriber_number>",
      "locale": "<language_code>-<country_code>",
      "email": "min 6 char, max 128 char",
      "address": {
        "line1": "min 10 char, max 40 char",
        "line2": "max 40 char",
        "city": "max 40 char",
        "province": "max 40 char",
        "postal_code": "max 10 char",
        "country": "max 2 char"
      },
      "type": "primary",
      "metadata": {
        "prop1": "string",
        "prop2": "string"
      },
      "created": "2007-04-05T14:30Z",
      "modified": "2007-04-05T14:30Z",
      "status": "PENDING_KYC"
    },
    "cardholder_id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
    "template": {
      "id": "string",
      "card_controls": [
        {
          "type": "AUTHORIZATION",
          "active": true,
          "transaction_scope": {
            "tcc": 0
          },
          "spend_limits": {
            "amount_limit": 0,
            "velocity_window": "DAY"
          },
          "merchant_scope": {
            "mcc": 0
          }
        }
      ],
      "tokenization": [
        "APPLE_PAY"
      ],
      "address": {
        "line1": "min 10 char, max 40 char",
        "line2": "max 40 char",
        "city": "max 40 char",
        "province": "max 40 char",
        "postal_code": "max 10 char",
        "country": "max 2 char"
      },
      "type": "VIRTUAL | PHYSICAL",
      "customization": {
        "card_art": "string",
        "personalized_message": "max 40 char",
        "expiry": {
          "month": "min 2 char, max 2 char",
          "year": "min 2 char, max 4 char"
        }
      },
      "funding_source_id": "string",
      "metadata": {
        "prop1": "string",
        "prop2": "string"
      },
      "status": true,
      "number_limit": 0,
      "rpin": "string"
    },
    "template_id": "string",
    "status": "INACTIVE",
    "currency_code": "IDR | SGD | MYR",
    "country_code": "max 2 char",
    "balance": 0,
    "customization": {
      "card_art": "string",
      "personalized_message": "max 40 char",
      "expiry": {
        "month": "min 2 char, max 2 char",
        "year": "min 2 char, max 4 char"
      }
    },
    "metadata": {
      "prop1": "string",
      "prop2": "string"
    },
    "created": "2007-04-05T14:30Z",
    "modified": "2007-04-05T14:30Z"
  }
}

Responses

Status Meaning Description Schema
201 Created Created Inline
400 Bad Request Bad Request Error
401 Unauthorized API key and/or authorization token are missing, invalid, or expired None
500 Internal Server Error Internal Server Error None
502 Bad Gateway Bad Gateway None
503 Service Unavailable Service Unavailable None
504 Gateway Time-out Gateway Timeout None

Response Schema

Status Code 201

Name Type Required Restrictions Description
data Card false none none
id CardId true none Issued Card ID (UUID)
display_name CardDisplayName true none Cardholder name to display on issued card; if not passed during create card request, defaults to composite of cardholder's first and last name.
last_four string true none Last 4 digits of card
expiry CardExpiry true none Card object expiration
month string true none 2-digit card expiration month
year string true none 2-digit/4-digit expiration year
locale Locale true none Locale
pan string true none Masked PAN number with last four digits shown by default; to get unmasked PAN provide add "ShowPAN: true" header to request
cvv2 string true none Masked CVV2 by default; to get unmasked CVV2 add "ShowPAN: true" header to request
address Address true none Address object
line1 string true none Block number, street name
line2 string false none Unit number, building/office name
city string true none Name of city
province string true none Name of state/province
postal_code string false none Postal/zip code
country string true none Country code in ISO 3166 two-letter format
type CardType true none Type of Card
cardholder Cardholder true none Cardholder object
id CardholderId true none Cardholder ID (UUID) to whom card belongs to
first_name string true none Cardholder's first name
last_name string true none Cardholder's last name
phone string false none Cardholder's phone number in E.164 format
locale Locale true none Locale
email string(email) false none Cardholder's email address
address Address true none Address object
type string true none Cardholder's type
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
created string(date-time) true none Cardholder's create timestamp
modified string(date-time) true none Cardholder's last updated timestamp
status string true none none
cardholder_id CardholderId false none Cardholder ID (UUID) to whom card belongs to
template Cardtemplate true none CardTemplate is a base object to provide default settings to issuable cards. The card template includes setting default expiry date, default address, and default set of card controls and other attributes.
id CardtemplateId false none Card template object ID (UUID) to which issued card will inherit elements from. Inherited elements can be card controls, alerts configurations, etc.
card_controls [CardControl] false none none
type string false none none
active boolean false none none
transaction_scope object false none none
tcc number false none none
spend_limits object false none none
amount_limit number false none none
velocity_window string false none none
merchant_scope object false none none
mcc number false none none
tokenization [string] false none List of tokenization schemes supported on issued Card object.
address Address false none Address object
type CardType false none Type of Card
customization CardCustomization false none none
card_art CardArt false none Cards' card art image URL.
personalized_message CardPersonalizedMessage false none Personalized message to be shown/printed on issued card. Default message like an enterprise name to be added below the cardholder name.
expiry CardExpiry false none Card object expiration
funding_source_id string(uuid) false none The funding source specification at the template level ensures default source associated with the card object when adding funds to associated cards using Transactions.
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
status boolean false none Applies to virtual cards.
number_limit number false none Default number of cards that can be created using this template.
rpin string false none RPIN provides card program level setup to allow linking issuable cards with rewards program and other card program attributes
template_id CardtemplateId false none Card template object ID (UUID) to which issued card will inherit elements from. Inherited elements can be card controls, alerts configurations, etc.
status CardStatus true none Lifecyle of Card object
currency_code string true none ISO 4217 three letter currency code
country_code string true none ISO 3166 two letter country code
balance number true none Available balance on preloaded card
customization CardCustomization false none none
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
created string(date-time) true none Card's create timestamp
modified string(date-time) true none Card's last updated timestamp

Retrieve a Card

Code samples

# You can also use wget
curl -X GET /api/v1/cards/{card_id} \
  -H 'Accept: application/json' \
  -H 'X-Show-PAN: true' \
  -H 'X-API-KEY: API_KEY'

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-Show-PAN' => 'true',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.get '/api/v1/cards/{card_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-Show-PAN': 'true',
  'X-API-KEY': 'API_KEY'
}

r = requests.get('/api/v1/cards/{card_id}', params={

}, headers = headers)

print r.json()

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'X-Show-PAN':'true',
  'X-API-KEY':'API_KEY'

};

fetch('/api/v1/cards/{card_id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("/api/v1/cards/{card_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /cards/{card_id}

Returns a Card object

Parameters

Parameter Description
X-Show-PAN
boolean
(optional)
To get unmasked PAN and CVV2 for card object, header must be sent with value "true".
card_id
string
(required)
Issued card object ID (UUID) of Card object

Example responses

200 Response

{
  "data": {
    "id": "string",
    "display_name": "min 2 char, max 41 char",
    "last_four": "max 4 char",
    "expiry": {
      "month": "min 2 char, max 2 char",
      "year": "min 2 char, max 4 char"
    },
    "locale": "<language_code>-<country_code>",
    "pan": "XXXXXXXXXXXX4242",
    "cvv2": "string",
    "address": {
      "line1": "min 10 char, max 40 char",
      "line2": "max 40 char",
      "city": "max 40 char",
      "province": "max 40 char",
      "postal_code": "max 10 char",
      "country": "max 2 char"
    },
    "type": "VIRTUAL | PHYSICAL",
    "cardholder": {
      "id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
      "first_name": "min 2 char, max 20 char",
      "last_name": "min 2 char, max 20 char",
      "phone": "+<country_code><subscriber_number>",
      "locale": "<language_code>-<country_code>",
      "email": "min 6 char, max 128 char",
      "address": {
        "line1": "min 10 char, max 40 char",
        "line2": "max 40 char",
        "city": "max 40 char",
        "province": "max 40 char",
        "postal_code": "max 10 char",
        "country": "max 2 char"
      },
      "type": "primary",
      "metadata": {
        "prop1": "string",
        "prop2": "string"
      },
      "created": "2007-04-05T14:30Z",
      "modified": "2007-04-05T14:30Z",
      "status": "PENDING_KYC"
    },
    "cardholder_id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
    "template": {
      "id": "string",
      "card_controls": [
        {
          "type": "AUTHORIZATION",
          "active": true,
          "transaction_scope": {
            "tcc": 0
          },
          "spend_limits": {
            "amount_limit": 0,
            "velocity_window": "DAY"
          },
          "merchant_scope": {
            "mcc": 0
          }
        }
      ],
      "tokenization": [
        "APPLE_PAY"
      ],
      "address": {
        "line1": "min 10 char, max 40 char",
        "line2": "max 40 char",
        "city": "max 40 char",
        "province": "max 40 char",
        "postal_code": "max 10 char",
        "country": "max 2 char"
      },
      "type": "VIRTUAL | PHYSICAL",
      "customization": {
        "card_art": "string",
        "personalized_message": "max 40 char",
        "expiry": {
          "month": "min 2 char, max 2 char",
          "year": "min 2 char, max 4 char"
        }
      },
      "funding_source_id": "string",
      "metadata": {
        "prop1": "string",
        "prop2": "string"
      },
      "status": true,
      "number_limit": 0,
      "rpin": "string"
    },
    "template_id": "string",
    "status": "INACTIVE",
    "currency_code": "IDR | SGD | MYR",
    "country_code": "max 2 char",
    "balance": 0,
    "customization": {
      "card_art": "string",
      "personalized_message": "max 40 char",
      "expiry": {
        "month": "min 2 char, max 2 char",
        "year": "min 2 char, max 4 char"
      }
    },
    "metadata": {
      "prop1": "string",
      "prop2": "string"
    },
    "created": "2007-04-05T14:30Z",
    "modified": "2007-04-05T14:30Z"
  }
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Error
401 Unauthorized API key and/or authorization token are missing, invalid, or expired None
403 Forbidden Forbidden None
404 Not Found Not Found None
500 Internal Server Error Internal Server Error None
502 Bad Gateway Bad Gateway None
503 Service Unavailable Service Unavailable None
504 Gateway Time-out Gateway Timeout None

Response Schema

Status Code 200

Name Type Required Restrictions Description
data Card false none none
id CardId true none Issued Card ID (UUID)
display_name CardDisplayName true none Cardholder name to display on issued card; if not passed during create card request, defaults to composite of cardholder's first and last name.
last_four string true none Last 4 digits of card
expiry CardExpiry true none Card object expiration
month string true none 2-digit card expiration month
year string true none 2-digit/4-digit expiration year
locale Locale true none Locale
pan string true none Masked PAN number with last four digits shown by default; to get unmasked PAN provide add "ShowPAN: true" header to request
cvv2 string true none Masked CVV2 by default; to get unmasked CVV2 add "ShowPAN: true" header to request
address Address true none Address object
line1 string true none Block number, street name
line2 string false none Unit number, building/office name
city string true none Name of city
province string true none Name of state/province
postal_code string false none Postal/zip code
country string true none Country code in ISO 3166 two-letter format
type CardType true none Type of Card
cardholder Cardholder true none Cardholder object
id CardholderId true none Cardholder ID (UUID) to whom card belongs to
first_name string true none Cardholder's first name
last_name string true none Cardholder's last name
phone string false none Cardholder's phone number in E.164 format
locale Locale true none Locale
email string(email) false none Cardholder's email address
address Address true none Address object
type string true none Cardholder's type
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
created string(date-time) true none Cardholder's create timestamp
modified string(date-time) true none Cardholder's last updated timestamp
status string true none none
cardholder_id CardholderId false none Cardholder ID (UUID) to whom card belongs to
template Cardtemplate true none CardTemplate is a base object to provide default settings to issuable cards. The card template includes setting default expiry date, default address, and default set of card controls and other attributes.
id CardtemplateId false none Card template object ID (UUID) to which issued card will inherit elements from. Inherited elements can be card controls, alerts configurations, etc.
card_controls [CardControl] false none none
type string false none none
active boolean false none none
transaction_scope object false none none
tcc number false none none
spend_limits object false none none
amount_limit number false none none
velocity_window string false none none
merchant_scope object false none none
mcc number false none none
tokenization [string] false none List of tokenization schemes supported on issued Card object.
address Address false none Address object
type CardType false none Type of Card
customization CardCustomization false none none
card_art CardArt false none Cards' card art image URL.
personalized_message CardPersonalizedMessage false none Personalized message to be shown/printed on issued card. Default message like an enterprise name to be added below the cardholder name.
expiry CardExpiry false none Card object expiration
funding_source_id string(uuid) false none The funding source specification at the template level ensures default source associated with the card object when adding funds to associated cards using Transactions.
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
status boolean false none Applies to virtual cards.
number_limit number false none Default number of cards that can be created using this template.
rpin string false none RPIN provides card program level setup to allow linking issuable cards with rewards program and other card program attributes
template_id CardtemplateId false none Card template object ID (UUID) to which issued card will inherit elements from. Inherited elements can be card controls, alerts configurations, etc.
status CardStatus true none Lifecyle of Card object
currency_code string true none ISO 4217 three letter currency code
country_code string true none ISO 3166 two letter country code
balance number true none Available balance on preloaded card
customization CardCustomization false none none
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
created string(date-time) true none Card's create timestamp
modified string(date-time) true none Card's last updated timestamp

Update a Card

Code samples

# You can also use wget
curl -X PATCH /api/v1/cards/{card_id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.patch '/api/v1/cards/{card_id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.patch('/api/v1/cards/{card_id}', params={

}, headers = headers)

print r.json()

const fetch = require('node-fetch');
const inputBody = '{
  "display_name": "min 2 char, max 41 char",
  "address": {
    "line1": "min 10 char, max 40 char",
    "line2": "max 40 char",
    "city": "max 40 char",
    "province": "max 40 char",
    "postal_code": "max 10 char",
    "country": "max 2 char"
  },
  "metadata": {
    "prop1": "string",
    "prop2": "string"
  },
  "status": "INACTIVE"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('/api/v1/cards/{card_id}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("/api/v1/cards/{card_id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

PATCH /cards/{card_id}

Updates a Card object

Body parameter

{
  "display_name": "min 2 char, max 41 char",
  "address": {
    "line1": "min 10 char, max 40 char",
    "line2": "max 40 char",
    "city": "max 40 char",
    "province": "max 40 char",
    "postal_code": "max 10 char",
    "country": "max 2 char"
  },
  "metadata": {
    "prop1": "string",
    "prop2": "string"
  },
  "status": "INACTIVE"
}

Parameters

Parameter Description
body
object
(required)
Update a card request body
display_name
(optional)
Cardholder name to display on issued card; if not passed during create card request, defaults to composite of cardholder's first and last name.
address
(optional)
Address object
line1
string
(required)
Block number, street name
line2
string
(optional)
Unit number, building/office name
city
string
(required)
Name of city
province
string
(required)
Name of state/province
postal_code
string
(optional)
Postal/zip code
country
string
(required)
Country code in ISO 3166 two-letter format
metadata
(optional)
Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
status
(optional)
Lifecyle of Card object
card_id
string
(required)
Issued card object ID (UUID) of Card object

Example responses

200 Response

{
  "data": {
    "id": "string",
    "display_name": "min 2 char, max 41 char",
    "last_four": "max 4 char",
    "expiry": {
      "month": "min 2 char, max 2 char",
      "year": "min 2 char, max 4 char"
    },
    "locale": "<language_code>-<country_code>",
    "pan": "XXXXXXXXXXXX4242",
    "cvv2": "string",
    "address": {
      "line1": "min 10 char, max 40 char",
      "line2": "max 40 char",
      "city": "max 40 char",
      "province": "max 40 char",
      "postal_code": "max 10 char",
      "country": "max 2 char"
    },
    "type": "VIRTUAL | PHYSICAL",
    "cardholder": {
      "id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
      "first_name": "min 2 char, max 20 char",
      "last_name": "min 2 char, max 20 char",
      "phone": "+<country_code><subscriber_number>",
      "locale": "<language_code>-<country_code>",
      "email": "min 6 char, max 128 char",
      "address": {
        "line1": "min 10 char, max 40 char",
        "line2": "max 40 char",
        "city": "max 40 char",
        "province": "max 40 char",
        "postal_code": "max 10 char",
        "country": "max 2 char"
      },
      "type": "primary",
      "metadata": {
        "prop1": "string",
        "prop2": "string"
      },
      "created": "2007-04-05T14:30Z",
      "modified": "2007-04-05T14:30Z",
      "status": "PENDING_KYC"
    },
    "cardholder_id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
    "template": {
      "id": "string",
      "card_controls": [
        {
          "type": "AUTHORIZATION",
          "active": true,
          "transaction_scope": {
            "tcc": 0
          },
          "spend_limits": {
            "amount_limit": 0,
            "velocity_window": "DAY"
          },
          "merchant_scope": {
            "mcc": 0
          }
        }
      ],
      "tokenization": [
        "APPLE_PAY"
      ],
      "address": {
        "line1": "min 10 char, max 40 char",
        "line2": "max 40 char",
        "city": "max 40 char",
        "province": "max 40 char",
        "postal_code": "max 10 char",
        "country": "max 2 char"
      },
      "type": "VIRTUAL | PHYSICAL",
      "customization": {
        "card_art": "string",
        "personalized_message": "max 40 char",
        "expiry": {
          "month": "min 2 char, max 2 char",
          "year": "min 2 char, max 4 char"
        }
      },
      "funding_source_id": "string",
      "metadata": {
        "prop1": "string",
        "prop2": "string"
      },
      "status": true,
      "number_limit": 0,
      "rpin": "string"
    },
    "template_id": "string",
    "status": "INACTIVE",
    "currency_code": "IDR | SGD | MYR",
    "country_code": "max 2 char",
    "balance": 0,
    "customization": {
      "card_art": "string",
      "personalized_message": "max 40 char",
      "expiry": {
        "month": "min 2 char, max 2 char",
        "year": "min 2 char, max 4 char"
      }
    },
    "metadata": {
      "prop1": "string",
      "prop2": "string"
    },
    "created": "2007-04-05T14:30Z",
    "modified": "2007-04-05T14:30Z"
  }
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Error
401 Unauthorized API key and/or authorization token are missing, invalid, or expired None
404 Not Found Not Found None
500 Internal Server Error Internal Server Error None
502 Bad Gateway Bad Gateway None
503 Service Unavailable Service Unavailable None
504 Gateway Time-out Gateway Timeout None

Response Schema

Status Code 200

Name Type Required Restrictions Description
data Card false none none
id CardId true none Issued Card ID (UUID)
display_name CardDisplayName true none Cardholder name to display on issued card; if not passed during create card request, defaults to composite of cardholder's first and last name.
last_four string true none Last 4 digits of card
expiry CardExpiry true none Card object expiration
month string true none 2-digit card expiration month
year string true none 2-digit/4-digit expiration year
locale Locale true none Locale
pan string true none Masked PAN number with last four digits shown by default; to get unmasked PAN provide add "ShowPAN: true" header to request
cvv2 string true none Masked CVV2 by default; to get unmasked CVV2 add "ShowPAN: true" header to request
address Address true none Address object
line1 string true none Block number, street name
line2 string false none Unit number, building/office name
city string true none Name of city
province string true none Name of state/province
postal_code string false none Postal/zip code
country string true none Country code in ISO 3166 two-letter format
type CardType true none Type of Card
cardholder Cardholder true none Cardholder object
id CardholderId true none Cardholder ID (UUID) to whom card belongs to
first_name string true none Cardholder's first name
last_name string true none Cardholder's last name
phone string false none Cardholder's phone number in E.164 format
locale Locale true none Locale
email string(email) false none Cardholder's email address
address Address true none Address object
type string true none Cardholder's type
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
created string(date-time) true none Cardholder's create timestamp
modified string(date-time) true none Cardholder's last updated timestamp
status string true none none
cardholder_id CardholderId false none Cardholder ID (UUID) to whom card belongs to
template Cardtemplate true none CardTemplate is a base object to provide default settings to issuable cards. The card template includes setting default expiry date, default address, and default set of card controls and other attributes.
id CardtemplateId false none Card template object ID (UUID) to which issued card will inherit elements from. Inherited elements can be card controls, alerts configurations, etc.
card_controls [CardControl] false none none
type string false none none
active boolean false none none
transaction_scope object false none none
tcc number false none none
spend_limits object false none none
amount_limit number false none none
velocity_window string false none none
merchant_scope object false none none
mcc number false none none
tokenization [string] false none List of tokenization schemes supported on issued Card object.
address Address false none Address object
type CardType false none Type of Card
customization CardCustomization false none none
card_art CardArt false none Cards' card art image URL.
personalized_message CardPersonalizedMessage false none Personalized message to be shown/printed on issued card. Default message like an enterprise name to be added below the cardholder name.
expiry CardExpiry false none Card object expiration
funding_source_id string(uuid) false none The funding source specification at the template level ensures default source associated with the card object when adding funds to associated cards using Transactions.
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
status boolean false none Applies to virtual cards.
number_limit number false none Default number of cards that can be created using this template.
rpin string false none RPIN provides card program level setup to allow linking issuable cards with rewards program and other card program attributes
template_id CardtemplateId false none Card template object ID (UUID) to which issued card will inherit elements from. Inherited elements can be card controls, alerts configurations, etc.
status CardStatus true none Lifecyle of Card object
currency_code string true none ISO 4217 three letter currency code
country_code string true none ISO 3166 two letter country code
balance number true none Available balance on preloaded card
customization CardCustomization false none none
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
created string(date-time) true none Card's create timestamp
modified string(date-time) true none Card's last updated timestamp

Fund a Card

Code samples

# You can also use wget
curl -X POST /api/v1/cards/{card_id}/transactions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.post '/api/v1/cards/{card_id}/transactions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.post('/api/v1/cards/{card_id}/transactions', params={

}, headers = headers)

print r.json()

const fetch = require('node-fetch');
const inputBody = '{
  "amount": 0,
  "type": "reload",
  "funding_source_id": "string",
  "currency_code": "SGD"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('/api/v1/cards/{card_id}/transactions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("/api/v1/cards/{card_id}/transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /cards/{card_id}/transactions

Fund a Card object

Body parameter

{
  "amount": 0,
  "type": "reload",
  "funding_source_id": "string",
  "currency_code": "SGD"
}

Parameters

Parameter Description
body
object
(required)
none
amount
number
(required)
none
type
string
(required)
none
funding_source_id
string(uuid)
(required)
none
currency_code
string
(required)
none
card_id
string
(required)
Issued card object ID (UUID) of Card object

Example responses

201 Response

{
  "data": {
    "id": "string",
    "display_name": "min 2 char, max 41 char",
    "last_four": "max 4 char",
    "expiry": {
      "month": "min 2 char, max 2 char",
      "year": "min 2 char, max 4 char"
    },
    "locale": "<language_code>-<country_code>",
    "pan": "XXXXXXXXXXXX4242",
    "cvv2": "string",
    "address": {
      "line1": "min 10 char, max 40 char",
      "line2": "max 40 char",
      "city": "max 40 char",
      "province": "max 40 char",
      "postal_code": "max 10 char",
      "country": "max 2 char"
    },
    "type": "VIRTUAL | PHYSICAL",
    "cardholder": {
      "id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
      "first_name": "min 2 char, max 20 char",
      "last_name": "min 2 char, max 20 char",
      "phone": "+<country_code><subscriber_number>",
      "locale": "<language_code>-<country_code>",
      "email": "min 6 char, max 128 char",
      "address": {
        "line1": "min 10 char, max 40 char",
        "line2": "max 40 char",
        "city": "max 40 char",
        "province": "max 40 char",
        "postal_code": "max 10 char",
        "country": "max 2 char"
      },
      "type": "primary",
      "metadata": {
        "prop1": "string",
        "prop2": "string"
      },
      "created": "2007-04-05T14:30Z",
      "modified": "2007-04-05T14:30Z",
      "status": "PENDING_KYC"
    },
    "cardholder_id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
    "template": {
      "id": "string",
      "card_controls": [
        {
          "type": "AUTHORIZATION",
          "active": true,
          "transaction_scope": {
            "tcc": 0
          },
          "spend_limits": {
            "amount_limit": 0,
            "velocity_window": "DAY"
          },
          "merchant_scope": {
            "mcc": 0
          }
        }
      ],
      "tokenization": [
        "APPLE_PAY"
      ],
      "address": {
        "line1": "min 10 char, max 40 char",
        "line2": "max 40 char",
        "city": "max 40 char",
        "province": "max 40 char",
        "postal_code": "max 10 char",
        "country": "max 2 char"
      },
      "type": "VIRTUAL | PHYSICAL",
      "customization": {
        "card_art": "string",
        "personalized_message": "max 40 char",
        "expiry": {
          "month": "min 2 char, max 2 char",
          "year": "min 2 char, max 4 char"
        }
      },
      "funding_source_id": "string",
      "metadata": {
        "prop1": "string",
        "prop2": "string"
      },
      "status": true,
      "number_limit": 0,
      "rpin": "string"
    },
    "template_id": "string",
    "status": "INACTIVE",
    "currency_code": "IDR | SGD | MYR",
    "country_code": "max 2 char",
    "balance": 0,
    "customization": {
      "card_art": "string",
      "personalized_message": "max 40 char",
      "expiry": {
        "month": "min 2 char, max 2 char",
        "year": "min 2 char, max 4 char"
      }
    },
    "metadata": {
      "prop1": "string",
      "prop2": "string"
    },
    "created": "2007-04-05T14:30Z",
    "modified": "2007-04-05T14:30Z"
  }
}

Responses

Status Meaning Description Schema
201 Created Created Inline
400 Bad Request Bad Request Error
401 Unauthorized API key and/or authorization token are missing, invalid, or expired None
500 Internal Server Error Internal Server Error None
502 Bad Gateway Bad Gateway None
503 Service Unavailable Service Unavailable None
504 Gateway Time-out Gateway Timeout None

Response Schema

Status Code 201

Name Type Required Restrictions Description
data Card false none none
id CardId true none Issued Card ID (UUID)
display_name CardDisplayName true none Cardholder name to display on issued card; if not passed during create card request, defaults to composite of cardholder's first and last name.
last_four string true none Last 4 digits of card
expiry CardExpiry true none Card object expiration
month string true none 2-digit card expiration month
year string true none 2-digit/4-digit expiration year
locale Locale true none Locale
pan string true none Masked PAN number with last four digits shown by default; to get unmasked PAN provide add "ShowPAN: true" header to request
cvv2 string true none Masked CVV2 by default; to get unmasked CVV2 add "ShowPAN: true" header to request
address Address true none Address object
line1 string true none Block number, street name
line2 string false none Unit number, building/office name
city string true none Name of city
province string true none Name of state/province
postal_code string false none Postal/zip code
country string true none Country code in ISO 3166 two-letter format
type CardType true none Type of Card
cardholder Cardholder true none Cardholder object
id CardholderId true none Cardholder ID (UUID) to whom card belongs to
first_name string true none Cardholder's first name
last_name string true none Cardholder's last name
phone string false none Cardholder's phone number in E.164 format
locale Locale true none Locale
email string(email) false none Cardholder's email address
address Address true none Address object
type string true none Cardholder's type
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
created string(date-time) true none Cardholder's create timestamp
modified string(date-time) true none Cardholder's last updated timestamp
status string true none none
cardholder_id CardholderId false none Cardholder ID (UUID) to whom card belongs to
template Cardtemplate true none CardTemplate is a base object to provide default settings to issuable cards. The card template includes setting default expiry date, default address, and default set of card controls and other attributes.
id CardtemplateId false none Card template object ID (UUID) to which issued card will inherit elements from. Inherited elements can be card controls, alerts configurations, etc.
card_controls [CardControl] false none none
type string false none none
active boolean false none none
transaction_scope object false none none
tcc number false none none
spend_limits object false none none
amount_limit number false none none
velocity_window string false none none
merchant_scope object false none none
mcc number false none none
tokenization [string] false none List of tokenization schemes supported on issued Card object.
address Address false none Address object
type CardType false none Type of Card
customization CardCustomization false none none
card_art CardArt false none Cards' card art image URL.
personalized_message CardPersonalizedMessage false none Personalized message to be shown/printed on issued card. Default message like an enterprise name to be added below the cardholder name.
expiry CardExpiry false none Card object expiration
funding_source_id string(uuid) false none The funding source specification at the template level ensures default source associated with the card object when adding funds to associated cards using Transactions.
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
status boolean false none Applies to virtual cards.
number_limit number false none Default number of cards that can be created using this template.
rpin string false none RPIN provides card program level setup to allow linking issuable cards with rewards program and other card program attributes
template_id CardtemplateId false none Card template object ID (UUID) to which issued card will inherit elements from. Inherited elements can be card controls, alerts configurations, etc.
status CardStatus true none Lifecyle of Card object
currency_code string true none ISO 4217 three letter currency code
country_code string true none ISO 3166 two letter country code
balance number true none Available balance on preloaded card
customization CardCustomization false none none
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
created string(date-time) true none Card's create timestamp
modified string(date-time) true none Card's last updated timestamp

Bulk create Cards

Code samples

# You can also use wget
curl -X POST /api/v1/bulk/cards \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.post '/api/v1/bulk/cards',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.post('/api/v1/bulk/cards', params={

}, headers = headers)

print r.json()

const fetch = require('node-fetch');
const inputBody = '{
  "cardholder_ids": [
    "7a79a5fc-4acf-4a01-9d7f-e1af234d097a"
  ],
  "template_id": "string",
  "type": "VIRTUAL | PHYSICAL",
  "customization": {
    "card_art": "string",
    "personalized_message": "max 40 char",
    "expiry": {
      "month": "min 2 char, max 2 char",
      "year": "min 2 char, max 4 char"
    }
  },
  "metadata": {
    "prop1": "string",
    "prop2": "string"
  },
  "status": "INACTIVE",
  "callback": {
    "url": "string",
    "symkey": "string",
    "access-token": "string",
    "retries": 0
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('/api/v1/bulk/cards',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("/api/v1/bulk/cards");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /bulk/cards

Bulk create Card objects

Body parameter

{
  "cardholder_ids": [
    "7a79a5fc-4acf-4a01-9d7f-e1af234d097a"
  ],
  "template_id": "string",
  "type": "VIRTUAL | PHYSICAL",
  "customization": {
    "card_art": "string",
    "personalized_message": "max 40 char",
    "expiry": {
      "month": "min 2 char, max 2 char",
      "year": "min 2 char, max 4 char"
    }
  },
  "metadata": {
    "prop1": "string",
    "prop2": "string"
  },
  "status": "INACTIVE",
  "callback": {
    "url": "string",
    "symkey": "string",
    "access-token": "string",
    "retries": 0
  }
}

Parameters

Parameter Description
body
object
(required)
Bulk Card create request body
cardholder_ids
(optional)
[Cardholder ID (UUID) to whom card belongs to]
template_id
(optional)
Card template object ID (UUID) to which issued card will inherit elements from. Inherited elements can be card controls, alerts configurations, etc.
type
(optional)
Type of Card
customization
(optional)
none
card_art
(optional)
Cards' card art image URL.
personalized_message
(optional)
Personalized message to be shown/printed on issued card. Default message like an enterprise name to be added below the cardholder name.
expiry
(optional)
Card object expiration
month
string
(required)
2-digit card expiration month
year
string
(required)
2-digit/4-digit expiration year
metadata
(optional)
Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
status
(optional)
Lifecyle of Card object
callback
(optional)
none
url
string
(optional)
none
symkey
string
(optional)
none
access-token
string
(optional)
none
retries
number
(optional)
none

Example responses

202 Response

{
  "request_id": 0
}

Responses

Status Meaning Description Schema
202 Accepted Accepted Inline
400 Bad Request Bad Request Error
401 Unauthorized API key and/or authorization token are missing, invalid, or expired None
500 Internal Server Error Internal Server Error None
502 Bad Gateway Bad Gateway None
503 Service Unavailable Service Unavailable None
504 Gateway Time-out Gateway Timeout None

Response Schema

Status Code 202

Name Type Required Restrictions Description
request_id number false none none

Transactions

List all Transaction for Card

Code samples

# You can also use wget
curl -X GET /api/v1/cards/{card_id}/transactions \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.get '/api/v1/cards/{card_id}/transactions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.get('/api/v1/cards/{card_id}/transactions', params={

}, headers = headers)

print r.json()

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('/api/v1/cards/{card_id}/transactions',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("/api/v1/cards/{card_id}/transactions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

GET /cards/{card_id}/transactions

Returns a collection of Transaction objects for a Card object. The collection can be selected, filtered, and sorted with ODATA query.

Parameters

Parameter Description
card_id
string
(required)
Issued card object ID (UUID) of Card object

Example responses

200 Response

{
  "data": [
    {
      "id": "string",
      "amount": 0,
      "entry_mode": "CONTACTLESS",
      "locale": "<language_code>-<country_code>",
      "card": {
        "id": "string",
        "display_name": "min 2 char, max 41 char",
        "last_four": "max 4 char",
        "expiry": {
          "month": "min 2 char, max 2 char",
          "year": "min 2 char, max 4 char"
        },
        "locale": "<language_code>-<country_code>",
        "pan": "XXXXXXXXXXXX4242",
        "cvv2": "string",
        "address": {
          "line1": "min 10 char, max 40 char",
          "line2": "max 40 char",
          "city": "max 40 char",
          "province": "max 40 char",
          "postal_code": "max 10 char",
          "country": "max 2 char"
        },
        "type": "VIRTUAL | PHYSICAL",
        "cardholder": {
          "id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
          "first_name": "min 2 char, max 20 char",
          "last_name": "min 2 char, max 20 char",
          "phone": "+<country_code><subscriber_number>",
          "locale": "<language_code>-<country_code>",
          "email": "min 6 char, max 128 char",
          "address": {
            "line1": "min 10 char, max 40 char",
            "line2": "max 40 char",
            "city": "max 40 char",
            "province": "max 40 char",
            "postal_code": "max 10 char",
            "country": "max 2 char"
          },
          "type": "primary",
          "metadata": {
            "prop1": "string",
            "prop2": "string"
          },
          "created": "2007-04-05T14:30Z",
          "modified": "2007-04-05T14:30Z",
          "status": "PENDING_KYC"
        },
        "cardholder_id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
        "template": {
          "id": "string",
          "card_controls": [
            {
              "type": "AUTHORIZATION",
              "active": true,
              "transaction_scope": {
                "tcc": 0
              },
              "spend_limits": {
                "amount_limit": 0,
                "velocity_window": "DAY"
              },
              "merchant_scope": {
                "mcc": 0
              }
            }
          ],
          "tokenization": [
            "APPLE_PAY"
          ],
          "address": {
            "line1": "min 10 char, max 40 char",
            "line2": "max 40 char",
            "city": "max 40 char",
            "province": "max 40 char",
            "postal_code": "max 10 char",
            "country": "max 2 char"
          },
          "type": "VIRTUAL | PHYSICAL",
          "customization": {
            "card_art": "string",
            "personalized_message": "max 40 char",
            "expiry": {
              "month": "min 2 char, max 2 char",
              "year": "min 2 char, max 4 char"
            }
          },
          "funding_source_id": "string",
          "metadata": {
            "prop1": "string",
            "prop2": "string"
          },
          "status": true,
          "number_limit": 0,
          "rpin": "string"
        },
        "template_id": "string",
        "status": "INACTIVE",
        "currency_code": "IDR | SGD | MYR",
        "country_code": "max 2 char",
        "balance": 0,
        "customization": {
          "card_art": "string",
          "personalized_message": "max 40 char",
          "expiry": {
            "month": "min 2 char, max 2 char",
            "year": "min 2 char, max 4 char"
          }
        },
        "metadata": {
          "prop1": "string",
          "prop2": "string"
        },
        "created": "2007-04-05T14:30Z",
        "modified": "2007-04-05T14:30Z"
      },
      "status": "PENDING",
      "currency_code": "string",
      "metadata": {
        "prop1": "string",
        "prop2": "string"
      },
      "created": "2007-04-05T14:30Z",
      "merchant": {
        "id": "string",
        "mcc": 0,
        "address": {
          "line1": "min 10 char, max 40 char",
          "line2": "max 40 char",
          "city": "max 40 char",
          "province": "max 40 char",
          "postal_code": "max 10 char",
          "country": "max 2 char"
        },
        "branch": "string",
        "hours": {
          "openhour": "string",
          "closehour": "string"
        }
      }
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Error
401 Unauthorized API key and/or authorization token are missing, invalid, or expired None
500 Internal Server Error Internal Server Error None
502 Bad Gateway Bad Gateway None
503 Service Unavailable Service Unavailable None
504 Gateway Time-out Gateway Timeout None

Response Schema

Status Code 200

Name Type Required Restrictions Description
data [Transaction] false none none
id TransactionId(uuid) false none none
amount number false none none
entry_mode string false none none
locale Locale false none Locale
card Card false none none
id CardId true none Issued Card ID (UUID)
display_name CardDisplayName true none Cardholder name to display on issued card; if not passed during create card request, defaults to composite of cardholder's first and last name.
last_four string true none Last 4 digits of card
expiry CardExpiry true none Card object expiration
month string true none 2-digit card expiration month
year string true none 2-digit/4-digit expiration year
locale Locale true none Locale
pan string true none Masked PAN number with last four digits shown by default; to get unmasked PAN provide add "ShowPAN: true" header to request
cvv2 string true none Masked CVV2 by default; to get unmasked CVV2 add "ShowPAN: true" header to request
address Address true none Address object
line1 string true none Block number, street name
line2 string false none Unit number, building/office name
city string true none Name of city
province string true none Name of state/province
postal_code string false none Postal/zip code
country string true none Country code in ISO 3166 two-letter format
type CardType true none Type of Card
cardholder Cardholder true none Cardholder object
id CardholderId true none Cardholder ID (UUID) to whom card belongs to
first_name string true none Cardholder's first name
last_name string true none Cardholder's last name
phone string false none Cardholder's phone number in E.164 format
locale Locale true none Locale
email string(email) false none Cardholder's email address
address Address true none Address object
type string true none Cardholder's type
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
created string(date-time) true none Cardholder's create timestamp
modified string(date-time) true none Cardholder's last updated timestamp
status string true none none
cardholder_id CardholderId false none Cardholder ID (UUID) to whom card belongs to
template Cardtemplate true none CardTemplate is a base object to provide default settings to issuable cards. The card template includes setting default expiry date, default address, and default set of card controls and other attributes.
id CardtemplateId false none Card template object ID (UUID) to which issued card will inherit elements from. Inherited elements can be card controls, alerts configurations, etc.
card_controls [CardControl] false none none
type string false none none
active boolean false none none
transaction_scope object false none none
tcc number false none none
spend_limits object false none none
amount_limit number false none none
velocity_window string false none none
merchant_scope object false none none
mcc number false none none
tokenization [string] false none List of tokenization schemes supported on issued Card object.
address Address false none Address object
type CardType false none Type of Card
customization CardCustomization false none none
card_art CardArt false none Cards' card art image URL.
personalized_message CardPersonalizedMessage false none Personalized message to be shown/printed on issued card. Default message like an enterprise name to be added below the cardholder name.
expiry CardExpiry false none Card object expiration
funding_source_id string(uuid) false none The funding source specification at the template level ensures default source associated with the card object when adding funds to associated cards using Transactions.
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
status boolean false none Applies to virtual cards.
number_limit number false none Default number of cards that can be created using this template.
rpin string false none RPIN provides card program level setup to allow linking issuable cards with rewards program and other card program attributes
template_id CardtemplateId false none Card template object ID (UUID) to which issued card will inherit elements from. Inherited elements can be card controls, alerts configurations, etc.
status CardStatus true none Lifecyle of Card object
currency_code string true none ISO 4217 three letter currency code
country_code string true none ISO 3166 two letter country code
balance number true none Available balance on preloaded card
customization CardCustomization false none none
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
created string(date-time) true none Card's create timestamp
modified string(date-time) true none Card's last updated timestamp
status TransactionStatus false none none
currency_code string false none none
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
created string(date-time) false none Transaction created timestamp
merchant Merchant false none none
id MerchantId(uuid) false none none
mcc number false none none
address Address false none Address object
branch string false none none
hours object false none none
openhour string false none none
closehour string false none none

Webhooks

Create a subscription to system events

Code samples

# You can also use wget
curl -X POST /api/v1/subscriptions \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'X-API-KEY: API_KEY'

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'X-API-KEY' => 'API_KEY'
}

result = RestClient.post '/api/v1/subscriptions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'X-API-KEY': 'API_KEY'
}

r = requests.post('/api/v1/subscriptions', params={

}, headers = headers)

print r.json()

const fetch = require('node-fetch');
const inputBody = '{
  "event": "card.created",
  "for_user_id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
  "state": "active",
  "description": "string",
  "callback": {
    "url": "string",
    "symkey": "string",
    "access-token": "string",
    "retries": 0
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'X-API-KEY':'API_KEY'

};

fetch('/api/v1/subscriptions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

URL obj = new URL("/api/v1/subscriptions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

POST /subscriptions

Provides a way for consumer to subscribe to events generated by ICS

Body parameter

{
  "event": "card.created",
  "for_user_id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
  "state": "active",
  "description": "string",
  "callback": {
    "url": "string",
    "symkey": "string",
    "access-token": "string",
    "retries": 0
  }
}

Parameters

Parameter Description
body
object
(required)
none
event
string
(optional)
none
for_user_id
(optional)
Cardholder ID (UUID) to whom card belongs to
state
string
(optional)
none
description
string
(optional)
none
callback
(optional)
none
url
string
(optional)
none
symkey
string
(optional)
none
access-token
string
(optional)
none
retries
number
(optional)
none

Example responses

201 Response

{
  "data": [
    {
      "id": "string",
      "event": "card.created",
      "for_user_id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
      "state": "active",
      "description": "string",
      "callback": {
        "url": "string",
        "symkey": "string",
        "access-token": "string",
        "retries": 0
      }
    }
  ]
}

Responses

Status Meaning Description Schema
201 Created OK Inline
400 Bad Request Bad Request Error
401 Unauthorized API key and/or authorization token are missing, invalid, or expired None
500 Internal Server Error Internal Server Error None
502 Bad Gateway Bad Gateway None
503 Service Unavailable Service Unavailable None
504 Gateway Time-out Gateway Timeout None

Response Schema

Status Code 201

Name Type Required Restrictions Description
data [Subscription] false none none
id SubscriptionId(uuid) false none none
event Event false none none
for_user_id CardholderId false none Cardholder ID (UUID) to whom card belongs to
state string false none none
description string false none none
callback CallbackServiceConfig false none none
url string false none none
symkey string false none none
access-token string false none none
retries number false none none

Schemas

Cardtemplate

{
  "id": "string",
  "card_controls": [
    {
      "type": "AUTHORIZATION",
      "active": true,
      "transaction_scope": {
        "tcc": 0
      },
      "spend_limits": {
        "amount_limit": 0,
        "velocity_window": "DAY"
      },
      "merchant_scope": {
        "mcc": 0
      }
    }
  ],
  "tokenization": [
    "APPLE_PAY"
  ],
  "address": {
    "line1": "min 10 char, max 40 char",
    "line2": "max 40 char",
    "city": "max 40 char",
    "province": "max 40 char",
    "postal_code": "max 10 char",
    "country": "max 2 char"
  },
  "type": "VIRTUAL | PHYSICAL",
  "customization": {
    "card_art": "string",
    "personalized_message": "max 40 char",
    "expiry": {
      "month": "min 2 char, max 2 char",
      "year": "min 2 char, max 4 char"
    }
  },
  "funding_source_id": "string",
  "metadata": {
    "prop1": "string",
    "prop2": "string"
  },
  "status": true,
  "number_limit": 0,
  "rpin": "string"
}

CardTemplate is a base object to provide default settings to issuable cards. The card template includes setting default expiry date, default address, and default set of card controls and other attributes.

Properties

Name Type Required Restrictions Description
id CardtemplateId false none Card template object ID (UUID) to which issued card will inherit elements from. Inherited elements can be card controls, alerts configurations, etc.
card_controls [CardControl] false none none
tokenization CardTokenizations false none List of tokenization schemes supported on issued Card object.
address Address false none Address object
type CardType false none Type of Card
customization CardCustomization false none none
funding_source_id string(uuid) false none The funding source specification at the template level ensures default source associated with the card object when adding funds to associated cards using Transactions.
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
status boolean false none Applies to virtual cards.
number_limit number false none Default number of cards that can be created using this template.
rpin string false none RPIN provides card program level setup to allow linking issuable cards with rewards program and other card program attributes

Cardholder

{
  "id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
  "first_name": "min 2 char, max 20 char",
  "last_name": "min 2 char, max 20 char",
  "phone": "+<country_code><subscriber_number>",
  "locale": "<language_code>-<country_code>",
  "email": "min 6 char, max 128 char",
  "address": {
    "line1": "min 10 char, max 40 char",
    "line2": "max 40 char",
    "city": "max 40 char",
    "province": "max 40 char",
    "postal_code": "max 10 char",
    "country": "max 2 char"
  },
  "type": "primary",
  "metadata": {
    "prop1": "string",
    "prop2": "string"
  },
  "created": "2007-04-05T14:30Z",
  "modified": "2007-04-05T14:30Z",
  "status": "PENDING_KYC"
}

Cardholder object

Properties

Name Type Required Restrictions Description
id CardholderId true none Cardholder ID (UUID) to whom card belongs to
first_name string true none Cardholder's first name
last_name string true none Cardholder's last name
phone string false none Cardholder's phone number in E.164 format
locale Locale true none Locale
email string(email) false none Cardholder's email address
address Address true none Address object
type string true none Cardholder's type
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
created string(date-time) true none Cardholder's create timestamp
modified string(date-time) true none Cardholder's last updated timestamp
status string true none none

Enumerated Values

Property Value
type primary
type authorized
status PENDING_KYC
status PENDING_VERIFICATION
status ACTIVE
status INACTIVE
status BLACKLISTED

Card

{
  "id": "string",
  "display_name": "min 2 char, max 41 char",
  "last_four": "max 4 char",
  "expiry": {
    "month": "min 2 char, max 2 char",
    "year": "min 2 char, max 4 char"
  },
  "locale": "<language_code>-<country_code>",
  "pan": "XXXXXXXXXXXX4242",
  "cvv2": "string",
  "address": {
    "line1": "min 10 char, max 40 char",
    "line2": "max 40 char",
    "city": "max 40 char",
    "province": "max 40 char",
    "postal_code": "max 10 char",
    "country": "max 2 char"
  },
  "type": "VIRTUAL | PHYSICAL",
  "cardholder": {
    "id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
    "first_name": "min 2 char, max 20 char",
    "last_name": "min 2 char, max 20 char",
    "phone": "+<country_code><subscriber_number>",
    "locale": "<language_code>-<country_code>",
    "email": "min 6 char, max 128 char",
    "address": {
      "line1": "min 10 char, max 40 char",
      "line2": "max 40 char",
      "city": "max 40 char",
      "province": "max 40 char",
      "postal_code": "max 10 char",
      "country": "max 2 char"
    },
    "type": "primary",
    "metadata": {
      "prop1": "string",
      "prop2": "string"
    },
    "created": "2007-04-05T14:30Z",
    "modified": "2007-04-05T14:30Z",
    "status": "PENDING_KYC"
  },
  "cardholder_id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
  "template": {
    "id": "string",
    "card_controls": [
      {
        "type": "AUTHORIZATION",
        "active": true,
        "transaction_scope": {
          "tcc": 0
        },
        "spend_limits": {
          "amount_limit": 0,
          "velocity_window": "DAY"
        },
        "merchant_scope": {
          "mcc": 0
        }
      }
    ],
    "tokenization": [
      "APPLE_PAY"
    ],
    "address": {
      "line1": "min 10 char, max 40 char",
      "line2": "max 40 char",
      "city": "max 40 char",
      "province": "max 40 char",
      "postal_code": "max 10 char",
      "country": "max 2 char"
    },
    "type": "VIRTUAL | PHYSICAL",
    "customization": {
      "card_art": "string",
      "personalized_message": "max 40 char",
      "expiry": {
        "month": "min 2 char, max 2 char",
        "year": "min 2 char, max 4 char"
      }
    },
    "funding_source_id": "string",
    "metadata": {
      "prop1": "string",
      "prop2": "string"
    },
    "status": true,
    "number_limit": 0,
    "rpin": "string"
  },
  "template_id": "string",
  "status": "INACTIVE",
  "currency_code": "IDR | SGD | MYR",
  "country_code": "max 2 char",
  "balance": 0,
  "customization": {
    "card_art": "string",
    "personalized_message": "max 40 char",
    "expiry": {
      "month": "min 2 char, max 2 char",
      "year": "min 2 char, max 4 char"
    }
  },
  "metadata": {
    "prop1": "string",
    "prop2": "string"
  },
  "created": "2007-04-05T14:30Z",
  "modified": "2007-04-05T14:30Z"
}

Properties

Name Type Required Restrictions Description
id CardId true none Issued Card ID (UUID)
display_name CardDisplayName true none Cardholder name to display on issued card; if not passed during create card request, defaults to composite of cardholder's first and last name.
last_four string true none Last 4 digits of card
expiry CardExpiry true none Card object expiration
locale Locale true none Locale
pan string true none Masked PAN number with last four digits shown by default; to get unmasked PAN provide add "ShowPAN: true" header to request
cvv2 string true none Masked CVV2 by default; to get unmasked CVV2 add "ShowPAN: true" header to request
address Address true none Address object
type CardType true none Type of Card
cardholder Cardholder true none Cardholder object
cardholder_id CardholderId false none Cardholder ID (UUID) to whom card belongs to
template Cardtemplate true none CardTemplate is a base object to provide default settings to issuable cards. The card template includes setting default expiry date, default address, and default set of card controls and other attributes.
template_id CardtemplateId false none Card template object ID (UUID) to which issued card will inherit elements from. Inherited elements can be card controls, alerts configurations, etc.
status CardStatus true none Lifecyle of Card object
currency_code string true none ISO 4217 three letter currency code
country_code string true none ISO 3166 two letter country code
balance number true none Available balance on preloaded card
customization CardCustomization false none none
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
created string(date-time) true none Card's create timestamp
modified string(date-time) true none Card's last updated timestamp

Enumerated Values

Property Value
currency_code IDR
currency_code SGD
currency_code MYR

Transaction

{
  "id": "string",
  "amount": 0,
  "entry_mode": "CONTACTLESS",
  "locale": "<language_code>-<country_code>",
  "card": {
    "id": "string",
    "display_name": "min 2 char, max 41 char",
    "last_four": "max 4 char",
    "expiry": {
      "month": "min 2 char, max 2 char",
      "year": "min 2 char, max 4 char"
    },
    "locale": "<language_code>-<country_code>",
    "pan": "XXXXXXXXXXXX4242",
    "cvv2": "string",
    "address": {
      "line1": "min 10 char, max 40 char",
      "line2": "max 40 char",
      "city": "max 40 char",
      "province": "max 40 char",
      "postal_code": "max 10 char",
      "country": "max 2 char"
    },
    "type": "VIRTUAL | PHYSICAL",
    "cardholder": {
      "id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
      "first_name": "min 2 char, max 20 char",
      "last_name": "min 2 char, max 20 char",
      "phone": "+<country_code><subscriber_number>",
      "locale": "<language_code>-<country_code>",
      "email": "min 6 char, max 128 char",
      "address": {
        "line1": "min 10 char, max 40 char",
        "line2": "max 40 char",
        "city": "max 40 char",
        "province": "max 40 char",
        "postal_code": "max 10 char",
        "country": "max 2 char"
      },
      "type": "primary",
      "metadata": {
        "prop1": "string",
        "prop2": "string"
      },
      "created": "2007-04-05T14:30Z",
      "modified": "2007-04-05T14:30Z",
      "status": "PENDING_KYC"
    },
    "cardholder_id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
    "template": {
      "id": "string",
      "card_controls": [
        {
          "type": "AUTHORIZATION",
          "active": true,
          "transaction_scope": {
            "tcc": 0
          },
          "spend_limits": {
            "amount_limit": 0,
            "velocity_window": "DAY"
          },
          "merchant_scope": {
            "mcc": 0
          }
        }
      ],
      "tokenization": [
        "APPLE_PAY"
      ],
      "address": {
        "line1": "min 10 char, max 40 char",
        "line2": "max 40 char",
        "city": "max 40 char",
        "province": "max 40 char",
        "postal_code": "max 10 char",
        "country": "max 2 char"
      },
      "type": "VIRTUAL | PHYSICAL",
      "customization": {
        "card_art": "string",
        "personalized_message": "max 40 char",
        "expiry": {
          "month": "min 2 char, max 2 char",
          "year": "min 2 char, max 4 char"
        }
      },
      "funding_source_id": "string",
      "metadata": {
        "prop1": "string",
        "prop2": "string"
      },
      "status": true,
      "number_limit": 0,
      "rpin": "string"
    },
    "template_id": "string",
    "status": "INACTIVE",
    "currency_code": "IDR | SGD | MYR",
    "country_code": "max 2 char",
    "balance": 0,
    "customization": {
      "card_art": "string",
      "personalized_message": "max 40 char",
      "expiry": {
        "month": "min 2 char, max 2 char",
        "year": "min 2 char, max 4 char"
      }
    },
    "metadata": {
      "prop1": "string",
      "prop2": "string"
    },
    "created": "2007-04-05T14:30Z",
    "modified": "2007-04-05T14:30Z"
  },
  "status": "PENDING",
  "currency_code": "string",
  "metadata": {
    "prop1": "string",
    "prop2": "string"
  },
  "created": "2007-04-05T14:30Z",
  "merchant": {
    "id": "string",
    "mcc": 0,
    "address": {
      "line1": "min 10 char, max 40 char",
      "line2": "max 40 char",
      "city": "max 40 char",
      "province": "max 40 char",
      "postal_code": "max 10 char",
      "country": "max 2 char"
    },
    "branch": "string",
    "hours": {
      "openhour": "string",
      "closehour": "string"
    }
  }
}

Properties

Name Type Required Restrictions Description
id TransactionId false none none
amount number false none none
entry_mode string false none none
locale Locale false none Locale
card Card false none none
status TransactionStatus false none none
currency_code string false none none
metadata Metadata false none Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.
created string(date-time) false none Transaction created timestamp
merchant Merchant false none none

Enumerated Values

Property Value
entry_mode CONTACTLESS
entry_mode ONLINE
entry_mode CHIP
entry_mode MAGSTRIPE
entry_mode PIN

TransactionId

"string"

Properties

Name Type Required Restrictions Description
anonymous string(uuid) false none none

Merchant

{
  "id": "string",
  "mcc": 0,
  "address": {
    "line1": "min 10 char, max 40 char",
    "line2": "max 40 char",
    "city": "max 40 char",
    "province": "max 40 char",
    "postal_code": "max 10 char",
    "country": "max 2 char"
  },
  "branch": "string",
  "hours": {
    "openhour": "string",
    "closehour": "string"
  }
}

Properties

Name Type Required Restrictions Description
id MerchantId false none none
mcc number false none none
address Address false none Address object
branch string false none none
hours object false none none
openhour string false none none
closehour string false none none

Subscription

{
  "id": "string",
  "event": "card.created",
  "for_user_id": "7a79a5fc-4acf-4a01-9d7f-e1af234d097a",
  "state": "active",
  "description": "string",
  "callback": {
    "url": "string",
    "symkey": "string",
    "access-token": "string",
    "retries": 0
  }
}

Properties

Name Type Required Restrictions Description
id SubscriptionId false none none
event Event false none none
for_user_id CardholderId false none Cardholder ID (UUID) to whom card belongs to
state string false none none
description string false none none
callback CallbackServiceConfig false none none

Enumerated Values

Property Value
state active
state inactive

Address

{
  "line1": "min 10 char, max 40 char",
  "line2": "max 40 char",
  "city": "max 40 char",
  "province": "max 40 char",
  "postal_code": "max 10 char",
  "country": "max 2 char"
}

Address object

Properties

Name Type Required Restrictions Description
line1 string true none Block number, street name
line2 string false none Unit number, building/office name
city string true none Name of city
province string true none Name of state/province
postal_code string false none Postal/zip code
country string true none Country code in ISO 3166 two-letter format

CallbackServiceConfig

{
  "url": "string",
  "symkey": "string",
  "access-token": "string",
  "retries": 0
}

Properties

Name Type Required Restrictions Description
url string false none none
symkey string false none none
access-token string false none none
retries number false none none

CardArt

"string"

Cards' card art image URL.

Properties

Name Type Required Restrictions Description
anonymous string false none Cards' card art image URL.

CardControl

{
  "type": "AUTHORIZATION",
  "active": true,
  "transaction_scope": {
    "tcc": 0
  },
  "spend_limits": {
    "amount_limit": 0,
    "velocity_window": "DAY"
  },
  "merchant_scope": {
    "mcc": 0
  }
}

Properties

Name Type Required Restrictions Description
type string false none none
active boolean false none none
transaction_scope object false none none
tcc number false none none
spend_limits object false none none
amount_limit number false none none
velocity_window string false none none
merchant_scope object false none none
mcc number false none none

Enumerated Values

Property Value
type AUTHORIZATION
type VELOCITY
velocity_window DAY
velocity_window WEEK

CardCustomization

{
  "card_art": "string",
  "personalized_message": "max 40 char",
  "expiry": {
    "month": "min 2 char, max 2 char",
    "year": "min 2 char, max 4 char"
  }
}

Properties

Name Type Required Restrictions Description
card_art CardArt false none Cards' card art image URL.
personalized_message CardPersonalizedMessage false none Personalized message to be shown/printed on issued card. Default message like an enterprise name to be added below the cardholder name.
expiry CardExpiry false none Card object expiration

CardDisplayName

"min 2 char, max 41 char"

Cardholder name to display on issued card; if not passed during create card request, defaults to composite of cardholder's first and last name.

Properties

Name Type Required Restrictions Description
anonymous string false none Cardholder name to display on issued card; if not passed during create card request, defaults to composite of cardholder's first and last name.

CardExpiry

{
  "month": "min 2 char, max 2 char",
  "year": "min 2 char, max 4 char"
}

Card object expiration

Properties

Name Type Required Restrictions Description
month string true none 2-digit card expiration month
year string true none 2-digit/4-digit expiration year

CardId

"string"

Issued Card ID (UUID)

Properties

Name Type Required Restrictions Description
anonymous string false none Issued Card ID (UUID)

CardPersonalizedMessage

"max 40 char"

Personalized message to be shown/printed on issued card. Default message like an enterprise name to be added below the cardholder name.

Properties

Name Type Required Restrictions Description
anonymous string false none Personalized message to be shown/printed on issued card. Default message like an enterprise name to be added below the cardholder name.

CardTokenizations

[
  "APPLE_PAY"
]

List of tokenization schemes supported on issued Card object.

Properties

None

CardStatus

"INACTIVE"

Lifecyle of Card object

Properties

Name Type Required Restrictions Description
anonymous string false none Lifecyle of Card object

Enumerated Values

Property Value
anonymous INACTIVE
anonymous ACTIVE
anonymous CANCELED
anonymous LOST
anonymous STOLEN
anonymous PENDING

CardType

"VIRTUAL | PHYSICAL"

Type of Card

Properties

Name Type Required Restrictions Description
anonymous string false none Type of Card

Enumerated Values

Property Value
anonymous VIRTUAL
anonymous PHYSICAL

CardholderId

"7a79a5fc-4acf-4a01-9d7f-e1af234d097a"

Cardholder ID (UUID) to whom card belongs to

Properties

Name Type Required Restrictions Description
anonymous string false none Cardholder ID (UUID) to whom card belongs to

CardtemplateId

"string"

Card template object ID (UUID) to which issued card will inherit elements from. Inherited elements can be card controls, alerts configurations, etc.

Properties

Name Type Required Restrictions Description
anonymous string false none Card template object ID (UUID) to which issued card will inherit elements from. Inherited elements can be card controls, alerts configurations, etc.

Error

{
  "requeststatus": "INVALID",
  "errors": [
    {
      "attribute": "string",
      "message": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
requeststatus string false none none
errors [object] false none none
attribute string false none Invalid attribute name
message string false none Error message for invalid attribute name

Enumerated Values

Property Value
requeststatus INVALID

Event

"card.created"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous card.created
anonymous card.activated
anonymous card.deactivated
anonymous card.cancelled
anonymous card.enrolled
anonymous card.updated
anonymous card.funded
anonymous card.sensitivedataretrieved
anonymous transaction.authorized
anonymous transaction.settled
anonymous transaction.declined
anonymous transaction.stepuprequired
anonymous transaction.stiprequired
anonymous transaction.captured
anonymous transaction.voided
anonymous transaction.refunded

Locale

"<language_code>-<country_code>"

Locale

Properties

Name Type Required Restrictions Description
anonymous string false none Locale

MerchantId

"string"

Properties

Name Type Required Restrictions Description
anonymous string(uuid) false none none

Metadata

{
  "prop1": "string",
  "prop2": "string"
}

Metadata in JSON format, requires valid and well formed JSON. Allow API caller to provide custom data for downstream services.

Properties

None

SubscriptionId

"string"

Properties

Name Type Required Restrictions Description
anonymous string(uuid) false none none

TransactionStatus

"PENDING"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous PENDING
anonymous APPROVED
anonymous REFUNDED