NAV

API Reference v2020.10.20.1

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

Base URLs:

Token : Manage authentication for the PEX API.

Reissue token prior to expiration

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Token/Renew',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Token/Renew', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Token/Renew',
{
  method: 'POST',

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

POST /Token/Renew

Reissue an existing token. A new token will be generated based on your existing valid token. This end-point does not extend the expiration date of an existing token.

All tokens expire 6 months after creation. You can reissue the token one (1) month prior to its expiration date. Once the token is expired, it cannot be renewed and you will need to generate a new one.

If you know a token has been compromised, please delete it and generate a new one.

To get the expiration date of a token, use GET /Token.

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "Username": "",
  "Token": "",
  "AppId": "",
  "TokenExpiration": ""
}

Responses

Status Meaning Description Schema
200 OK Success RenewTokenResponse
403 Forbidden Cannot renew token None

Return all tokens for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Token/GetAuthTokens',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Token/GetAuthTokens', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Token/GetAuthTokens',
{
  method: 'GET',

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

GET /Token/GetAuthTokens

List all tokens for the business, including the expiration date/time.

Parameters

Name In Type Required Description
Authorization header string true basic {Base64Encoded appId:appSecret} / token {USERTOKEN}

Example responses

200 Response

{
  "Tokens": [
    {
      "Token": "",
      "SecondsUntilExpire": 0,
      "ExpirationTime": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK GetAllTokensResponse

Return details associated with the token or return list of tokens details for basic auth

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Token',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Token', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Token',
{
  method: 'GET',

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

GET /Token

Determine which API user a token belongs to, as well as the token expiration date.

Once the token expires, it cannot be retrieved, renewed or deleted.

The following error responses will result in PEX deleting the token (after the first error):
‘401: Password has changed’ (API user has changed the password)
‘403: User is not active’ (API user is terminated/closed)
‘403: Token expired or does not exist’.

If you receive any of the above errors, you will need to contact the API user for further instructions.

Parameters

Name In Type Required Description
Authorization header string true basic {Base64Encoded appId:appSecret} / token {USERTOKEN}

Example responses

200 Response

{
  "Tokens": [
    {
      "Username": "",
      "AppId": "",
      "Token": "",
      "TokenExpiration": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK GetTokenResponse

Generate a new access token

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'basic '
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Token',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'basic '
}

r = requests.post('https://coreapi.pexcard.com/v4/Token', headers = headers)

print(r.json())

const inputBody = '{
  "Username": "",
  "Password": ""
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'basic '
};

fetch('https://coreapi.pexcard.com/v4/Token',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /Token

Create a token.

A token is required to make all API calls. The life of a token is six (6) months.

Tokens are the equivalent of a username/password combination and must not be shared or distributed to untrusted parties.

Token authentication is only secure if SSL is used. Therefore, all requests (both to obtain and use the tokens) must use HTTPS endpoints. Please follow the best practices using SSL - peers should always be verified. To find our latest VeriSign certificate, please go to https://coreapi.pexcard.com.

If you are a partner (API user), your customer will provide a PEX administrator or cardholder username/password that you (partner) will generate the token from. You (partner) then use that token to authenticate.

If you are a customer, you received your API username/password from PEX Operations.


Before creating your first token the following pre-steps are required:
1. On developer.pexcard.com, select Dashboard in the blue menu bar.
2. In the API Keys section, click on the lock and key icons to show the values on the screen. If you have access to both Beta and Production, each will be listed separately.
3. From the returned (beta or production) values, create a Base64 encoded value for authorization. To do this you can use a simple tool like the one found here https://www.base64encode.org. The input should be in the following format: ClientID:ClientSecret. (HELPFUL TIP: If you copy the copy and paste the ClientId and ClientSecret please be sure that no extra characters or spaces are included. Correct: ClientID:ClientSecret Incorrect: ClientID: ClientSecret)
4. The returned encoded value should be used in all API calls.
Note: To see the Curl example - in the Authorization field, prepend the word basic to the Base64 encoded value, for example,
basic MmRlMWZjZgq6OTU0MzQwYmY3OGIwNjFjnJcxIIY0MWM2NWE4NWIxPPO=

Body parameter

{
  "Username": "",
  "Password": ""
}

Parameters

Name In Type Required Description
Authorization header string true basic {Base64Encoded appId:appSecret}
body body PostTokenRequest true Username and password

Example responses

201 Response

{
  "Token": ""
}

Responses

Status Meaning Description Schema
201 Created Created PostTokenResponse
401 Unauthorized

- Invalid authorization parameter (appId:appSecret as base64)
- Invalid username or password |None|

Revoke access for the authenticated user

Code samples

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'string'
}

result = RestClient.delete 'https://coreapi.pexcard.com/v4/Token',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'string'
}

r = requests.delete('https://coreapi.pexcard.com/v4/Token', headers = headers)

print(r.json())


const headers = {
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Token',
{
  method: 'DELETE',

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

DELETE /Token

To revoke API access, delete the token.

The following error responses will result in PEX deleting the token (after the first error):
‘401: Password has changed’ (Administrator has changed the password)
‘403: User is not active’ (Administrator is terminated/closed)
‘403: Token expired or does not exist’.


If the token will expire in one month or less, use POST /Token/Renew.

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}

Responses

Status Meaning Description Schema
200 OK Success None
401 Unauthorized Password has changed’ (Administrator has changed the password) None
402 Payment Required User is not active’ (Administrator is terminated/closed) None
403 Forbidden Token expired or does not exist None

Card : Create, activate, and fund cards. Setup rules for spending and scheduled funding.

Return all advanced spend rules for a specified card accountID

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Card/SpendRules/{id}/Advanced',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Card/SpendRules/{id}/Advanced', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/SpendRules/{id}/Advanced',
{
  method: 'GET',

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

GET /Card/SpendRules/{id}/Advanced

Return all advanced spend rules for a specified card accountID.

Advanced spend rules dictate where a card can be used to make purchases.

Cardholders using PEX card do not have cash access. ATMs, Money Orders, Money Remittance (e.g. MoneyGram) and other cash transactions, such as purchasing casino chips, will be declined at all times.

At card creation, the advanced spend rule defaults are:
- Daily spend limit NONE
- Weekly spend limit NONE
- Monthly spend limit NONE
- Yearly spend limit NONE
- Lifetime spend limit NONE
- International spending is OFF
- All merchant categories are ON.

CardNotPresentEnabled: This parameter is deprecated in favor of CardPresence.

CardPresence: Control how PEX Card can be used for purchases, either physically present at the point-of-sale or used virtually over the Internet or phone.
0 - Card present (in person) transaction only. If the cardholder only makes purchase in person, choose this option for better fraud protection.
1 - No restrictions. A cardholder can make purchases both in-person and online/over the internet.
2 - Card not present (online) transactions only. If the cardholder only makes purchases over the internet/online, choose this option for better fraud protection.

DaysOfWeekRestrictions: This parameter allows a card to be used only on specific days of the week. If empty, all days are valid. Days are comma delimited array values. E.g. Allow only weekends: ["Saturday", "Sunday"]

UsStateRestrictions: This parameter allows a card to be used only in certain US States. If empty, all US States are valid. States are abbriviated comma delimited array values. E.g. Allow only New York and New Jersey: ["NY","NJ"]

PEX has combined Merchant Category Codes (MCC) into larger groupings based upon merchant or service type. Below is the list of those combinations with examples of merchant types for each (this is not an exhaustive merchant listing):
- Associations & organizations: Post Office, local and federal government services, religious organizations
- Automotive dealers: Vehicle dealerships (car, RV, motorcycle, boat, recreational)
- Educational services: Schools, training programs
- Entertainment: Movies, bowling, golf, sports clubs
- Fuel & Convenience stores: Service stations (non-pump purchases), miscellaneous food stores, convenience stores and specialty markets
- Grocery stores: Food, bakeries, candy
- Healthcare & Childcare services: Medical services, hospitals, daycare
- Professional services: Heating, plumbing, HVAC, freight, storage, utilities, fuel oil, coal, dry cleaners
- Restaurants: Fast food and sit-down restaurants
- Retail stores: Clothing, office supplies, hardware, building supplies, furniture, electronics
- Travel & transportation: Airlines, rental cars, trains, tolls, hotels, parking
- Fuel Pump Only: Outdoor fuel pumps(i.e. Pay at the Pump).

Parameters

Name In Type Required Description
id path integer(int32) true Card account ID
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "AdvancedSpendRules": {
    "MerchantCategories": [
      {
        "Id": 0,
        "Name": "",
        "Description": "",
        "TransactionLimit": 0,
        "DailySpendLimit": 0,
        "WeeklySpendLimit": 0,
        "MonthlySpendLimit": 0,
        "YearlySpendLimit": 0,
        "LifetimeSpendLimit": 0
      }
    ],
    "InternationalSpendEnabled": false,
    "IsDailySpendLimitEnabled": false,
    "DailySpendLimit": 0,
    "WeeklySpendLimit": 0,
    "MonthlySpendLimit": 0,
    "YearlySpendLimit": 0,
    "LifetimeSpendLimit": 0,
    "CardNotPresentUse": false,
    "CardPresence": 0,
    "UsePexAccountBalanceForAuths": false,
    "UseCustomerAuthDecision": false,
    "DaysOfWeekRestrictions": [
      "string"
    ],
    "UsStateRestrictions": [
      "string"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK OK GetAdvancedSpendRulesResponse
403 Forbidden - Invalid card account ID
- Must be card account ID
None
500 Internal Server Error InternalServerError None

Create advanced spend rules for a specified card accountID

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Card/SpendRules/{id}/Advanced',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Card/SpendRules/{id}/Advanced', headers = headers)

print(r.json())

const inputBody = '{
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "TransactionLimit": 0,
      "DailySpendLimit": 0,
      "WeeklySpendLimit": 0,
      "MonthlySpendLimit": 0,
      "YearlySpendLimit": 0,
      "LifetimeSpendLimit": 0
    }
  ],
  "InternationalSpendEnabled": false,
  "DailySpendLimit": 0,
  "WeeklySpendLimit": 0,
  "MonthlySpendLimit": 0,
  "YearlySpendLimit": 0,
  "LifetimeSpendLimit": 0,
  "CardNotPresentUse": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false,
  "DaysOfWeekRestrictions": [
    "string"
  ],
  "UsStateRestrictions": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/SpendRules/{id}/Advanced',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Card/SpendRules/{id}/Advanced

Create advanced spend rules for a specified card accountID.

Advanced spend rules dictate where a card can be used to make purchases and can be used to set a per day spending limit. Changes to spend rules happen in real-time. Be sure the cardholder is aware of the limitations being set.

If your business allows cardholders to "Use your PEX Account balance" for transactions, you must set a value for "DailySpendLimit" for those cardholders. The "DailySpendLimit" value must be less than or equal to the PEX assigned daily spend limit for your business (typically $5,000 USD).

Cardholders using PEX do not have cash access. ATMs, Money Orders, Money Remittance (e.g. MoneyGram) and other cash transactions, such as purchasing casino chips, will be declined at all times.

CardNotPresentUse: This parameter is deprecated in favor of CardPresence.

CardPresence: Control how PEX Card can be used for purchases, either physically present at the point-of-sale or used virtually over the Internet or phone.
0 - Card present (in person) transaction only. If the cardholder only makes purchase in person, choose this option for better fraud protection.
1 - No restrictions. A cardholder can make purchases both in-person and online/over the internet.
2 - Card not present (online) transactions only. If the cardholder only makes purchases over the internet/online, choose this option for better fraud protection.

DaysOfWeekRestrictions: This parameter allows a card to be used only on specific days of the week. If empty, all days are valid. Days are comma delimited array values. E.g. Allow only weekends: ["Saturday", "Sunday"]

UsStateRestrictions: This parameter allows a card to be used only in certain US States. If empty, all US States are valid. States are abbriviated comma delimited array values. E.g. Allow only New York and New Jersey: ["NY","NJ"]

International spending is turned OFF by default. To keep fraud to a minimum, we suggest you leave ‘InternationalSpendEnabled’ = false. If a cardholder is traveling internationally, or needs to make purchases from international websites/merchants, change ‘InternationalSpendEnabled’ = true. US sanctioned countries will always be declined, see list of sanctioned countries on dashboard.pexcard.com in FAQ (found in the footer).

Padding for Restaurant: At non-fast food locations, card authorization is (typically) for total plus 20% of total (ex. bill total $56.00 + $11.20 (20%) = $67.20 authorization amount). If the cardholder spends at restaurants, please be sure to allow for the additional 20%.

Gas Purchases at Automated Fuel Dispensers (AFDs): AFDs will authorize for a minimum $50.00 and settle for the amount of gas pumped (whether the purchase is above or below $50.00). So setting a daily spend limit of $30.00 means a cardholder cannot purchase fuel at the gas pump.

PEX has combined Merchant Category Codes (MCC) into larger groupings based upon merchant or service type. Below is the list of those combinations with examples of merchant types for each (this is not an exhaustive merchant listing): - Associations & organizations: Post Office, local and federal government services, religious organizations
- Automotive dealers: Vehicle dealerships (car, RV, motorcycle, boat, recreational)
- Educational services: Schools, training programs
- Entertainment: Movies, bowling, golf, sports clubs
- Fuel & Convenience stores: Service stations (non-pump purchases), miscellaneous food stores, convenience stores and specialty markets
- Grocery stores: Food, bakeries, candy
- Healthcare & Childcare services: Medical services, hospitals, daycare
- Professional services: Heating, plumbing, HVAC, freight, storage, utilities, fuel oil, coal, dry cleaners
- Restaurants: Fast food and sit-down restaurants
- Retail stores: Clothing, office supplies, hardware, building supplies, furniture, electronics
- Travel & transportation: Airlines, rental cars, trains, tolls, hotels, parking
- Fuel Pump Only: Outdoor fuel pumps(i.e. Pay at the Pump).

Body parameter

{
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "TransactionLimit": 0,
      "DailySpendLimit": 0,
      "WeeklySpendLimit": 0,
      "MonthlySpendLimit": 0,
      "YearlySpendLimit": 0,
      "LifetimeSpendLimit": 0
    }
  ],
  "InternationalSpendEnabled": false,
  "DailySpendLimit": 0,
  "WeeklySpendLimit": 0,
  "MonthlySpendLimit": 0,
  "YearlySpendLimit": 0,
  "LifetimeSpendLimit": 0,
  "CardNotPresentUse": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false,
  "DaysOfWeekRestrictions": [
    "string"
  ],
  "UsStateRestrictions": [
    "string"
  ]
}

Parameters

Name In Type Required Description
id path integer(int32) true Card account ID
Authorization header string true token {USERTOKEN}
body body SetAdvancedSpendRulesRequest true Advanced spend rule data

Responses

Status Meaning Description Schema
200 OK OK None
400 Bad Request - Invalid card account ID
- Invalid merchant category
- Merchant categories duplicated
- Merchant spend limit exceeds overall spend limit
None
403 Forbidden - Account closed
- Invalid card account ID
- Must be card account ID
- This business does not support the Customer Authorization Decision
- This business does not support the PEX Account balance instead of card balance
None
500 Internal Server Error InternalServerError None

Create a 4-digit PIN and associate it with a card accountID

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Card/SetPin/{Id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Card/SetPin/{Id}', headers = headers)

print(r.json())

const inputBody = '{
  "Pin": ""
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/SetPin/{Id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Card/SetPin/{Id}

Create a 4-digit PIN and associate it with a card accountID.

There is no cash access and a PEX card cannot be used to obtain cash from an ATM, POS or by any other means.

You can set a PIN to allow your cardholder to shop at some stores that require PINs, e.g. Sam's Club and Costco.

The PIN is secure and cannot be viewed online or by customer service. If the cardholder forgets the PIN, a new PIN must be created.

If the cardholder uses an incorrect PIN five (5) times, the system will block the card for fraud. To remove the block, call customer service (1-866-685-1898) or create a new PIN - SetPIN will unblock the card and set the failure count to 0.

A PIN must:
- be four (4) digits
- not be all the same digit, ex. 1111
- not be digits in sequence, ex. 1234
- not match the last four (4) digits of the card number.

Body parameter

{
  "Pin": ""
}

Parameters

Name In Type Required Description
Id path integer(int32) true Card account ID
Authorization header string true token {USERTOKEN}
body body SetCardholderPinRequest true 4 digit PIN

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK Success Inline
403 Forbidden

- Invalid card account ID
- Must be card account ID |None|

Response Schema

Status Code 200

IHttpActionResult

Name Type Required Restrictions Description

Set a group for the card account

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Card/SetGroup',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Card/SetGroup', headers = headers)

print(r.json())

const inputBody = '{
  "GroupId": 0,
  "AcctId": 0
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/SetGroup',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Card/SetGroup

Insert a card accountID into a specified group.

For a definition of group see POST /Group/Group.

Body parameter

{
  "GroupId": 0,
  "AcctId": 0
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body SetCardholderGroupRequest true Group ID and Account ID

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK Success Inline
403 Forbidden

- Invalid card account ID
- Invalid group ID |None|

Response Schema

Status Code 200

HttpResponseMessage

Name Type Required Restrictions Description

Fund a specified card accountID to zero ($0)

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Card/Zero/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Card/Zero/{id}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/Zero/{id}',
{
  method: 'POST',

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

POST /Card/Zero/{id}

Fund a specified card accountID to zero ($0).

Specify a card accountID and funds from the business account will be added/removed so that the card account (available) balance = $0.00.

Parameters

Name In Type Required Description
id path integer(int32) true Card account ID
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "AccountId": 0,
  "AvailableBalance": 0,
  "LedgerBalance": 0
}

Responses

Status Meaning Description Schema
200 OK Success FundResponse
403 Forbidden

- Card Account ID does not exist
- Must be card account ID
- Insufficient funds on business
- Invalid amount |None|

Return all cards for a CardOrderId

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Card/CardOrder/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Card/CardOrder/{id}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/CardOrder/{id}',
{
  method: 'GET',

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

GET /Card/CardOrder/{id}

After using POST /Card/CreateAsync to create one or more cards, you can retrieve the card information, including the card AccountId, by using this call.

Parameters

Name In Type Required Description
id path integer(int32) true Card order ID
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "CardOrderId": 0,
  "OrderDateTime": "",
  "UserName": "",
  "BusinessAccountId": 0,
  "Cards": [
    {
      "AcctId": 0,
      "Status": "",
      "FirstName": "",
      "MiddleName": "",
      "LastName": "",
      "DateOfBirth": "",
      "HomePhone": "",
      "MobilePhone": "",
      "Email": "",
      "HomeAddress": {
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": "",
        "Country": ""
      },
      "ShippingAddress": {
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": "",
        "Country": ""
      },
      "Recipient": "",
      "ShipToShippingAddress": false,
      "ShippingContactNumber": "",
      "BundleCards": false,
      "ShippingMethod": "",
      "ShippingDate": "",
      "Errors": [
        {
          "Code": "",
          "Message": ""
        }
      ],
      "FailReason": "",
      "AccountNumber": "",
      "SpendingRulesetId": 0,
      "GroupId": 0,
      "CustomId": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success CardOrderResponse
403 Forbidden Order belongs to another business None

Get general information about card orders

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Card/CardOrder',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Card/CardOrder', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/CardOrder',
{
  method: 'GET',

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

GET /Card/CardOrder

This endpoint returns all the card order Ids those were created in the duration specified by Start date and End date.
With the CardOrderId from response you can use GET/Card/CardOrder/{Id} to get more information about the cards created within that CardOrder.
Please make sure time frame selected between StartDate and EndDate is no more than last 12 months.

CardOrderId: Order ID returned as a response to POST/Card/CreateAsync, when you submit card creation request.
OrderDateTime: Date time when the card order was placed.
UserName: Username of the user who placed the order
BusinessAdminId: Unique identifier for the business admin who placed the card order. More information about admin can be obtained by GET/Business/Admin/{Id}. It can have null value in some cases.
BusinessAccountId: Account Id to which card order belongs to.
NumberofCards: Total count of number of cards successfully created in the card order.

Parameters

Name In Type Required Description
StartDate query string(date-time) false Start date (format - YYYY-MM-DDThh:mm:ss)
EndDate query string(date-time) false End date (format - YYYY-MM-DDThh:mm:ss)
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "CardOrders": [
    {
      "CardOrderId": 0,
      "OrderDateTime": "",
      "UserName": "",
      "BusinessAdminId": 0,
      "BusinessAccountId": 0,
      "NumberOfCards": 0
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK GetCardOrderResponse

Return profile data associated with a single card accountID

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Card/Profile/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Card/Profile/{id}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/Profile/{id}',
{
  method: 'GET',

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

GET /Card/Profile/{id}

Return profile data associated with a single card accountID.

Definition of some of the returned fields and how the PEX system uses them:
- AccountId: Card account ID. 0 will be returned as the Account ID for cards that are pending.
- CardholderGroupID: Unique identifier for the group (for a definition of group see POST /Group/Group.)
- Profile address: The cardholder billing address.
- Shipping address: Used for card mailing. PEX uses this address for all future card replacements including: lost, stolen, compromised and renewal.
- SpendRulestId in the response lets user know the associated SpendingRuleset with the card account specified in the request.
- IsVirtual: If this is connected to a virtual card order then the value is: true, otherwise, false.
- CustomId: User defined Id which can be assigned to Card holder profile (alphanumeric up to 50 characters). This is optional field.

To retrieve all information stored against a card accountID, including spend and funding rules, use GET /Details/AccountDetails/{Id}.

Parameters

Name In Type Required Description
id path integer(int32) true Card account ID
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "AccountId": 0,
  "AccountStatus": "",
  "FirstName": "",
  "LastName": "",
  "CardholderGroupId": 0,
  "SpendRulesetId": 0,
  "ProfileAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "Phone": "",
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "ShippingPhone": "",
  "DateOfBirth": "",
  "Email": "",
  "IsVirtual": false,
  "CustomId": ""
}

Responses

Status Meaning Description Schema
200 OK Success GetProfileResponse
401 Unauthorized Must be card account ID None
403 Forbidden Invalid card account ID None

Update profile data for a specified card accountID.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Card/Profile/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Card/Profile/{id}', headers = headers)

print(r.json())

const inputBody = '{
  "CardholderGroupId": 0,
  "SpendRulesetId": 0,
  "Phone": "",
  "ShippingPhone": "",
  "DateOfBirth": "",
  "Email": "",
  "CustomId": "",
  "FirstName": "",
  "LastName": "",
  "NormalizeProfileAddress": false,
  "ProfileAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "NormalizeShippingAddress": false,
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/Profile/{id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Card/Profile/{id}

All fields are optional for update, however, some profile fields are required in the system and cannot be replaced by null or empty strings. The API user must have AddEditTerminateCard = true.

Required profile fields:
- First Name
- Last Name
- Profile Address Line 1
- Profile City
- Profile State
- Profile Zip
- Shipping Address Line 1
- Shipping City
- Shipping Status
- Shipping Zip
- Phone
- Email
- Date of Birth.

To find the group name associated with a ‘CardholderGroupId’, use GET /Details/AccountDetails.
CustomId: User defined Id which can be assigned to Card holder profile (alphanumeric up to 50 characters). This is optional field.

User can specify SpendRulesetId in the request to associate an account with SpendingRuleset.
If SpendRulesetId value in request is null, account will be disassociated from a SpendingRuleset.

If PEX card is used for fuel authorizations, transit passes or online purchases, there will be times where the cardholder will have to key in the billing zip code as it appears on the cardholder profile. To avoid issues at the time of purchase, let the cardholder know what their billing (i.e. profile) address is.

If the cardholder enters an invalid Zip Code 2 times, the merchant may refuse to accept additional card swipes. If this occurs, cardholders will have to see the attendant to complete a gas transaction, or use another form of payment.

If the cardholder should have access to dashboard.pexcard.com to review their transaction history, etc., they will need the four (4) digit year of birth from their profile. If you are using a generic value, you will need to convey that to the cardholder.

Body parameter

{
  "CardholderGroupId": 0,
  "SpendRulesetId": 0,
  "Phone": "",
  "ShippingPhone": "",
  "DateOfBirth": "",
  "Email": "",
  "CustomId": "",
  "FirstName": "",
  "LastName": "",
  "NormalizeProfileAddress": false,
  "ProfileAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "NormalizeShippingAddress": false,
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  }
}

Parameters

Name In Type Required Description
id path integer(int32) true Card account ID
Authorization header string true token {USERTOKEN}
body body UpdateProfileRequest true Profile data

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK Success Inline
403 Forbidden

- Invalid card account ID
- Must be card account ID
- Card group not found |None|

Response Schema

Status Code 200

HttpResponseMessage

Name Type Required Restrictions Description

Add or remove funds to/from a card accountID

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Card/Fund/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Card/Fund/{id}', headers = headers)

print(r.json())

const inputBody = '{
  "Amount": 0
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/Fund/{id}',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /Card/Fund/{id}

Add or remove funds to/from a card accountID.

Card funding is in real-time and will change the cardholder's available balance immediately.


To remove funds from the card balance, enter a negative number, for example: -10.00 will remove $10.00 from the card available balance.

Padding for Restaurant: At non-fast food locations, card authorization is (typically) for total plus 20% of total (ex. bill total $56.00 + $11.20 (20%) = $67.20 authorization amount). If the cardholder spends at restaurants, please be sure to allow for the additional 20%.

Gas Purchases at Automated Fuel Dispensers (AFDs): AFDs will authorize for a minimum $50.00 and settle for the amount of gas pumped (whether the purchase is above or below $50.00).

To retrieve the card accountID, use GET /Details/AccountDetails.

Body parameter

{
  "Amount": 0
}

Parameters

Name In Type Required Description
id path integer(int32) true Card account ID
Authorization header string true token {USERTOKEN}
body body FundRequest true Details required for funding a card

Example responses

200 Response

{
  "AccountId": 0,
  "AvailableBalance": 0,
  "LedgerBalance": 0
}

Responses

Status Meaning Description Schema
200 OK Success FundResponse
403 Forbidden

- Invalid card account ID
- Must be card account ID
- Insufficient funds on business
- Insufficient funds on card account
- Card available balance will exceed card limit
- Use Business Balance is enabled for card account - Invalid amount |None|

Create cards for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Card/CreateAsync',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Card/CreateAsync', headers = headers)

print(r.json())

const inputBody = '{
  "Cards": [
    {
      "Phone": "",
      "ShippingPhone": "",
      "ShippingMethod": "",
      "DateOfBirth": "",
      "Email": "",
      "GroupId": 0,
      "RulesetId": 0,
      "CustomId": "",
      "FirstName": "",
      "LastName": "",
      "NormalizeProfileAddress": false,
      "ProfileAddress": {
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": ""
      },
      "NormalizeShippingAddress": false,
      "ShippingAddress": {
        "ContactName": "",
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": ""
      }
    }
  ],
  "NormalizeHomeAddress": false,
  "NormalizeShippingAddress": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/CreateAsync',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /Card/CreateAsync

Create cards for the business. The response to this call is a CardOrderId.

To retrieve card details, including the card AccountId, use GET /Card/CardOrder/{Id}

Cards have an expiration date of 3 years and will renew automatically 60 days prior to expiration. If the card expiration is 01/17, the card will expire on the last day of the month, January 31, 2017.

ShippingMethod is a required field and maps to the same choices available on the admin website:
ShippingMethod = 0 i.e 'FirstClassMail' (10-15 business days) Free
ShippingMethod = 1 i.e 'Expedited' (up to 4 business days) $35
ShippingMethod = 2 i.e 'Rush' (up to 3 business days) $45.

non-ASCII characters. Ex: "ñ" not allowed
Cardholder name may only include letters, numbers and the following punctuation symbols: , . - & '
Cardholder first + last names must be no more than 23 characters
Email format: name@domain.com
Date format: MM-DD-YYYY, ex. 01-31-1970
Phone format: 2125551212 or 212-555-1212
Zip Code should be 5 digits: 10018.
Address format: letters, numbers and the following punctuation symbols: . ' () , # - /
City format: letters, numbers and the following punctuation symbols: . ' () , # - /
State format: two letter format ex. "CA"
Max AddressLine1 field length: 26 characters
Max AddressLine2 field length: 26 characters
Max City field length: 25 characters
Country: US
CustomId: User defined Id which can be assigned to Card holder profile (alphanumeric up to 50 characters). This is optional field.

Shipping address is used for card mailing. PEX uses this address for all future card replacements including: lost, stolen, compromised and renewal.
Valid Shipping address need to be populated as part of request while creating new cards.

If PEX card is used for fuel authorizations, transit passes or online purchases, there will be times where the cardholder will have to key in the billing zip code as it appears on the cardholder profile. To avoid issues at the time of purchase, let the cardholder know what their billing (i.e. profile) address is.

If the cardholder enters an invalid Zip Code 2 times, the merchant may refuse to accept additional card swipes. If this occurs, cardholders will have to see the attendant to complete a gas transaction, or use another form of payment.

If the cardholder should have access to dashboard.pexcard.com to review their transaction history, etc., they will need the four (4) digit year of birth from their profile. If you are using a generic value, you will need to convey that to the cardholder.

At card creation, the spend rule defaults are:
- Daily spend limit is NONE
- International spending is OFF
- Card-not-present spending is ON
- All merchant categories are ON.

To add a card account to a group, use GET /Group to retrieve GroupIds
To add spend rules to a card account, use GET /SpendingRuleset to retrieve all the Spend rule sets for your business.

Body parameter

{
  "Cards": [
    {
      "Phone": "",
      "ShippingPhone": "",
      "ShippingMethod": "",
      "DateOfBirth": "",
      "Email": "",
      "GroupId": 0,
      "RulesetId": 0,
      "CustomId": "",
      "FirstName": "",
      "LastName": "",
      "NormalizeProfileAddress": false,
      "ProfileAddress": {
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": ""
      },
      "NormalizeShippingAddress": false,
      "ShippingAddress": {
        "ContactName": "",
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": ""
      }
    }
  ],
  "NormalizeHomeAddress": false,
  "NormalizeShippingAddress": false
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body CreateCardAsyncRequest true Profile and shipping data

Example responses

201 Response

{
  "CardOrderId": 0
}

Responses

Status Meaning Description Schema
201 Created Created CreateCardAsyncResponse
400 Bad Request Invalid shipping method None
403 Forbidden Admin does not have permission None

Activate a card

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Card/Activate/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Card/Activate/{id}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/Activate/{id}',
{
  method: 'POST',

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

POST /Card/Activate/{id}

Activate a card using the card accountID.

A card must be activated before the cardholder can spend. For security reasons, you should not activate a card until it is received by the cardholder.

The PEX system will prevent you from activating a card within 24 hours of creation.

If the card is a replacement for an existing, damaged or expiring card, make sure the cardholder has the new card prior to activating it. Card activation immediately terminates all other cards on the account, including the one the cardholder is currently using. The card termination process is immediate and NOT reversible.

Parameters

Name In Type Required Description
id path integer(int32) true Card account ID
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK Success Inline
403 Forbidden

- Invalid card account ID
- Cannot change status |None|

Response Schema

Status Code 200

IHttpActionResult

Name Type Required Restrictions Description

Close a specified card accountId

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Card/Terminate/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Card/Terminate/{id}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/Terminate/{id}',
{
  method: 'POST',

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

POST /Card/Terminate/{id}

Close a specified card accountId.

Card/Terminate completely closes the card account. Any remaining funds on the card account are returned to the main PEX business account. This action is immediate and NOT reversible.

Parameters

Name In Type Required Description
id path integer(int32) true Card account ID
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK Success Inline
403 Forbidden

- Invalid card account ID
- Must be card account ID
- Cannot change status |None|

Response Schema

Status Code 200

IHttpActionResult

Name Type Required Restrictions Description

In real-time, change the card status for a specified card accountID.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Card/Status/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Card/Status/{id}', headers = headers)

print(r.json())

const inputBody = '{
  "Status": ""
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/Status/{id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Card/Status/{id}

In real-time, change the card status for a specified card accountID.

If you want to temporarily prevent a cardholder from using the card for purchases, you can change the card status from Active to Blocked. Changing card status occurs immediately on a PEX card and is reversible by using this call.

You can either make card status Active or Blocked using this endpoint.
To change card status from Blocked to Active pass 0 in request.
To change card status from Active to Blocked pass 2 in request.

If the card is inactive, you must activate it prior to changing the status to Blocked, use GET /Card/Activate/{Id}.

To find current status of all cards, use GET /Details/AccountDetails/{Id}.

Body parameter

{
  "Status": ""
}

Parameters

Name In Type Required Description
id path integer(int32) true Card account ID
Authorization header string true token {USERTOKEN}
body body UpdateCardStatusRequest true Status for card

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK Success Inline
403 Forbidden

- Invalid card account ID
- Cannot change status |None|

Response Schema

Status Code 200

IHttpActionResult

Name Type Required Restrictions Description

Return all spend rules for a specified card accountID

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Card/SpendRules/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Card/SpendRules/{id}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/SpendRules/{id}',
{
  method: 'GET',

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

GET /Card/SpendRules/{id}

Return all spend rules for a specified card accountID.

Spend rules dictate where a card can be used to make purchases.

Cardholders using PEX card do not have cash access. ATMs, Money Orders, Money Remittance (e.g. MoneyGram) and other cash transactions, such as purchasing casino chips, will be declined at all times.

At card creation, the spend rule defaults are:
- Daily spend limit NONE
- International spending is OFF
- All merchant categories are ON.

CardNotPresentUse: This property is deprecated in favor of CardPresence.

CardPresence: Control how PEX Card can be used for purchases, either physically present at the point-of-sale or used virtually over the Internet or phone.
0 - Card present (in person) transaction only. If the cardholder only makes purchase in person, choose this option for better fraud protection.
1 - No restrictions. A cardholder can make purchases both in-person and online/over the internet.
2 - Card not present (online) transactions only. If the cardholder only makes purchases over the internet/online, choose this option for better fraud protection.

PEX has combined Merchant Category Codes (MCC) into larger groupings based upon merchant or service type. Below is the list of those combinations with examples of merchant types for each (this is not an exhaustive merchant listing):
- Associations & organizations: Post Office, local and federal government services, religious organizations
- Automotive dealers: Vehicle dealerships (car, RV, motorcycle, boat, recreational)
- Educational services: Schools, training programs
- Entertainment: Movies, bowling, golf, sports clubs
- Fuel & Convenience stores: Service stations (non-pump purchases), miscellaneous food stores, convenience stores and specialty markets
- Grocery stores: Food, bakeries, candy
- Healthcare & Childcare services: Medical services, hospitals, daycare
- Professional services: Heating, plumbing, HVAC, freight, storage, utilities, fuel oil, coal, dry cleaners
- Restaurants: Fast food and sit-down restaurants
- Retail stores: Clothing, office supplies, hardware, building supplies, furniture, electronics
- Travel & transportation: Airlines, rental cars, trains, tolls, hotels, parking
- Fuel Pump Only: Outdoor fuel pumps(i.e. Pay at the Pump).

Parameters

Name In Type Required Description
id path integer(int32) true Card account ID
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "SpendRules": {
    "UseMerchantCategory": false,
    "MerchantCategories": {
      "AssociationsAndOrganizations": false,
      "AutomotiveDealers": false,
      "EducationalServices": false,
      "Entertainment": false,
      "FuelAndConvenienceStores": false,
      "GroceryStores": false,
      "HealthcareAndChildcareServices": false,
      "ProfessionalServices": false,
      "Restaurants": false,
      "RetailStores": false,
      "TravelAndTransportation": false,
      "FuelPumpOnly": false,
      "HardwareStores": false
    },
    "InternationalSpendEnabled": false,
    "IsDailySpendLimitEnabled": false,
    "DailySpendLimit": 0,
    "CardNotPresentUse": false,
    "CardPresence": 0,
    "UsePexAccountBalanceForAuths": false,
    "UseCustomerAuthDecision": false
  }
}

Responses

Status Meaning Description Schema
200 OK Success GetSpendRulesResponse
403 Forbidden

- Invalid card account ID
- Must be card account ID |None|

Create spend rules for a specified card accountID

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Card/SpendRules/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Card/SpendRules/{id}', headers = headers)

print(r.json())

const inputBody = '{
  "MerchantCategories": {
    "AssociationsAndOrganizations": false,
    "AutomotiveDealers": false,
    "EducationalServices": false,
    "Entertainment": false,
    "FuelAndConvenienceStores": false,
    "GroceryStores": false,
    "HealthcareAndChildcareServices": false,
    "ProfessionalServices": false,
    "Restaurants": false,
    "RetailStores": false,
    "TravelAndTransportation": false,
    "FuelPumpOnly": false,
    "HardwareStores": false
  },
  "InternationalSpendEnabled": false,
  "DailySpendLimit": 0,
  "CardNotPresentUse": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/SpendRules/{id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Card/SpendRules/{id}

Create spend rules for a specified card accountID.

Spend rules dictate where a card can be used to make purchases and can be used to set a per day spending limit. Changes to spend rules happen in real-time. Be sure the cardholder is aware of the limitations being set.

If your business allows cardholders to "Use your PEX Account balance" for transactions, you must set a value for "DailySpendLimit" for those cardholders. The "DailySpendLimit" value must be less than or equal to the PEX assigned daily spend limit for your business (typically $5,000 USD).

Cardholders using PEX do not have cash access. ATMs, Money Orders, Money Remittance (e.g. MoneyGram) and other cash transactions, such as purchasing casino chips, will be declined at all times.

CardNotPresentUse: This property is deprecated in favor of CardPresence.

CardPresence: Control how PEX Card can be used for purchases, either physically present at the point-of-sale or used virtually over the Internet or phone.
0 - Card present (in person) transaction only. If the cardholder only makes purchase in person, choose this option for better fraud protection.
1 - No restrictions. A cardholder can make purchases both in-person and online/over the internet.
2 - Card not present (online) transactions only. If the cardholder only makes purchases over the internet/online, choose this option for better fraud protection.

International spending is turned OFF by default. To keep fraud to a minimum, we suggest you leave ‘InternationalSpendEnabled’ = false. If a cardholder is traveling internationally, or needs to make purchases from international websites/merchants, change ‘InternationalSpendEnabled’ = true. US sanctioned countries will always be declined, see list of sanctioned countries on dashboard.pexcard.com in FAQ (found in the footer).

Padding for Restaurant: At non-fast food locations, card authorization is (typically) for total plus 20% of total (ex. bill total $56.00 + $11.20 (20%) = $67.20 authorization amount). If the cardholder spends at restaurants, please be sure to allow for the additional 20%.

Gas Purchases at Automated Fuel Dispensers (AFDs): AFDs will authorize for a minimum $50.00 and settle for the amount of gas pumped (whether the purchase is above or below $50.00). So setting a daily spend limit of $30.00 means a cardholder cannot purchase fuel at the gas pump.

PEX has combined Merchant Category Codes (MCC) into larger groupings based upon merchant or service type. Below is the list of those combinations with examples of merchant types for each (this is not an exhaustive merchant listing): - Associations & organizations: Post Office, local and federal government services, religious organizations
- Automotive dealers: Vehicle dealerships (car, RV, motorcycle, boat, recreational)
- Educational services: Schools, training programs
- Entertainment: Movies, bowling, golf, sports clubs
- Fuel & Convenience stores: Service stations (non-pump purchases), miscellaneous food stores, convenience stores and specialty markets
- Grocery stores: Food, bakeries, candy
- Healthcare & Childcare services: Medical services, hospitals, daycare
- Professional services: Heating, plumbing, HVAC, freight, storage, utilities, fuel oil, coal, dry cleaners
- Restaurants: Fast food and sit-down restaurants
- Retail stores: Clothing, office supplies, hardware, building supplies, furniture, electronics
- Travel & transportation: Airlines, rental cars, trains, tolls, hotels, parking
- Fuel Pump Only: Outdoor fuel pumps(i.e. Pay at the Pump).

Body parameter

{
  "MerchantCategories": {
    "AssociationsAndOrganizations": false,
    "AutomotiveDealers": false,
    "EducationalServices": false,
    "Entertainment": false,
    "FuelAndConvenienceStores": false,
    "GroceryStores": false,
    "HealthcareAndChildcareServices": false,
    "ProfessionalServices": false,
    "Restaurants": false,
    "RetailStores": false,
    "TravelAndTransportation": false,
    "FuelPumpOnly": false,
    "HardwareStores": false
  },
  "InternationalSpendEnabled": false,
  "DailySpendLimit": 0,
  "CardNotPresentUse": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false
}

Parameters

Name In Type Required Description
id path integer(int32) true Card account ID
Authorization header string true token {USERTOKEN}
body body SetSpendRulesRequest true Spend rule data

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK Success Inline
403 Forbidden

- Invalid card account ID
- Must be card account ID - Account closed |None|

Response Schema

Status Code 200

HttpResponseMessage

Name Type Required Restrictions Description

Return scheduled funding rules for a specified card accountID

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Card/ScheduledFundingRules/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Card/ScheduledFundingRules/{id}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/ScheduledFundingRules/{id}',
{
  method: 'GET',

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

GET /Card/ScheduledFundingRules/{id}

Return scheduled funding rules for a specified card accountID.

If no funding rule is set, PEX system will return a null response.

To retrieve the card accountID, use GET /Details/AccountDetails.

Parameters

Name In Type Required Description
id path integer(int32) true Card account ID
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "ScheduledFunding": {
    "Amount": 0,
    "Frequency": ""
  }
}

Responses

Status Meaning Description Schema
200 OK Success GetScheduledFundingRulesResponse
403 Forbidden

- Invalid card account ID
- Must be card account ID |None|

Create a scheduled funding rule for the specified card accountID

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Card/ScheduledFundingRules/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Card/ScheduledFundingRules/{id}', headers = headers)

print(r.json())

const inputBody = '{
  "Amount": 0,
  "Frequency": ""
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/ScheduledFundingRules/{id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Card/ScheduledFundingRules/{id}

Create a scheduled funding rule for the specified card accountID.

Example of a scheduled funding rule logic: I would like this card balance to equal $500.00 every Monday.

You may have cardholders who should have a set balance every day or once a week. For those employees, set a funding rule on the card.
The scheduled rule is time based. At midnight ET, the system checks to see if the card balance should be changed. If the balance is below the threshold, the system will add funds to equal the amount specified in the rule.

To change the existing rule, post new values in the input fields.

To retrieve the card accountID, use GET /Details/AccountDetails.

Body parameter

{
  "Amount": 0,
  "Frequency": ""
}

Parameters

Name In Type Required Description
id path integer(int32) true Card account ID
Authorization header string true token {USERTOKEN}
body body SetScheduledFundingRulesRequest true Rule parameters

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK Success Inline
403 Forbidden

- Invalid card account ID
- Must be card account ID
- Invalid amount |None|

Response Schema

Status Code 200

HttpResponseMessage

Name Type Required Restrictions Description

Delete a funding rule for the card account

Code samples

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'string'
}

result = RestClient.delete 'https://coreapi.pexcard.com/v4/Card/ScheduledFundingRules/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'string'
}

r = requests.delete('https://coreapi.pexcard.com/v4/Card/ScheduledFundingRules/{id}', headers = headers)

print(r.json())


const headers = {
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/ScheduledFundingRules/{id}',
{
  method: 'DELETE',

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

DELETE /Card/ScheduledFundingRules/{id}

Once the rule is deleted, the system will no longer add funds to the card balance.

To file the card account ID, call GET /Details/AccountDetails.

Parameters

Name In Type Required Description
id path integer(int32) true Card account ID
Authorization header string true token {USERTOKEN}

Responses

Status Meaning Description Schema
403 Forbidden

- Invalid card account ID
- Must be card account ID |None|

Set a spending ruleset for the card account

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Card/SetSpendingRuleset',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Card/SetSpendingRuleset', headers = headers)

print(r.json())

const inputBody = '{
  "RulesetId": 0,
  "AccountId": 0
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Card/SetSpendingRuleset',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Card/SetSpendingRuleset

What it does:
Assign a card account ID to an existing spending ruleset.
To remove the card from a ruleset and leave them unassigned, use a zero (0) in the SpendingRulesetId field.

Body parameter

{
  "RulesetId": 0,
  "AccountId": 0
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body SetCardholderRulesetRequest true Ruleset ID and Account ID

Example responses

200 Response

{
  "AccountId": 0
}

Responses

Status Meaning Description Schema
200 OK Success CardholderSpendRulesetResponse
403 Forbidden

- Invalid card account ID
- Invalid ruleset ID
- Account closed |None|

Details : Deep-dive into your business, card accounts, and transactions.

Ping the PEX server

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Details/Ping',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://coreapi.pexcard.com/v4/Details/Ping', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json'
};

fetch('https://coreapi.pexcard.com/v4/Details/Ping',
{
  method: 'GET',

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

GET /Details/Ping

Verify connection to the PEX system with a ping test.

Example responses

200 Response

"2019-08-24T14:15:22Z"

Responses

Status Meaning Description Schema
200 OK Success string

Return all data associated with a single card account

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Details/AccountDetails/{Id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Details/AccountDetails/{Id}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Details/AccountDetails/{Id}',
{
  method: 'GET',

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

GET /Details/AccountDetails/{Id}

Return all data associated with a single card account.

Definition of some of the returned fields and how the PEX system uses them:
- Group: An administrator defined category that can be used for sorting and reporting.
- Account Status: Either open or closed. A closed account cannot be reopened.
- Ledger balance: The total funds allocated to the card.
- Available balance: What the cardholder has access to spend. It is the ledger balance minus pending transactions.
- Profile address: The cardholder’S billing address. This address may be validated by merchants in a card not present transaction (online and phone) or at a fuel pump. It is important that your cardholders know what their billing address is.
- Shipping address: used for card mailing. PEX uses this address for all future card replacements including: lost, stolen, compromised and renewal.
- Card list: Contains all card numbers that have been issued to this account.
- Spend rules: Controls where and how much a card can be used. You can set limitations on international spending, merchant categories (MCCs) and the dollar amount spent per day. A definition of spend rules can be found under GET /Card/SpendRules/{Id}.
- Funding rules allow you to systematically add funds to a card balance.
- IsVirtual: If this is connected to a virtual card order then the value is: true, otherwise, false.
- CustomId: User defined Id which can be assigned to Card holder profile (alphanumeric up to 50 characters). This is optional field.

Parameters

Name In Type Required Description
Id path integer(int32) true Card account ID
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "AccountId": 0,
  "Group": {
    "Id": 0,
    "GroupName": ""
  },
  "AccountStatus": "",
  "LedgerBalance": 0,
  "AvailableBalance": 0,
  "ProfileAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "Phone": "",
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "ShippingPhone": "",
  "DateOfBirth": "",
  "Email": "",
  "IsVirtual": false,
  "CardList": [
    {
      "CardId": 0,
      "IssuedDate": "",
      "ExpirationDate": "",
      "Last4CardNumber": "",
      "CardStatus": ""
    }
  ],
  "SpendingRulesetId": 0,
  "SpendRules": {
    "UseMerchantCategory": false,
    "MerchantCategories": {
      "AssociationsAndOrganizations": false,
      "AutomotiveDealers": false,
      "EducationalServices": false,
      "Entertainment": false,
      "FuelAndConvenienceStores": false,
      "GroceryStores": false,
      "HealthcareAndChildcareServices": false,
      "ProfessionalServices": false,
      "Restaurants": false,
      "RetailStores": false,
      "TravelAndTransportation": false,
      "FuelPumpOnly": false,
      "HardwareStores": false
    },
    "InternationalSpendEnabled": false,
    "IsDailySpendLimitEnabled": false,
    "DailySpendLimit": 0,
    "CardNotPresentUse": false,
    "CardPresence": 0,
    "UsePexAccountBalanceForAuths": false,
    "UseCustomerAuthDecision": false
  },
  "ScheduledFunding": {
    "Amount": 0,
    "Frequency": ""
  },
  "CustomId": ""
}

Responses

Status Meaning Description Schema
200 OK Success CardholderDetailsResponse
403 Forbidden

- Invalid card account ID
- Must be card account ID |None|

Return remaining limits allowed by spend rules placed on a single card account

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Details/AccountDetails/{Id}/RemainingLimits',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Details/AccountDetails/{Id}/RemainingLimits', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Details/AccountDetails/{Id}/RemainingLimits',
{
  method: 'GET',

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

GET /Details/AccountDetails/{Id}/RemainingLimits

Return remaining limits allowed by spend rules placed on a single card account.

Definition of some of the returned fields and how the PEX system uses them:
- GlobalLimits: A collection of spending limits placed upon all categories of purchases.
- MerchantCategoryLimits: A collection of spending limits placed upon purchases which fall under a predefined merchant category.

Parameters

Name In Type Required Description
Id path integer(int32) true Card account ID
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "AccountId": 0,
  "GlobalLimits": [
    {
      "Type": "",
      "EnforcedLimit": 0,
      "RemainingSpend": 0
    }
  ],
  "MerchantCategoryLimits": [
    {
      "MerchantCategoryId": 0,
      "Category": "",
      "Type": "",
      "EnforcedLimit": 0,
      "RemainingSpend": 0
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success AccountRemainingLimitsResponse
403 Forbidden

- Invalid card account ID
- Must be card account ID |None|

Returns all network transaction for specified card account ID. Examples: Authorization, Settlement, Reversal, PIN transaction, Decline.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Details/{Id}/NetworkTransactions',
  params: {
  'StartDate' => 'string(date-time)',
'EndDate' => 'string(date-time)'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Details/{Id}/NetworkTransactions', params={
  'StartDate': '2019-08-24T14:15:22Z',  'EndDate': '2019-08-24T14:15:22Z'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Details/{Id}/NetworkTransactions?StartDate=2019-08-24T14%3A15%3A22Z&EndDate=2019-08-24T14%3A15%3A22Z',
{
  method: 'GET',

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

GET /Details/{Id}/NetworkTransactions

This call is only for network transactions. Card funding transactions are not included. In case you miss webhook call for any reason, you can use this endpoint to retrieve same information.

Please make sure time frame selected between StartDate and EndDate is no more than last 12 months.

Return a list of network transaction details, within a specified start and end date, for the given card account ID.

Definition of some of the network transaction detail fields:
- NetworkTransactionId: Unique Id for all the related network transactions (e.g. chain of authorization, settlement, etc).
- TransactionId: Unique Id for transaction.
- AcctId: Unique Id for cardholder account Id.
- TransactionTime: Eastern time. The date/time when authorization was received from the Network.
- HoldTime: Eastern time. Date/time a hold was placed on the card account balance. Null for Declines.
- SettlementTime: Eastern time. Funds have been transferred to the merchant and the transaction is final. Use this for reconciliation purposes. Null for Pendings and Declines.
- MerchantLocalTime: Local time. Date/time provided by the merchant for the transaction. This is controlled by the merchant and may not be accurate.
- AuthTransactionId: If PEX was able to match a settlement to an authorization, the matched ID will be in this field.
- TransactionAmount: Received from the merchant as the total of the transaction.
- PaddingAmount: Added to restaurant (20%) and fuel ($49.00) purchases.
- AvailableBalance: What the cardholder has access to spend. It is the ledger balance minus pending transactions.
- LedgerBalance: The total funds allocated to the card.
- TransactionType: Network (purchase or return) or Transfer (funding from business PEX Account).
- Description: More information about the transaction.
- TransactionNotes: Text notes added by the cardholder or PEX administrator for accounting purposes.
- ReferencedTranId: Unique Id which refers back to network transaction that precedes to the current one (e.g. ReferenceTranId on Settlement transaction refers to id on predecessor network transaction i.e. Authorization transaction).
- ReferencedTransactionTime: The date/time when referenced transaction was received from the Network. Eastern Standard time.
- MerchantName: The merchant name provided in the Visa transaction.
- MerchantCity: The merchant city provided in the Visa transaction.
- MerchantState: The merchant state provided in the Visa transaction.
- MerchantZip: The merchant address zip code provided in the Visa transaction.
- MerchantCountry: The merchant country provided in the Visa transaction.
- MCCCode: The 4 digit code assigned by Visa to categorize the type of merchant.
- AuthIdentityResponseCode: Authorization Identification Response code from Star data element 38 in Auth Response message.
- MerchantId: Unique Id for merchant provided in Visa transaction.
- TerminalId: Unique Id for POS terminal.
- NetworkType: Specify the type of event.
- NetworkStatus: Specify the status of the network event, Approved/Declined.
- IsCardPresent: Boolean parameter, indicates if card was actually physically swiped at POS or used other way e.g over internet or phone etc.
- Message: In case of declined transaction, Transaction Decline reason can be found here.
- MessageCode: Codes for decline reason.
- MerchantRequestedAmount: The amount which merchant requests at the POS to complete the transaction.

Details about why a transaction was declined is provided in the "Message" field.
You can find list of message codes and corresponding messages here

Parameters

Name In Type Required Description
Id path integer(int32) true Unique Id for cardholder account Id
StartDate query string(date-time) true YYYY-MM-DDThh:mm:ss
EndDate query string(date-time) true YYYY-MM-DDThh:mm:ss
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "TransactionList": [
    {
      "NetworkTransactionId": 0,
      "TransactionId": 0,
      "AcctId": 0,
      "TransactionTime": "",
      "HoldTime": "",
      "SettlementTime": "",
      "MerchantLocalTime": "",
      "AuthTransactionId": 0,
      "TransactionAmount": 0,
      "PaddingAmount": 0,
      "AvailableBalance": 0,
      "LedgerBalance": 0,
      "TransactionType": "",
      "Description": "",
      "TransactionNotes": [
        {
          "NoteId": 0,
          "UserName": "",
          "NoteText": "",
          "NoteDate": ""
        }
      ],
      "ReferencedTranId": 0,
      "ReferencedTransactionTime": "",
      "MerchantName": "",
      "MerchantCity": "",
      "MerchantState": "",
      "MerchantZip": "",
      "MerchantCountry": "",
      "MCCCode": "",
      "AuthIdentityResponseCode": "",
      "MerchantId": "",
      "TerminalId": "",
      "NetworkType": "",
      "NetworkStatus": "",
      "IsCardPresent": false,
      "Message": "",
      "MessageCode": "",
      "MerchantRequestedAmount": 0
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success NetworkTransactionDetailsResponse
403 Forbidden Invalid card account ID None

Return version of the API

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Details/Version',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://coreapi.pexcard.com/v4/Details/Version', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json'
};

fetch('https://coreapi.pexcard.com/v4/Details/Version',
{
  method: 'GET',

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

GET /Details/Version

Return version of the API.

Example responses

200 Response

"string"

Responses

Status Meaning Description Schema
200 OK Success string

Return all accounts associated with your business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Details/AccountDetails',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Details/AccountDetails', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Details/AccountDetails',
{
  method: 'GET',

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

GET /Details/AccountDetails

Return all accounts associated with your business, including registered external business checking accounts and all PEX business accounts.

Reasons you will use this call:
- One-time transfer: To retrieve or create a one-time transfer requires an ‘ExternalBankAcctId’
- Business: Use field ‘BusinessAccountBalance’ to monitor the available balance in your PEX business account for fund disbursement. You must have a minimum of $50.00 in your PEX Card business account at all times. The system will not allow you to allocate the last $50.00 to cards.
- Cards: To edit, fund, delete or create funding and spend rules, you will need the AccountID for the card. Also, this call will give you the available balance and status on all card accounts.
- Groups: To find the group name associated with each unique GroupID.
- IsVirtual: If this is connected to a virtual card order then the value is: true, otherwise, false.
- CustomId: User defined Id which can be assigned to Card holder profile (alphanumeric up to 50 characters). This is optional field.

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "BusinessAccountId": 0,
  "BusinessName": "",
  "BusinessAccountStatus": "",
  "BusinessAccountBalance": 0,
  "PendingTransferAmount": 0,
  "BankAccountList": [
    {
      "ExternalBankAcctId": 0,
      "RoutingNumber": "",
      "BankAccountNumber": "",
      "BankName": "",
      "BankAccountType": "",
      "IsActive": false
    }
  ],
  "CHAccountList": [
    {
      "AccountId": 0,
      "FirstName": "",
      "LastName": "",
      "LedgerBalance": 0,
      "AvailableBalance": 0,
      "AccountStatus": "",
      "IsVirtual": false,
      "CustomId": ""
    }
  ],
  "CardholderGroups": [
    {
      "Id": 0,
      "Name": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success BusinessDetailsResponse

Return a list of transaction details for the account

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Details/TransactionDetails/{Id}',
  params: {
  'StartDate' => 'string(date-time)',
'EndDate' => 'string(date-time)'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Details/TransactionDetails/{Id}', params={
  'StartDate': '2019-08-24T14:15:22Z',  'EndDate': '2019-08-24T14:15:22Z'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Details/TransactionDetails/{Id}?StartDate=2019-08-24T14%3A15%3A22Z&EndDate=2019-08-24T14%3A15%3A22Z',
{
  method: 'GET',

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

GET /Details/TransactionDetails/{Id}

Please make sure time frame selected between StartDate and EndDate is no more than last 12 months.

Return a list of transaction details for PEX business account ID or card account ID provided.

If a business account ID is provided, the transactions returned will be for the PEX business account. (Note: input fields ‘IsPending’ and ‘IsDecline’ should be false, as they don't apply to transactions on the business account.)

If a card account ID is provided (and you are a partner), the transactions returned will be for that card account. Fields ‘IsPending’ and ‘IsDecline’ can be set to true or false as required.

If, for the time-frame selected, over 30,000 transactions are returned then the results will be paginated. To retrieve more data, use the ‘LastTimeRetrieved’ field returned in the StartDate parameter and repeat the call until the ‘NumberOfPages’ field = 1. (Note: the last transaction for the page will be the first transaction retrieved in the next call, use the TransactionId to eliminate duplicate records.)

Definition of some of the transaction detail fields:
- TransactionTime: Eastern time. The date/time when authorization was received from the Network.
- SettlementTime: Eastern time. Funds have been transferred to the merchant and the transaction is final. Use this for reconciliation purposes. Null for Pendings and Declines.
- HoldTime: Eastern time. Date/time a hold was placed on the card account balance. Null for Declines.
- MerchantLocalTime: Local time. Date/time provided by the merchant for the transaction. This is controlled by the merchant and may not be accurate.
- AuthTransactionId: If PEX was able to match a settlement to an authorization, the matched ID will be in this field.
- TransactionAmount: Received from the merchant as the total of the transaction.
- PaddingAmount: Added to fuel purchases ($49.00).
- TransactionType: Network (purchase or return) or Transfer (funding from business PEX Account).
- TransactionNotes: Text notes added by the cardholder or PEX administrator for accounting purposes.
- IsPending: If true, the merchant has not settled the transaction. PEX is holding the funds.
- IsDecline: The authorization was not successful.
- MerchantName: The merchant name provided in the Visa transaction.
- MCCCode: The 4 digit code assigned by Visa to categorize the type of merchant.
- TransferToOrFromAccountId: If a funding transaction, this will be the PEX account ID.
- PageSize: Total page size, 30,000.
- TotalRecords: Number of transactions returned for the time period.
- NumberofPages: Indicator of how many calls must be made to return all the records for the time period.
- LastTimeRetrieved: The date/time of the last record returned.
- TransactionTags: Transaction tags.
- SourceCurrencyCodeDescription : Currency code description of the amount spent, in local currency. E.g. if a PEX card is used to make a purchase in Canada this field will have the value = Canadian Dollar. For an exhaustive list of ISO standard currency, please refer to https://www.iso.org/iso-4217-currency-codes.html
- SourceCurrencyNumericCode : Currency numeric code of the amount spent, in local currency. E.g. if a PEX card is used to make a purchase in Canada this field will have the value = 124. For an exhaustive list of ISO standard currency numeric code, please refer to https://www.iso.org/iso-4217-currency-codes.html
- SourceAmount : Amount spent in local currency where transaction took place.
- TransactionTypeCategory : This gives more information about TransactionType. For TransactionType = Transfer there could be multiple TransactionTypeCatagory such as Business account fee or Card account fee etc.
- MetadataApprovalStatus : Specifies the status of the metadata (Tags, receipt image file) associated with transaction. Possible values Approved, Rejected, Ignored, Not Reviewed.

Details about why a transaction was declined is provided in the "Description" field. Potential values for the message include:
- Transaction exceeded current card balance
- Transaction exceeded daily spend limit
- International transactions not allowed
- Expired card
- Address does not match
- Unauthorized merchant
- Card not present
- Unauthorized geographic location
- Unauthorized merchant category: <category>
- Insufficient balance in PEX Account
- Remote service decline
- Do not honor

Parameters

Name In Type Required Description
Id path integer(int32) true Card account ID or Business account ID
IncludePendings query boolean false 1 to include pending transactions and 0 to exclude
IncludeDeclines query boolean false 1 to include decline transactions and 0 to exclude
StartDate query string(date-time) true YYYY-MM-DDThh:mm:ss
EndDate query string(date-time) true YYYY-MM-DDThh:mm:ss
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "TransactionList": [
    {
      "TransactionId": 0,
      "AcctId": 0,
      "TransactionTime": "",
      "MerchantLocalTime": "",
      "HoldTime": "",
      "SettlementTime": "",
      "AuthTransactionId": 0,
      "TransactionAmount": 0,
      "PaddingAmount": 0,
      "TransactionType": "",
      "Description": "",
      "TransactionNotes": [
        {
          "NoteId": 0,
          "UserName": "",
          "NoteText": "",
          "NoteDate": ""
        }
      ],
      "IsPending": false,
      "IsDecline": false,
      "MerchantName": "",
      "MerchantCity": "",
      "MerchantState": "",
      "MerchantZip": "",
      "MerchantCountry": "",
      "MCCCode": "",
      "TransferToOrFromAccountId": 0,
      "AuthIdentityResponseCode": "",
      "MerchantId": "",
      "TerminalId": "",
      "NetworkTransactionId": 0,
      "SourceCurrencyCodeDescription": "",
      "SourceCurrencyNumericCode": "",
      "SourceAmount": 0,
      "TransactionTags": {
        "Tags": [
          {
            "FieldId": "",
            "Value": {},
            "Name": ""
          }
        ],
        "State": "",
        "FieldsVersion": ""
      },
      "MetadataApprovalStatus": "",
      "TransactionTypeCategory": ""
    }
  ],
  "Pages": {
    "PageSize": 0,
    "TotalRecords": 0,
    "NumberOfPages": 0,
    "LastTimeRetrieved": ""
  }
}

Responses

Status Meaning Description Schema
200 OK Success TransactionDetailsResponse
403 Forbidden Invalid card account ID None

Return a list of transaction details for the authenticated user

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Details/TransactionDetails',
  params: {
  'StartDate' => 'string(date-time)',
'EndDate' => 'string(date-time)'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Details/TransactionDetails', params={
  'StartDate': '2019-08-24T14:15:22Z',  'EndDate': '2019-08-24T14:15:22Z'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Details/TransactionDetails?StartDate=2019-08-24T14%3A15%3A22Z&EndDate=2019-08-24T14%3A15%3A22Z',
{
  method: 'GET',

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

GET /Details/TransactionDetails

Please make sure time frame selected between StartDate and EndDate is no more than last 12 months.

Return a list of transaction details, within a specified start and end date, for the authenticated user.

If the token user is a PEX administrator, the transactions returned will be for the PEX business account. (Note: input fields ‘IsPending’ and ‘IsDecline’ should be false, as they don't apply to transactions on the business account.)

If the token user is a cardholder (and you are a partner), the transactions returned will be for that card account. Fields ‘IsPending’ and ‘IsDecline’ can be set to true or false as required.

If, for the time-frame selected, over 30,000 transactions are returned then the results will be paginated. To retrieve more data, use the ‘LastTimeRetrieved’ field returned in the StartDate parameter and repeat the call until the ‘NumberOfPages’ field = 1. (Note: the last transaction for the page will be the first transaction retrieved in the next call, use the TransactionId to eliminate duplicate records.)

Definition of some of the transaction detail fields:
- TransactionTime: Eastern time. The date/time when authorization was received from the Network.
- SettlementTime: Eastern time. Funds have been transferred to the merchant and the transaction is final. Use this for reconciliation purposes. Null for Pendings and Declines.
- HoldTime: Eastern time. Date/time a hold was placed on the card account balance. Null for Declines.
- MerchantLocalTime: Local time. Date/time provided by the merchant for the transaction. This is controlled by the merchant and may not be accurate.
- AuthTransactionId: If PEX was able to match a settlement to an authorization, the matched ID will be in this field.
- TransactionAmount: Received from the merchant as the total of the transaction.
- PaddingAmount: Added to restaurant (20%) and fuel ($49.00) purchases.
- TransactionType: Network (purchase or return) or Transfer (funding from business PEX Account).
- TransactionNotes: Text notes added by the cardholder or PEX administrator for accounting purposes.
- IsPending: If true, the merchant has not settled the transaction. PEX is holding the funds.
- IsDecline: The authorization was not successful.
- MerchantName: The merchant name provided in the Visa transaction.
- MCCCode: The 4 digit code assigned by Visa to categorize the type of merchant.
- TransferToOrFromAccountId: If a funding transaction, this will be the PEX account ID.
- PageSize: Total page size, 30,000.
- TotalRecords: Number of transactions returned for the time period.
- NumberofPages: Indicator of how many calls must be made to return all the records for the time period.
- LastTimeRetrieved: The date/time of the last record returned.
- TransactionTags: Transaction tags.
- SourceCurrencyCodeDescription : Currency code description of the amount spent, in local currency. E.g. if a PEX card is used to make a purchase in Canada this field will have the value = Canadian Dollar. For an exhaustive list of ISO standard currency, please refer to https://www.iso.org/iso-4217-currency-codes.html
- SourceCurrencyNumericCode : Currency numeric code of the amount spent, in local currency. E.g. if a PEX card is used to make a purchase in Canada this field will have the value = 124. For an exhaustive list of ISO standard currency numeric code, please refer to https://www.iso.org/iso-4217-currency-codes.html
- SourceAmount : Amount spent in local currency where transaction took place.
- TransactionTypeCategory : This gives more information about TransactionType. For TransactionType = Transfer there could be multiple TransactionTypeCatagory such as Business account fee or Card account fee etc.
- MetadataApprovalStatus : Specifies the status of the metadata (Tags, receipt image file) associated with transaction. Possible values Approved, Rejected, Ignored, Not Reviewed.

Details about why a transaction was declined is provided in the "Description" field. Potential values for the message include:
- Transaction exceeded current card balance
- Transaction exceeded daily spend limit
- International transactions not allowed
- Expired card
- Address does not match
- Unauthorized merchant
- Card not present
- Unauthorized geographic location
- Unauthorized merchant category: <category>
- Insufficient balance in PEX Account
- Remote service decline
- Do not honor

Parameters

Name In Type Required Description
IncludePendings query boolean false 1 to include pending transactions and 0 to exclude
IncludeDeclines query boolean false 1 to include decline transactions and 0 to exclude
StartDate query string(date-time) true YYYY-MM-DDThh:mm:ss
EndDate query string(date-time) true YYYY-MM-DDThh:mm:ss
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "TransactionList": [
    {
      "TransactionId": 0,
      "AcctId": 0,
      "TransactionTime": "",
      "MerchantLocalTime": "",
      "HoldTime": "",
      "SettlementTime": "",
      "AuthTransactionId": 0,
      "TransactionAmount": 0,
      "PaddingAmount": 0,
      "TransactionType": "",
      "Description": "",
      "TransactionNotes": [
        {
          "NoteId": 0,
          "UserName": "",
          "NoteText": "",
          "NoteDate": ""
        }
      ],
      "IsPending": false,
      "IsDecline": false,
      "MerchantName": "",
      "MerchantCity": "",
      "MerchantState": "",
      "MerchantZip": "",
      "MerchantCountry": "",
      "MCCCode": "",
      "TransferToOrFromAccountId": 0,
      "AuthIdentityResponseCode": "",
      "MerchantId": "",
      "TerminalId": "",
      "NetworkTransactionId": 0,
      "SourceCurrencyCodeDescription": "",
      "SourceCurrencyNumericCode": "",
      "SourceAmount": 0,
      "TransactionTags": {
        "Tags": [
          {
            "FieldId": "",
            "Value": {},
            "Name": ""
          }
        ],
        "State": "",
        "FieldsVersion": ""
      },
      "MetadataApprovalStatus": "",
      "TransactionTypeCategory": ""
    }
  ],
  "Pages": {
    "PageSize": 0,
    "TotalRecords": 0,
    "NumberOfPages": 0,
    "LastTimeRetrieved": ""
  }
}

Responses

Status Meaning Description Schema
200 OK OK TransactionDetailsResponse

Returns all network transaction. Examples: Authorization, Settlement, Reversal, PIN transaction, Decline.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Details/NetworkTransactions',
  params: {
  'StartDate' => 'string(date-time)',
'EndDate' => 'string(date-time)'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Details/NetworkTransactions', params={
  'StartDate': '2019-08-24T14:15:22Z',  'EndDate': '2019-08-24T14:15:22Z'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Details/NetworkTransactions?StartDate=2019-08-24T14%3A15%3A22Z&EndDate=2019-08-24T14%3A15%3A22Z',
{
  method: 'GET',

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

GET /Details/NetworkTransactions

This call is only for network transactions. Card funding transactions are not included. In case you miss webhook call for any reason, you can use this endpoint to retrieve same information.

Please make sure time frame selected between StartDate and EndDate is no more than last 12 months.

Return a list of transaction details, within a specified start and end date, for the authenticated user.

Definition of some of the network transaction detail fields:
- NetworkTransactionId: Unique Id for all the related network transactions (e.g. chain of authorization, settlement, etc).
- TransactionId: Unique Id for transaction.
- AcctId: Unique Id for cardholder account Id.
- TransactionTime: Eastern time. The date/time when authorization was received from the Network.
- HoldTime: Eastern time. Date/time a hold was placed on the card account balance. Null for Declines.
- SettlementTime: Eastern time. Funds have been transferred to the merchant and the transaction is final. Use this for reconciliation purposes. Null for Pendings and Declines.
- MerchantLocalTime: Local time. Date/time provided by the merchant for the transaction. This is controlled by the merchant and may not be accurate.
- AuthTransactionId: If PEX was able to match a settlement to an authorization, the matched ID will be in this field.
- TransactionAmount: Received from the merchant as the total of the transaction.
- PaddingAmount: Added to restaurant (20%) and fuel ($49.00) purchases.
- AvailableBalance: What the cardholder has access to spend. It is the ledger balance minus pending transactions.
- LedgerBalance: The total funds allocated to the card.
- TransactionType: Network (purchase or return) or Transfer (funding from business PEX Account).
- Description: More information about the transaction.
- TransactionNotes: Text notes added by the cardholder or PEX administrator for accounting purposes.
- ReferencedTranId: Unique Id which refers back to network transaction that precedes to the current one (e.g. ReferenceTranId on Settlement transaction refers to id on predecessor network transaction i.e. Authorization transaction).
- ReferencedTransactionTime: The date/time when referenced transaction was received from the Network. Eastern Standard time.
- MerchantName: The merchant name provided in the Visa transaction.
- MerchantCity: The merchant city provided in the Visa transaction.
- MerchantState: The merchant state provided in the Visa transaction.
- MerchantZip: The merchant address zip code provided in the Visa transaction.
- MerchantCountry: The merchant country provided in the Visa transaction.
- MCCCode: The 4 digit code assigned by Visa to categorize the type of merchant.
- AuthIdentityResponseCode: Authorization Identification Response code from Star data element 38 in Auth Response message.
- MerchantId: Unique Id for merchant provided in Visa transaction.
- TerminalId: Unique Id for POS terminal.
- NetworkType: Specify the type of event.
- NetworkStatus: Specify the status of the network event, Approved/Declined.
- IsCardPresent: Boolean parameter, indicates if card was actually physically swiped at POS or used other way e.g over internet or phone etc.
- Message: In case of declined transaction, Transaction Decline reason can be found here.
- MessageCode: Codes for decline reason.
- MerchantRequestedAmount: The amount which merchant requests at the POS to complete the transaction.

Details about why a transaction was declined is provided in the "Message" field.
You can find list of message codes and corresponding messages here

Parameters

Name In Type Required Description
StartDate query string(date-time) true YYYY-MM-DDThh:mm:ss
EndDate query string(date-time) true YYYY-MM-DDThh:mm:ss
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "TransactionList": [
    {
      "NetworkTransactionId": 0,
      "TransactionId": 0,
      "AcctId": 0,
      "TransactionTime": "",
      "HoldTime": "",
      "SettlementTime": "",
      "MerchantLocalTime": "",
      "AuthTransactionId": 0,
      "TransactionAmount": 0,
      "PaddingAmount": 0,
      "AvailableBalance": 0,
      "LedgerBalance": 0,
      "TransactionType": "",
      "Description": "",
      "TransactionNotes": [
        {
          "NoteId": 0,
          "UserName": "",
          "NoteText": "",
          "NoteDate": ""
        }
      ],
      "ReferencedTranId": 0,
      "ReferencedTransactionTime": "",
      "MerchantName": "",
      "MerchantCity": "",
      "MerchantState": "",
      "MerchantZip": "",
      "MerchantCountry": "",
      "MCCCode": "",
      "AuthIdentityResponseCode": "",
      "MerchantId": "",
      "TerminalId": "",
      "NetworkType": "",
      "NetworkStatus": "",
      "IsCardPresent": false,
      "Message": "",
      "MessageCode": "",
      "MerchantRequestedAmount": 0
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK NetworkTransactionDetailsResponse

Return a list of all card transactions for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Details/AllCardholderTransactions',
  params: {
  'StartDate' => 'string(date-time)',
'EndDate' => 'string(date-time)'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Details/AllCardholderTransactions', params={
  'StartDate': '2019-08-24T14:15:22Z',  'EndDate': '2019-08-24T14:15:22Z'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Details/AllCardholderTransactions?StartDate=2019-08-24T14%3A15%3A22Z&EndDate=2019-08-24T14%3A15%3A22Z',
{
  method: 'GET',

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

GET /Details/AllCardholderTransactions

Please make sure time frame selected between StartDate and EndDate is no more than last 12 months.

Return a list of transaction details, within a specified start and end date, for all card accounts associated with the business of the authenticated user. Fields ‘IsPending’ and ‘IsDecline’ can be set to true or false as required.

If, for the time-frame selected, over 30,000 transactions are returned then the results will be paginated. To retrieve more data, use the ‘LastTimeRetrieved’ field returned in the StartDate parameter and repeat the call until the ‘NumberOfPages’ field = 1. (Note: the last transaction for the page will be the first transaction retrieved in the next call, use the TransactionId to eliminate duplicate records.)

Definition of some of the transaction detail fields:
- TransactionTime: Eastern time. The date/time when authorization was received from the Network.
- SettlementTime: Eastern time. Funds have been transferred to the merchant and the transaction is final. Use this for reconciliation purposes. Null for Pendings and Declines.
- HoldTime: Eastern time. Date/time a hold was placed on the card account balance. Null for Declines.
- MerchantLocalTime: Local time. Date/time provided by the merchant for the transaction. This is controlled by the merchant and may not be accurate.
- AuthTransactionId: If PEX was able to match a settlement to an authorization, the matched ID will be in this field.
- TransactionAmount: Received from the merchant as the total of the transaction.
- PaddingAmount: Added to fuel purchases ($49.00).
- TransactionType: Network (purchase or return) or Transfer (funding from business PEX Account).
- TransactionNotes: Text notes added by the cardholder or PEX administrator for accounting purposes.
- IsPending: If true, the merchant has not settled the transaction. PEX is holding the funds.
- IsDecline: The authorization was not successful.
- MerchantName: The merchant name provided in the Visa transaction.
- MCCCode: The 4 digit code assigned by Visa to categorize the type of merchant.
- TransferToOrFromAccountId: If a funding transaction, this will be the PEX account ID.
- PageSize: Total page size, 30,000.
- TotalRecords: Number of transactions returned for the time period.
- NumberofPages: Indicator of how many calls must be made to return all the records for the time period.
- LastTimeRetrieved: The date/time of the last record returned.
- TransactionTags: Transaction tags.
- SourceCurrencyCodeDescription : Currency code description of the amount spent, in local currency. E.g. if a PEX card is used to make a purchase in Canada this field will have the value = Canadian Dollar. For an exhaustive list of ISO standard currency, please refer to https://www.iso.org/iso-4217-currency-codes.html
- SourceCurrencyNumericCode : Currency numeric code of the amount spent, in local currency. E.g. if a PEX card is used to make a purchase in Canada this field will have the value = 124. For an exhaustive list of ISO standard currency numeric code, please refer to https://www.iso.org/iso-4217-currency-codes.html
- SourceAmount : Amount spent in local currency where transaction took place.
- TransactionTypeCategory : This gives more information about TransactionType. For TransactionType = Transfer there could be multiple TransactionTypeCatagory such as Business account fee or Card account fee etc.
- MetadataApprovalStatus : Specifies the status of the metadata (Tags, receipt image file) associated with transaction. Possible values Approved, Rejected, Ignored, Not Reviewed.

Details about why a transaction was declined is provided in the "Description" field. Potential values for the message include:
- Transaction exceeded current card balance
- Transaction exceeded daily spend limit
- International transactions not allowed
- Expired card
- Address does not match
- Unauthorized merchant
- Card not present
- Unauthorized geographic location
- Unauthorized merchant category: <category>
- Insufficient balance in PEX Account
- Remote service decline
- Do not honor

Parameters

Name In Type Required Description
IncludePendings query boolean false 1 to include pending transactions and 0 to exclude
IncludeDeclines query boolean false 1 to include decline transactions and 0 to exclude
StartDate query string(date-time) true YYYY-MM-DDThh:mm:ss
EndDate query string(date-time) true YYYY-MM-DDThh:mm:ss
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "TransactionList": [
    {
      "TransactionId": 0,
      "AcctId": 0,
      "TransactionTime": "",
      "MerchantLocalTime": "",
      "HoldTime": "",
      "SettlementTime": "",
      "AuthTransactionId": 0,
      "TransactionAmount": 0,
      "PaddingAmount": 0,
      "TransactionType": "",
      "Description": "",
      "TransactionNotes": [
        {
          "NoteId": 0,
          "UserName": "",
          "NoteText": "",
          "NoteDate": ""
        }
      ],
      "IsPending": false,
      "IsDecline": false,
      "MerchantName": "",
      "MerchantCity": "",
      "MerchantState": "",
      "MerchantZip": "",
      "MerchantCountry": "",
      "MCCCode": "",
      "TransferToOrFromAccountId": 0,
      "AuthIdentityResponseCode": "",
      "MerchantId": "",
      "TerminalId": "",
      "NetworkTransactionId": 0,
      "SourceCurrencyCodeDescription": "",
      "SourceCurrencyNumericCode": "",
      "SourceAmount": 0,
      "TransactionTags": {
        "Tags": [
          {
            "FieldId": "",
            "Value": {},
            "Name": ""
          }
        ],
        "State": "",
        "FieldsVersion": ""
      },
      "MetadataApprovalStatus": "",
      "TransactionTypeCategory": ""
    }
  ],
  "Pages": {
    "PageSize": 0,
    "TotalRecords": 0,
    "NumberOfPages": 0,
    "LastTimeRetrieved": ""
  }
}

Responses

Status Meaning Description Schema
200 OK OK TransactionDetailsResponse

Return a count of transactions for the authenticated user

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Details/AllCardholderTransactionCount',
  params: {
  'StartDate' => 'string(date-time)',
'EndDate' => 'string(date-time)'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Details/AllCardholderTransactionCount', params={
  'StartDate': '2019-08-24T14:15:22Z',  'EndDate': '2019-08-24T14:15:22Z'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Details/AllCardholderTransactionCount?StartDate=2019-08-24T14%3A15%3A22Z&EndDate=2019-08-24T14%3A15%3A22Z',
{
  method: 'GET',

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

GET /Details/AllCardholderTransactionCount

Please make sure time frame selected between StartDate and EndDate is no more than last 12 months.

Return a count of transactions, within a specified start and end date, for all card accounts associated with the business of the authenticated user. Fields ‘IsPending’ and ‘IsDecline’ can be set to true or false as required.

Parameters

Name In Type Required Description
IncludePendings query boolean false 1 to include pending transactions and 0 to exclude
IncludeDeclines query boolean false 1 to include decline transactions and 0 to exclude
StartDate query string(date-time) true YYYY-MM-DDThh:mm:ss
EndDate query string(date-time) true YYYY-MM-DDThh:mm:ss
Authorization header string true token {USERTOKEN}

Example responses

200 Response

0

Responses

Status Meaning Description Schema
200 OK Success integer

Transactions : Attach receipts and tags to transactions.

Retrieve the attachment for a transaction.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Transactions/{id}/Attachments',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Transactions/{id}/Attachments', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Transactions/{id}/Attachments',
{
  method: 'GET',

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

GET /Transactions/{id}/Attachments

Read the attachments for a particular transaction: - Attachment Id - unique identifier of the attachment. - Type - specifies the type of attachment Image/PDF. - Size - size of the attachment. - Link - provides a link to /AttachmentId resource which contains the encoded image details. - UploadStatus - the system assigned status of the attachment valid values are: Not Loaded, Loaded, Deleted, HasMalware, LoadFailed. - Approval Status - approval status is on the transaction level and not only for attachment. If the transaction is approved, all related data i.e Attachments, Tags etc are approved.

Parameters

Name In Type Required Description
id path integer(int64) true Transaction Id
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "Attachments": [
    {
      "AttachmentId": "",
      "Type": "",
      "Size": 0,
      "Link": {
        "related": ""
      },
      "UploadStatus": "",
      "CreatedDateUtc": "",
      "CreatedBy": {
        "AdminId": 0,
        "UserId": 0
      },
      "UpdatedDateUtc": "",
      "UpdatedBy": {
        "AdminId": 0,
        "UserId": 0
      }
    }
  ],
  "ApprovalStatus": ""
}

Responses

Status Meaning Description Schema
200 OK OK GetAttachments
404 Not Found NotFound None

Delete attachment, attached to a transaction.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.delete 'https://coreapi.pexcard.com/v4/Transactions/{id}/Attachments',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.delete('https://coreapi.pexcard.com/v4/Transactions/{id}/Attachments', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Transactions/{id}/Attachments',
{
  method: 'DELETE',

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

DELETE /Transactions/{id}/Attachments

This endpoint can be used to delete the attachment attached to a transaction. All the attachments attached to the transaction will be deleted. - Attachment Id - unique identifier of the attachment. - Type - specifies the type of attachment Image/PDF. - Size - size of the attachment. - UploadStatus - the system assigned status of the attachment valid values are: Not Loaded, Loaded, Deleted, HasMalware, LoadFailed.

Parameters

Name In Type Required Description
id path integer(int64) true Transaction Id
Authorization header string true token {USERTOKEN}

Example responses

200 Response

[
  {
    "AttachmentId": "",
    "Type": "",
    "Size": 0,
    "UploadStatus": "",
    "CreatedDateUtc": "",
    "CreatedBy": {
      "AdminId": 0,
      "UserId": 0
    },
    "UpdatedDateUtc": "",
    "UpdatedBy": {
      "AdminId": 0,
      "UserId": 0
    },
    "DeletedDateUtc": "",
    "DeletedBy": {
      "AdminId": 0,
      "UserId": 0
    }
  }
]

Responses

Status Meaning Description Schema
200 OK OK Inline
403 Forbidden Forbidden None
404 Not Found NotFound None

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [DeleteAttachment] false none [Attachment]
» DeleteAttachment DeleteAttachment false none Attachment
»» AttachmentId string false none Unique identifier of the attachment.
»» Type string false none Specifies the type of attachment Image/PDF
»» Size integer(int64) false none Size of the attachment.
»» UploadStatus string false none the system assigned status of the attachment valid values are: Not Loaded, Loaded, Deleted, HasMalware, LoadFailed.
»» CreatedDateUtc string(date-time) false none Created date in UTC
»» CreatedBy MetadataUser false none Metadata user
»»» AdminId integer(int32) false none Admin Id of the user who created, updated, or deleted the tag definition
»»» UserId integer(int32) false none User Id of the user who created, updated, or deleted the tag definition
»» UpdatedDateUtc string(date-time) false none Updated date in UTC
»» UpdatedBy MetadataUser false none Metadata user
»» DeletedDateUtc string(date-time) false none Deleted date in UTC
»» DeletedBy MetadataUser false none Metadata user

Enumerated Values

Property Value
Type Image
Type Pdf
UploadStatus NotLoaded
UploadStatus Loaded
UploadStatus Deleted
UploadStatus HasMalware
UploadStatus LoadFailed

An attachment can be read by providing specific attachment id along with the transaction Id.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Transactions/{id}/Attachment/{attachmentId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Transactions/{id}/Attachment/{attachmentId}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Transactions/{id}/Attachment/{attachmentId}',
{
  method: 'GET',

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

GET /Transactions/{id}/Attachment/{attachmentId}

- Attachment Id - unique identifier of the attachment. - Type - specifies the type of attachment Image/PDF. - Size - size of the attachment. - Content - base 64 encoded data of the attachment. - UploadStatus - the system assigned status of the attachment valid values are: Not Loaded, Loaded, Deleted, HasMalware, LoadFailed.

Parameters

Name In Type Required Description
id path integer(int64) true Transaction Id
AttachmentId path string true Attachment Id
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "AttachmentId": "",
  "Type": "",
  "Size": 0,
  "Content": "",
  "UploadStatus": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "ApprovalStatus": ""
}

Responses

Status Meaning Description Schema
200 OK OK Attachment
404 Not Found NotFound None

Update an existing attachment of a transaction.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Transactions/{id}/Attachment/{attachmentId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Transactions/{id}/Attachment/{attachmentId}', headers = headers)

print(r.json())

const inputBody = '{
  "Content": "",
  "Type": ""
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Transactions/{id}/Attachment/{attachmentId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Transactions/{id}/Attachment/{attachmentId}

Use this endpoint to Update the already attached attachment to a transaction. Attachment can be specified in the form of base 64 encoded data to be attached to the specified PEX transaction. https://www.base64encode.org/ can be used for encoding the image files. This encoded image format can be used in the request property 'Content'. All the attachments will be scanned for malware threats. - Attachment Id - unique identifier of the attachment. - Type - specifies the type of attachment Image/PDF. - Size - size of the attachment. - Link - provides a link to /AttachmentId resource which contains the encoded image details. - UploadStatus - the system assigned status of the attachment valid values are: Not Loaded, Loaded, Deleted, HasMalware, LoadFailed. - Approval Status - approval status is on the transaction level and not only for attachment. If the transaction is approved, all related data i.e Attachments, Tags etc are approved.

Body parameter

{
  "Content": "",
  "Type": ""
}

Parameters

Name In Type Required Description
id path integer(int64) true Transaction Id
attachmentId path string true Attachment Id
Authorization header string true token {USERTOKEN}
body body CreateOrUpdateAttachmentRequest true Attachment request

Example responses

200 Response

{
  "AttachmentId": "",
  "Type": "",
  "Size": 0,
  "Link": {
    "self": ""
  },
  "UploadStatus": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK AttachmentWithSelfLink
400 Bad Request BadRequest None
403 Forbidden Forbidden None
404 Not Found NotFound None

Delete a specific attachment, attached to a transaction.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.delete 'https://coreapi.pexcard.com/v4/Transactions/{id}/Attachment/{attachmentId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.delete('https://coreapi.pexcard.com/v4/Transactions/{id}/Attachment/{attachmentId}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Transactions/{id}/Attachment/{attachmentId}',
{
  method: 'DELETE',

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

DELETE /Transactions/{id}/Attachment/{attachmentId}

You can delete a specific attachment by specifying transaction id and attachment Id.

Parameters

Name In Type Required Description
id path integer(int64) true Transaction Id
attachmentId path string true Attachment Id
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "AttachmentId": "",
  "Type": "",
  "Size": 0,
  "UploadStatus": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK DeleteAttachment
403 Forbidden Forbidden None
404 Not Found NotFound None

Attach an attachment to a transaction

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Transactions/{id}/Attachment',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Transactions/{id}/Attachment', headers = headers)

print(r.json())

const inputBody = '{
  "Content": "",
  "Type": ""
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Transactions/{id}/Attachment',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /Transactions/{id}/Attachment

Attachments can be specified in the form of base 64 encoded data to be attached to the specified PEX transaction. https://www.base64encode.org/ can be used for encoding the image files. This encoded image format can be used in the request property 'Content'. All the attachments will be scanned for malware threats. - Attachment Id - unique identifier of the attachment. - Type - specifies the type of attachment Image/PDF. - Size - size of the attachment. - Link - provides a link to /AttachmentId resource which contains the encoded image details. - UploadStatus - the system assigned status of the attachment valid values are: Not Loaded, Loaded, Deleted, HasMalware, LoadFailed. - Approval Status: - approval status is on the transaction level and not only for attachment. If the transaction is approved, all related data i.e Attachments, Tags etc are approved.

Body parameter

{
  "Content": "",
  "Type": ""
}

Parameters

Name In Type Required Description
id path integer(int64) true Transaction Id
Authorization header string true token {USERTOKEN}
body body CreateOrUpdateAttachmentRequest true Attachment request

Example responses

200 Response

{
  "AttachmentId": "",
  "Type": "",
  "Size": 0,
  "Link": {
    "self": ""
  },
  "UploadStatus": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK AttachmentWithSelfLink
400 Bad Request BadRequest None
404 Not Found NotFound None

Return tag values for a transaction.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags',
{
  method: 'GET',

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

GET /Transactions/{Id}/Tags

Return tag values and associated tag definitions for a transaction. Use to also return allocation tag values. - Id - Unique identifier for tag values for a transaction. - ConcurrencyKey - Most recent value, used to prevent conflicts when multiple users update tag values at the same time. - State - Transaction review state. Possible values are: NotReviewed (default), Approved, Reject, Ignore. - Values - List of tag values.

Parameters

Name In Type Required Description
Id path integer(int64) true Transaction Id
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "Id": "",
  "ConcurrencyKey": "",
  "State": "",
  "Values": {},
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK Tags
404 Not Found NotFound None

Update tag values for a transaction.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags', headers = headers)

print(r.json())

const inputBody = '{
  "ConcurrencyKey": "",
  "Values": [
    {
      "TagId": "",
      "Value": {}
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Transactions/{Id}/Tags

Use this endpoint to update existing tag values associated with a transaction.

To view a list of tag definitions configured for your business, use GET /Business/Configuration/Tags.

To change a tag definition, use PUT /Business/Configuration/Tag/{tag-type}.

Tag values are passed as arrays of TagId and Value property pairs. { "ConcurrencyKey": "string", "Values": [{ "TagId" : string, "Value" : object }] } #### Value Object Examples #### Text Value "Values": [{ "TagId" : "5dbaed52f7c5d7997ce43e0b", "Value" : "Some new text" }] Dropdown Value "Values": [{ "TagId" : "5dbaed52f7c5d7997ce43e0b", "Value" : "Engineering" }] Decimal Value "Values": [{ "TagId" : "5dbaed52f7c5d7997ce43e0b", "Value" : 10.15 }] Yes/No Value "Values": [{ "TagId" : "5dbaed52f7c5d7997ce43e0b", "Value" : true }] - Id - Unique identifier for tag values for a transaction. - ConcurrencyKey - Most recent value, used to prevent conflicts when multiple users update tag values at the same time. - State - Transaction review state. Possible values are: NotReviewed(default value), Approved, Reject, Ignore. - Values - List of tag values.

Body parameter

{
  "ConcurrencyKey": "",
  "Values": [
    {
      "TagId": "",
      "Value": {}
    }
  ]
}

Parameters

Name In Type Required Description
Id path integer(int64) true none
Authorization header string true token {USERTOKEN}
body body UpdateTagValuesRequest true none

Example responses

200 Response

{
  "Id": "",
  "ConcurrencyKey": "",
  "State": "",
  "Values": {},
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK Tags
400 Bad Request The request is invalid. None
409 Conflict Please update your outdated ConcurrencyKey value. None

Create tag values for a transaction.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags', headers = headers)

print(r.json())

const inputBody = '{
  "ConcurrencyKey": "",
  "Values": [
    {
      "TagId": "",
      "Value": {}
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /Transactions/{Id}/Tags

Create tag values for a transaction using predefined tag definitions.

To view a list of tag definitions configured for your business, use GET /Business/Configuration/Tags.

To create a tag definition, use POST /Business/Configuration/Tag/{tag-type}.

Tag values are passed as arrays of TagId and Value property pairs. { "ConcurrencyKey": "string", "Values": [{ "TagId" : string, "Value" : object }] } #### Value Object Examples #### Text Value "Values": [{ "TagId" : "5dbaed52f7c5d7997ce43e0b", "Value" : "Some new text" }] Dropdown Value "Values": [{ "TagId" : "5dbaed52f7c5d7997ce43e0b", "Value" : "Engineering" }] Decimal Value "Values": [{ "TagId" : "5dbaed52f7c5d7997ce43e0b", "Value" : 10.15 }] Yes/No Value "Values": [{ "TagId" : "5dbaed52f7c5d7997ce43e0b", "Value" : true }] - Id - Unique identifier for tag values for a transaction. - ConcurrencyKey - Most recent value, used to prevent conflicts when multiple users update tag values at the same time. - State - Transaction review state. Possible values are: NotReviewed(default value), Approved, Reject, Ignore. - Values - List of tag values.

Body parameter

{
  "ConcurrencyKey": "",
  "Values": [
    {
      "TagId": "",
      "Value": {}
    }
  ]
}

Parameters

Name In Type Required Description
Id path integer(int64) true Transaction Id
Authorization header string true token {USERTOKEN}
body body CreateTagValuesRequest true CreateTagValuesRequest object

Example responses

201 Response

{
  "Id": "",
  "ConcurrencyKey": "",
  "State": "",
  "Values": {},
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
201 Created Created Tags
400 Bad Request The request is invalid. None
409 Conflict The request is invalid because the item already exists. None

Response Headers

Status Header Type Format Description
201 Location url URL to the newly created resource.

Delete all tag values for a transaction.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.delete 'https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags',
  params: {
  'ConcurrencyKey' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.delete('https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags', params={
  'ConcurrencyKey': 'string'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags?ConcurrencyKey=string',
{
  method: 'DELETE',

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

DELETE /Transactions/{Id}/Tags

Use this endpoint to delete all standards tag values for a transaction. This call does not delete allocation tag values.

Response

- Id - Unique identifier for tag values. - ConcurrencyKey - Most recently updated concurrency key. - State - Transaction review state. Possible values are: NotReviewed (default), Approved, Reject, Ignore.

Parameters

Name In Type Required Description
Id path integer(int64) true Transaction Id
ConcurrencyKey query string true Concurrency Key
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "Id": "",
  "ConcurrencyKey": "",
  "State": "",
  "Values": {},
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK Tags
400 Bad Request The request is invalid. None

Update Allocation tag values for a transaction.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags/Allocations',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags/Allocations', headers = headers)

print(r.json())

const inputBody = '{
  "ConcurrencyKey": "",
  "Values": [
    {
      "TagId": "",
      "Allocation": [
        {
          "TagId": "",
          "Value": {}
        }
      ],
      "Amount": 0
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags/Allocations',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Transactions/{Id}/Tags/Allocations

Allocations allow you to associate a transaction with multiple expense categories or accounts.

### Request ### Settled PEX transactions may be divided into multiple allocation sets. Each set references one or more tag values and an allocation amount.

The sum total of all allocation amounts must be equal to the transaction settlement amount.

A transaction with allocations is required to contain a minimum of two sets of Allocation tag values. Otherwise, for a single allocation use standard tag values. "Values": [ { "TagId": "5e1d88aa46af0d1748afd808", "Allocation": [ { "TagId": "5e1c721601680617242a1152", "Value": "Marketing" } ], "Amount": "3.08" }, { "TagId": "5e1d88aa46af0d1748afd808", "Allocation": [ { "TagId": "5e1c721601680617242a1152", "Value": "Sales" } ], "Amount": "5.00" }] - ConcurrencyKey - Provide the more recent value to prevent conflicts when multiple users update tag values at the same time. - TagId (Values array) - Unique identifier of the Tag definition. Refer to the allocation TagId when you create an allocation tag via POST /Business/Configuration/Tag/Allocation. - TagId (Allocation array) - Unique identifier of the Tag definition. Refer to Id when you create a tag definition via POST /Business/Configuration/Tag/{tag-type}. - Values - Values for the tag definition (for allocation TagId). - Amount - A portion of the transaction settlement amount alloted to each allocation. ### Response ### - Id - Unique identifier for allocation tag values. - ConcurrencyKey - Most recently updated concurrency key. - State - Transaction review state. Possible values are: NotReviewed (default), Approved, Reject, Ignore.

Body parameter

{
  "ConcurrencyKey": "",
  "Values": [
    {
      "TagId": "",
      "Allocation": [
        {
          "TagId": "",
          "Value": {}
        }
      ],
      "Amount": 0
    }
  ]
}

Parameters

Name In Type Required Description
Id path integer(int64) true Transaction Id
Authorization header string true token {USERTOKEN}
body body UpdateAllocationTagValuesRequest true UpdateAllocationTagValuesRequest object

Example responses

200 Response

{
  "Id": "",
  "ConcurrencyKey": "",
  "State": "",
  "Values": {},
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK Tags
400 Bad Request The request is invalid. None

Create Allocation tag values for a transaction.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags/Allocations',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags/Allocations', headers = headers)

print(r.json())

const inputBody = '{
  "ConcurrencyKey": "",
  "Values": [
    {
      "TagId": "",
      "Allocation": [
        {
          "TagId": "",
          "Value": {}
        }
      ],
      "Amount": 0
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags/Allocations',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /Transactions/{Id}/Tags/Allocations

Allocations allow you to associate a transaction with multiple expense categories or accounts. Allocation tags are arrays of other tag values. An allocation tag cannot contain a reference to another allocation tag as only one may exist per business.

### Request ### Settled PEX transactions may be divided into multiple allocation sets. Each set references one or more tag values and an allocation amount.

The sum total of all allocation amounts must be equal to the transaction settlement amount.

Transaction allocation values are required to contain a minimum of two sets of tag values. Otherwise, for a single allocation use standard tag values. "Values": [ { "TagId": "5e1d88aa46af0d1748afd808", "Allocation": [ { "TagId": "5e1c721601680617242a1152", "Value": "Marketing" } ], "Amount": "3.08" }, { "TagId": "5e1d88aa46af0d1748afd808", "Allocation": [ { "TagId": "5e1c721601680617242a1152", "Value": "Sales" } ], "Amount": "5.00" }] - ConcurrencyKey - Provide the more recent value to prevent conflicts when multiple users update tag values at the same time. - TagId(Values array) - Unique identifier of the Tag definition. Refer to the allocation TagId when you create an allocation tag via POST /Business/Configuration/Tag/Allocation. - TagId(Allocation array) - Unique identifier of the Tag definition. Refer to Id when you create a tag definition via POST /Business/Configuration/Tag/{tag-type}. - Values - Values for the tag definition (for allocation TagId). - Amount - A portion of the transaction settlement amount alloted to each allocation. ### Response ### - Id - Unique identifier for allocation tag values. - ConcurrencyKey - Most recently updated concurrency key. - State - Transaction review state. Possible values are: NotReviewed (default), Approved, Reject, Ignore.

Body parameter

{
  "ConcurrencyKey": "",
  "Values": [
    {
      "TagId": "",
      "Allocation": [
        {
          "TagId": "",
          "Value": {}
        }
      ],
      "Amount": 0
    }
  ]
}

Parameters

Name In Type Required Description
Id path integer(int64) true Transaction Id
Authorization header string true token {USERTOKEN}
body body CreateAllocationTagValuesRequest true Create allocation tag value request

Example responses

201 Response

{
  "Id": "",
  "ConcurrencyKey": "",
  "State": "",
  "Values": {},
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
201 Created Created Tags
400 Bad Request The request is invalid. None
409 Conflict Please update your outdated ConcurrencyKey value. None

Response Headers

Status Header Type Format Description
201 Location url URL to the newly created resource.

Delete Allocation tag values for a transaction.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.delete 'https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags/Allocations',
  params: {
  'ConcurrencyKey' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.delete('https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags/Allocations', params={
  'ConcurrencyKey': 'string'
}, headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags/Allocations?ConcurrencyKey=string',
{
  method: 'DELETE',

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

DELETE /Transactions/{Id}/Tags/Allocations

Use this endpoint to delete all allocation values for a transaction.

Response

- Id - Unique identifier for allocation tag values. - ConcurrencyKey - Most recently updated concurrency key. - State - Transaction review state. Possible values are: NotReviewed (default), Approved, Reject, Ignore.

Parameters

Name In Type Required Description
Id path integer(int64) true Transaction Id
ConcurrencyKey query string true Concurrency Key
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "Id": "",
  "ConcurrencyKey": "",
  "State": "",
  "Values": {},
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK Tags
400 Bad Request The request is invalid. None

VirtualCard : Create and review virtual card orders.

Create virtual cards for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/VirtualCard/Order',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/VirtualCard/Order', headers = headers)

print(r.json())

const inputBody = '{
  "VirtualCards": [
    {
      "FirstName": "",
      "LastName": "",
      "DateOfBirth": "",
      "Phone": "",
      "Email": "",
      "ProfileAddress": {
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": ""
      },
      "GroupId": 0,
      "RulesetId": 0,
      "AutoActivation": false,
      "FundCardAmount": 0,
      "CardDataWebhookURL": ""
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/VirtualCard/Order',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /VirtualCard/Order

Create virtual cards for the business. The response to this call is a VirtualCardOrderId and NumberOfCardsRequested.

To retrieve card order details (without sensitive data), including the card AcctId, use GET /VirtualCard/Order/{Id}

Cards have an expiration date of 3 years and will renew automatically 60 days prior to expiration. If the card expiration is 01/20, the card will expire on the last day of the month, January 31, 2020.

non-ASCII characters. Ex: "ñ" not allowed
Cardholder name may only include letters, numbers and the following punctuation symbols: , . - & '
Cardholder first + last names must be no more than 23 characters
Email format: name@domain.com
Date format: MM-DD-YYYY, ex. 01-31-1970
Phone format: 2125551212 or 212-555-1212, 10 digits can not begin with 1
Zip Code should be 5 digits: 10018
Country is always "US"
Address format: letters, numbers and the following punctuation symbols: . ' () , # - /
City format: letters, numbers and the following punctuation symbols: . ' () , # - /
State format: two letter format ex. "CA"
Max AddressLine1 field length: 26 characters
Max AddressLine2 field length: 26 characters
Max City field length: 25 characters

To add a card to a group, use GroupId, otherwise there will be no group applied. To add a card to a group after the card order has been created, use PUT/Card/SetGroup.
To add spend rules to a card accountID, use RulesetId, otherwise there will be no spend rulesets applied. To add spend rules to a card after the card order has been created, use PUT/Card/SpendRules/{Id}
AutoActivation by default is set to true, if you want to activate your card(s) later it can be set to false.
FundCardAmount is optional from 0 - 50,000 (if $50,000 that is the maximum card balance). We allow for up to 2 decimal places, so 40.55.
CardDataWebhookURL requires https and the max length is 500 characters, so "https://myapp.awesome.pexcustomer.com" will suffice. You can add your own custom parameters in your webhook i.e. "https://myapp.awesome.pexcustomer.com?id=123&orderid=1234".

If PEX is used for fuel authorizations, transit passes or online purchases, there will be times where the cardholder will have to key in the billing zip code as it appears on the cardholder profile. To avoid issues at the time of purchase, let the cardholder know what their billing (i.e. profile) address is.

If the cardholder enters an invalid Zip Code 2 times, the merchant may refuse to accept additional card swipes. If this occurs, cardholders will have to see the attendant to complete a gas transaction, or use another form of payment.

If the cardholder should have access to dashboard.pexcard.com to review their transaction history, etc., they will need the four (4) digit year of birth from their profile. If you are using a generic value, you will need to convey that to the cardholder.

At card creation, the spend rule defaults are:
- Daily spend limit is NONE
- International spending is OFF
- Card-not-present spending is ON
- All merchant categories are ON

Body parameter

{
  "VirtualCards": [
    {
      "FirstName": "",
      "LastName": "",
      "DateOfBirth": "",
      "Phone": "",
      "Email": "",
      "ProfileAddress": {
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": ""
      },
      "GroupId": 0,
      "RulesetId": 0,
      "AutoActivation": false,
      "FundCardAmount": 0,
      "CardDataWebhookURL": ""
    }
  ]
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body VirtualCardsOrderRequest true none

Example responses

200 Response

{
  "VirtualCardOrderId": 0,
  "NumberOfCardsRequested": 0
}

Responses

Status Meaning Description Schema
200 OK Success VirtualCardsOrderResponse
400 Bad Request

- The GroupId does not exist
- The RulesetId does not exist
- Funding Card Amount you entered (X) is greater than the Maximum Card Balance (Y)
- Webhook host request is different than one registered with PEX |None| |403|Forbidden| - The business does not support Virtual Card feature
- Administrator lacking proper permissions to 'Add/Edit/Terminate Card'
- Administrator lacking proper permissions for 'Funding' of Card
- Card limit exceeded
- Balance on cards greater than business balance
- Webhook is not properly registered with PEX
|None|

Return details for all virtual cards included in a virtual card order (note: will not return sensitive card data)

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/VirtualCard/Order/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/VirtualCard/Order/{id}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/VirtualCard/Order/{id}',
{
  method: 'GET',

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

GET /VirtualCard/Order/{id}

After using POST /VirtualCard/Order to create one or more cards, you can use this call to retrieve the card order information, including the virtual card Account Id ("AcctId"). Note the response will not include any sensitive card data.

Parameters

Name In Type Required Description
id path integer(int32) true Virtual Card Order Id
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "CardOrderId": 0,
  "OrderDateTime": "",
  "UserName": "",
  "Cards": [
    {
      "RequestId": 0,
      "AcctId": 0,
      "AccountNumber": "",
      "FirstName": "",
      "LastName": "",
      "DateOfBirth": "",
      "Phone": "",
      "Email": "",
      "HomeAddress": {
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": "",
        "Country": ""
      },
      "GroupId": 0,
      "SpendingRulesetsId": 0,
      "AutoActivation": false,
      "FundCardAmount": 0,
      "CardDataWebhookURL": "",
      "Status": "",
      "Errors": [
        "string"
      ],
      "ErrorMessage": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success VirtualCardsGetOrderResponse
403 Forbidden Virtual Card Order is not available (may belong to another business) None
404 Not Found Virtual Card Order does not exist None

Request to resend callback with sensitive card data

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/VirtualCard/Data',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/VirtualCard/Data', headers = headers)

print(r.json())

const inputBody = '{
  "AcctId": 0,
  "CardDataWebhookURL": ""
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/VirtualCard/Data',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /VirtualCard/Data

Request to resend webhook/callback with sensitive card data for a single AcctId. This should only be used if the webhook from POST/VirtualCard/Order is not delivered. If successful, you receive no response, just the webhook.

To retrieve card order details (without sensitive data), including the card AcctId, use GET /VirtualCard/Order/{Id}.

Body parameter

{
  "AcctId": 0,
  "CardDataWebhookURL": ""
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body VirtualCardDataRequest true Account ID and webhook URL

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK Success Inline
400 Bad Request

- AccountId is not found or is not associated with a Virtual Card Order
- Webhook host request is different than one registered with PEX |None| |403|Forbidden| - Cardholder does not belong to this business
- Webhook is not properly registered with PEX
|None|

Response Schema

Status Code 200

IHttpActionResult

Name Type Required Restrictions Description

Business : Check balances and transfers, manage administrators, and configure business settings.

Return details of all the available Tag definitions configured for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Business/Configuration/Tags',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Business/Configuration/Tags', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Configuration/Tags',
{
  method: 'GET',

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

GET /Business/Configuration/Tags

Type - It defines the type of the tag on PEX platform. Valid values are: 1. Dropdown 2. Text 3. Yes/No 4. Decimal

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}

Example responses

200 Response

[
  {
    "Id": "",
    "Type": "",
    "Name": "",
    "Description": "",
    "IsEnabled": false,
    "IsDeleted": false,
    "IsRequired": false,
    "Order": 0,
    "ConcurrencyKey": "",
    "CreatedDateUtc": "",
    "CreatedBy": {
      "AdminId": 0,
      "UserId": 0
    },
    "UpdatedDateUtc": "",
    "UpdatedBy": {
      "AdminId": 0,
      "UserId": 0
    },
    "DeletedDateUtc": "",
    "DeletedBy": {
      "AdminId": 0,
      "UserId": 0
    }
  }
]

Responses

Status Meaning Description Schema
200 OK OK Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [Tag] false none [Tag configuration]
» Tag Tag false none Tag configuration
»» Id string false none Unique Identifier of the tag definition
»» Type string false none Type of the tag definition {Dropdown, Text, Decimal, Yes/No}
»» Name string false none Name of the tag definition
»» Description string false none Descriptive information about the tag definition
»» IsEnabled boolean false none This flag determines if the tag definition is visible to the card holder
»» IsDeleted boolean false none If set to true, the tag is deleted
»» IsRequired boolean false none If set to true, tag is not required
»» Order integer(int32) false none Determines the position where tag appears. It is a 0 based index
»» ConcurrencyKey string false none Concurrent editing token
»» CreatedDateUtc string(date-time) false none Date when the tag definition was created
»» CreatedBy MetadataUser false none Metadata user
»»» AdminId integer(int32) false none Admin Id of the user who created, updated, or deleted the tag definition
»»» UserId integer(int32) false none User Id of the user who created, updated, or deleted the tag definition
»» UpdatedDateUtc string(date-time) false none Date when the tag definition was last updated
»» UpdatedBy MetadataUser false none Metadata user
»» DeletedDateUtc string(date-time) false none Date when the tag definition was deleted
»» DeletedBy MetadataUser false none Metadata user

Enumerated Values

Property Value
Type Text
Type YesNo
Type Dropdown
Type Decimal
Type Allocation

Return details of single tag definition (specified by the {Id})

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Business/Configuration/Tag/{Id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/{Id}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/{Id}',
{
  method: 'GET',

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

GET /Business/Configuration/Tag/{Id}

To get the Id of the specific tag definition please use GET /Business/Configuration/Tags
Type - It defines the type of the tag on PEX platform. Valid values are: 1. Dropdown 2. Text 3. Yes/No 4. Decimal

Parameters

Name In Type Required Description
Id path string true Tag Id
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK Tag
404 Not Found NotFound None

Updates a tag definition for Type = Dropdown

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Dropdown/{Id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Dropdown/{Id}', headers = headers)

print(r.json())

const inputBody = '{
  "Options": [
    {
      "Name": "",
      "Value": "",
      "Order": 0,
      "IsEnabled": false
    }
  ],
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Dropdown/{Id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Business/Configuration/Tag/Dropdown/{Id}

Order - Determines the position where Tag appears on UI. It is a 0 based index, i.e. Order = 0 corresponds to 1st position of the tag in the list of tags. The default value is 0. It is a required field.

Body parameter

{
  "Options": [
    {
      "Name": "",
      "Value": "",
      "Order": 0,
      "IsEnabled": false
    }
  ],
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false
}

Parameters

Name In Type Required Description
Id path string true none
Authorization header string true token {USERTOKEN}
body body UpdateDropdownTagRequest true none

Example responses

200 Response

{
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "Options": [
    {
      "Name": "",
      "Value": "",
      "Order": 0,
      "IsEnabled": false
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK DropdownTag
400 Bad Request The request is invalid. None
404 Not Found NotFound None

Delete a tag definition for Type = Dropdown

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.delete 'https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Dropdown/{Id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.delete('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Dropdown/{Id}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Dropdown/{Id}',
{
  method: 'DELETE',

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

DELETE /Business/Configuration/Tag/Dropdown/{Id}

To get the Id of the tag definition, please use GET /Business/Configuration/Tags.

Parameters

Name In Type Required Description
Id path string true none
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "Options": [
    {
      "Name": "",
      "Value": "",
      "Order": 0,
      "IsEnabled": false
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK DropdownTag
400 Bad Request Bad Request. None

Create a tag definition for Type = Dropdown

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Dropdown',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Dropdown', headers = headers)

print(r.json())

const inputBody = '{
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false,
  "Options": [
    {
      "Name": "",
      "Value": "",
      "Order": 0,
      "IsEnabled": false
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Dropdown',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /Business/Configuration/Tag/Dropdown

IsRequired - If set to true, the User can not save the tag selection without selecting a value for this tag.
Order - Determines the position where Tag appears on UI. It is a 0 based index, i.e.Order = 0 corresponds to 1st position of the tag in the list of tags. The default value is 0. It is a required field.

Body parameter

{
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false,
  "Options": [
    {
      "Name": "",
      "Value": "",
      "Order": 0,
      "IsEnabled": false
    }
  ]
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body CreateDropdownTagRequest true none

Example responses

201 Response

{
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "Options": [
    {
      "Name": "",
      "Value": "",
      "Order": 0,
      "IsEnabled": false
    }
  ]
}

Responses

Status Meaning Description Schema
201 Created Created DropdownTag
400 Bad Request The request is invalid. None

Response Headers

Status Header Type Format Description
201 Location string URL to the newly created resource.

Create option(s) for the Type = Dropdown.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Dropdown/{Id}/Options',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Dropdown/{Id}/Options', headers = headers)

print(r.json())

const inputBody = '{
  "Options": [
    {
      "Name": "",
      "Value": "",
      "Order": 0,
      "IsEnabled": false
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Dropdown/{Id}/Options',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /Business/Configuration/Tag/Dropdown/{Id}/Options

IsRequired - If set to true, the User can not save the tag selection without selecting a value for this tag.
Order - Determines the position where Tag appears on UI. It is a 0 based index i.e. Order = 0 corresponds to 1st position of the tag in the list of tags. The default value is 0. It is a required field.

Body parameter

{
  "Options": [
    {
      "Name": "",
      "Value": "",
      "Order": 0,
      "IsEnabled": false
    }
  ]
}

Parameters

Name In Type Required Description
Id path string true none
Authorization header string true token {USERTOKEN}
body body TagOptionsRequest true none

Example responses

200 Response

{
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "Options": [
    {
      "Name": "",
      "Value": "",
      "Order": 0,
      "IsEnabled": false
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK DropdownTag
201 Created Created DropdownTag
400 Bad Request Tag is not dropdown type. None

Response Headers

Status Header Type Format Description
201 Location string URL to the newly created resource.

Create a tag definition for Type = Text

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Text',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Text', headers = headers)

print(r.json())

const inputBody = '{
  "Length": 0,
  "ValidationType": "",
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Text',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /Business/Configuration/Tag/Text

ValidationType - Determines the kind of values this tag is allowed to have. Valid values are: 1. None 2. Numeric 3. Alphabetic 4. Alphanumeric

Length - Defines the number of characters allowed for this tag. It takes numeric values E.g. Length: 5 means the tag can have up to 5 characters.
IsRequired - If set to true, the User can not save the tag selection without selecting a value for this tag.
Order - Determines the position where Tag appears on UI. It is a 0 based index, i.e. Order = 0 corresponds to 1st position of the tag in the list of tags. The default value is 0. It is a required field.

Body parameter

{
  "Length": 0,
  "ValidationType": "",
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body CreateTextTagRequest true none

Example responses

201 Response

{
  "Length": 0,
  "ValidationType": "",
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
201 Created Created TextTag
400 Bad Request The request is invalid. None

Response Headers

Status Header Type Format Description
201 Location url URL to the newly created resource.

Updates a tag definition for Type = Text

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Text/{Id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Text/{Id}', headers = headers)

print(r.json())

const inputBody = '{
  "Length": 0,
  "ValidationType": "",
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Text/{Id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Business/Configuration/Tag/Text/{Id}

ValidationType - Determines the kind of values this tag is allowed to have. Valid values are: 1. None 2. Numeric 3. Alphabetic 4. Alphanumeric

Length - Defines the number of characters allowed for this tag.It takes numeric values E.g.Length: 5 means the tag can have up to 5 characters. Order - Determines the position where Tag appears on UI. It is a 0 based index, i.e. Order = 0 corresponds to 1st position of the tag in the list of tags. The default value is 0. It is a required field.

Body parameter

{
  "Length": 0,
  "ValidationType": "",
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false
}

Parameters

Name In Type Required Description
Id path string true none
Authorization header string true token {USERTOKEN}
body body UpdateTextTagRequest true none

Example responses

200 Response

{
  "Length": 0,
  "ValidationType": "",
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK TextTag
400 Bad Request Bad Request. None

Deletes a tag definition for Type = Text.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.delete 'https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Text/{Id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.delete('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Text/{Id}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Text/{Id}',
{
  method: 'DELETE',

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

DELETE /Business/Configuration/Tag/Text/{Id}

To get the Id of the tag definition, please use GET /Business/Configuration/Tags.

Parameters

Name In Type Required Description
Id path string true none
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "Length": 0,
  "ValidationType": "",
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK TextTag
400 Bad Request Bad Request. None

Create a tag definition for Type = Decimal

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Decimal',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Decimal', headers = headers)

print(r.json())

const inputBody = '{
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Decimal',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /Business/Configuration/Tag/Decimal

IsRequired - If set to true, the User can not save the tag selection without selecting a value for this tag.
Order - Determines the position where Tag appears on UI. It is a 0 based index, i.e. Order = 0 corresponds to 1st position of the tag in the list of tags. The default value is 0. It is a required field.

Body parameter

{
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body CreateTagRequest true none

Example responses

201 Response

{
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
201 Created Created Tag
400 Bad Request The request is invalid. None

Response Headers

Status Header Type Format Description
201 Location url URL to the newly created resource.

Updates a tag definition for Type = Decimal.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Decimal/{Id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Decimal/{Id}', headers = headers)

print(r.json())

const inputBody = '{
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Decimal/{Id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Business/Configuration/Tag/Decimal/{Id}

Order - Determines the position where Tag appears on UI. It is a 0 based index, i.e. Order = 0 corresponds to 1st position of the tag in the list of tags. The default value is 0. It is a required field.

Body parameter

{
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false
}

Parameters

Name In Type Required Description
Id path string true none
Authorization header string true token {USERTOKEN}
body body UpdateTagRequest true none

Example responses

200 Response

{
  "Length": 0,
  "ValidationType": "",
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK TextTag
404 Not Found NotFound None

Deletes a tag definition for Type = Decimal

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.delete 'https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Decimal/{Id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.delete('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Decimal/{Id}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Decimal/{Id}',
{
  method: 'DELETE',

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

DELETE /Business/Configuration/Tag/Decimal/{Id}

To get the Id of the tag definition, please use GET /Business/Configuration/Tags.

Parameters

Name In Type Required Description
Id path string true none
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK Tag
400 Bad Request Bad Request. None

Create a tag definition for Type = Yes/No

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Business/Configuration/Tag/YesNo',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/YesNo', headers = headers)

print(r.json())

const inputBody = '{
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/YesNo',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /Business/Configuration/Tag/YesNo

IsRequired - If set to true, the User can not save the tag selection without selecting a value for this tag. Order - Determines the position where Tag appears on UI. It is a 0 based index, i.e. Order = 0 corresponds to 1st position of the tag in the list of tags. The default value is 0. It is a required field.

Body parameter

{
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body CreateTagRequest true none

Example responses

201 Response

{
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
201 Created Created Tag
400 Bad Request The request is invalid. None

Response Headers

Status Header Type Format Description
201 Location url URL to the newly created resource.

Update a tag definition for Type = Yes/No

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Business/Configuration/Tag/YesNo/{Id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/YesNo/{Id}', headers = headers)

print(r.json())

const inputBody = '{
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/YesNo/{Id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Business/Configuration/Tag/YesNo/{Id}

Order - Determines the position where Tag appears on UI. It is 0 based index i.e. Order = 0 corresponds to 1st position of the tag in the list of tags. The default value is 0. It is a required field.

Body parameter

{
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false
}

Parameters

Name In Type Required Description
Id path string true none
Authorization header string true token {USERTOKEN}
body body UpdateTagRequest true none

Example responses

200 Response

{
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK Tag
404 Not Found NotFound None

Delete a tag definition for Type = Yes/No

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.delete 'https://coreapi.pexcard.com/v4/Business/Configuration/Tag/YesNo/{Id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.delete('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/YesNo/{Id}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/YesNo/{Id}',
{
  method: 'DELETE',

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

DELETE /Business/Configuration/Tag/YesNo/{Id}

To get the Id of the tag definition, please use GET /Business/Configuration/Tags.

Parameters

Name In Type Required Description
Id path string true none
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK Tag
400 Bad Request Bad Request. None

Update a tag definition for Type = Allocation

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Allocation',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Allocation', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Allocation',
{
  method: 'PUT',

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

PUT /Business/Configuration/Tag/Allocation

Allocations allow you to associate a transaction with multiple expense categories or accounts.

Settled PEX transactions may be divided into multiple allocation sets. Each set references one or more tag values and an allocation amount.

The sum total of all allocation amounts must be equal to the transaction settlement amount.

A transaction with allocations is required to contain a minimum of two sets of Allocation tag values. Otherwise, for a single allocation use standard tag values. - ConcurrencyKey - Provide the more recent value to prevent conflicts when multiple users update tag values at the same time. - IsRequired - If set to true, the User can not save the tag selection without selecting a value for this tag. - Order - Determines the position where Tag appears on UI. It is a 0 based index, i.e. Order = 0 corresponds to 1st position of the tag in the list of tags. The default value is 0. It is a required field. - Tags - Array of TagId and Value property pairs.

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "Tags": [
    {
      "TagId": "",
      "Order": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK AllocationTag

Create a tag definition for Type = Allocation

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Allocation',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Allocation', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Allocation',
{
  method: 'POST',

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

POST /Business/Configuration/Tag/Allocation

Allocations allow you to associate a transaction with multiple expense categories or accounts.

Settled PEX transactions may be divided into multiple allocation sets. Each set references one or more tag values and an allocation amount.

The sum total of all allocation amounts must be equal to the transaction settlement amount.

A transaction with allocations is required to contain a minimum of two sets of Allocation tag values. Otherwise, for a single allocation use standard tag values. - ConcurrencyKey - Provide the more recent value to prevent conflicts when multiple users update tag values at the same time. - IsRequired - If set to true, the User can not save the tag selection without selecting a value for this tag. - Order - Determines the position where Tag appears on UI. It is a 0 based index, i.e. Order = 0 corresponds to 1st position of the tag in the list of tags. The default value is 0. It is a required field. - Tags - Array of TagId and Value property pairs.

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}

Example responses

201 Response

{
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "Tags": [
    {
      "TagId": "",
      "Order": ""
    }
  ]
}

Responses

Status Meaning Description Schema
201 Created Created AllocationTag
400 Bad Request The request is invalid. None

Response Headers

Status Header Type Format Description
201 Location url URL to the newly created resource.

Delete a tag definition for Type = Allocation

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.delete 'https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Allocation/{Id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.delete('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Allocation/{Id}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Allocation/{Id}',
{
  method: 'DELETE',

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

DELETE /Business/Configuration/Tag/Allocation/{Id}

Delete one of the tag type = allocations. Once the allocation tag definition is deleted transaction split is not possible going forward. To get the Id of the tag definition, please use GET /Business/Configuration/Tags.

Parameters

Name In Type Required Description
Id path string true none
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK Tag
400 Bad Request Bad Request. None

Updates a tag option definition for Type = Dropdown

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Dropdown/{Id}/Option',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Dropdown/{Id}/Option', headers = headers)

print(r.json())

const inputBody = '{
  "Name": "",
  "Value": "",
  "Order": 0,
  "IsEnabled": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Configuration/Tag/Dropdown/{Id}/Option',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Business/Configuration/Tag/Dropdown/{Id}/Option

To get the Id of the specific tag please use GET /Business/Configuration/Tags Order - Determines the position where Tag appears on UI. It is a 0 based index, i.e.Order = 0 corresponds to 1st position of the tag in the list of tags. The default value is 0. It is a required field.

Body parameter

{
  "Name": "",
  "Value": "",
  "Order": 0,
  "IsEnabled": false
}

Parameters

Name In Type Required Description
Id path string true none
Authorization header string true token {USERTOKEN}
body body UpdateTagOptionRequest true none

Example responses

200 Response

{
  "Name": "",
  "Value": "",
  "Order": 0,
  "IsEnabled": false
}

Responses

Status Meaning Description Schema
200 OK OK TagOption
404 Not Found NotFound None

Return list of PEX initiated ACH transfer requests for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Business/OneTimeTransfer',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Business/OneTimeTransfer', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/OneTimeTransfer',
{
  method: 'GET',

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

GET /Business/OneTimeTransfer

Return all one-time transfers for the business.

One-time transfers are PEX initiated debit or credit ACH requests to/from your external business checking account-on-file to/from your PEXCard business account.

One-time transfer Status definitions:
- Request: Not sent to bank yet, can be deleted up to 9:00pm ET on the day the request is made.
- Pending: Sent to bank and will take up to four (4) business days to complete.
- Complete: Funds were posted to the PEX account.
- Rejected: Your bank refused the transaction. Most likely cause? Insufficient funds.
- Deleted: Canceled by a PEX administrator.
- Canceled: Bank Inactive, canceled by PEX due to external bank account status.
- Cancel: Older transfers canceled by a PEX administrator.

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "OneTimeTransferDetails": [
    {
      "TransferRequestId": 0,
      "BankInformation": {
        "ExternalBankAcctId": 0,
        "RoutingNumber": "",
        "BankAccountNumber": "",
        "BankName": "",
        "BankAccountType": "",
        "IsActive": false
      },
      "Amount": 0,
      "Status": "",
      "RequestedDate": "",
      "FundAvailableDate": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK GetOneTimeTransferResponse

Return the PEX business profile information

Code samples

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Business/Profile',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Business/Profile', headers = headers)

print(r.json())


const headers = {
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Profile',
{
  method: 'GET',

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

GET /Business/Profile

Return the PEX business profile information including address, phone and initial contact information.

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}

Responses

Status Meaning Description Schema
403 Forbidden Business is not open None
500 Internal Server Error System error None

Update the PEX business profile

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Business/Profile',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Business/Profile', headers = headers)

print(r.json())

const inputBody = '{
  "ProfileAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "Phone": "",
  "PhoneExtension": "",
  "NormalizeAddress": false
}';
const headers = {
  'Content-Type':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Profile',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /Business/Profile

Update the PEX business profile with the specified information.

All fields are optional for update, however, some profile fields are required in the system and cannot be replaced by null or empty strings. Required system profile fields are:
- First Name
- Last Name
- Profile Address
- Contact Name
- Mobile Phone
- Country
- Date of Birth
- Email.

Email format: name@domain.com
Date format: MM-DD-YYYY, ex. 01-31-1970
Phone format: 2125551212
Zip code should be 5 digits: 10018.

The API user must have EditBusinessProfile = true.

Body parameter

{
  "ProfileAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "Phone": "",
  "PhoneExtension": "",
  "NormalizeAddress": false
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body UpdateBusinessProfileRequest true Profile data

Responses

Status Meaning Description Schema
403 Forbidden

Business is not open
Admin does not have permission |None| |500|Internal Server Error|System error|None|

Return administrator profile and permissions

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Business/Admin/{Id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Business/Admin/{Id}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Admin/{Id}',
{
  method: 'GET',

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

GET /Business/Admin/{Id}

Return the profile and permissions for a specific active PEX administrator. A deleted or terminated administrator will not be returned.

To obtain the administrator ID, use GET /Business/Admin.

Parameters

Name In Type Required Description
Id path integer(int32) true Business admin ID
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "Admin": {
    "BusinessAdminId": 0,
    "FirstName": "",
    "MiddleName": "",
    "LastName": "",
    "ProfileAddress": {
      "ContactName": "",
      "AddressLine1": "",
      "AddressLine2": "",
      "City": "",
      "State": "",
      "PostalCode": "",
      "Country": ""
    },
    "Phone": "",
    "AltPhone": "",
    "DateOfBirth": "",
    "Email": "",
    "Permissions": {
      "ViewAdministration": false,
      "AddEditTerminateAdministrator": false,
      "RequestDeleteACHTransfer": false,
      "EditBusinessProfile": false,
      "AddEditTerminateCard": false,
      "RequestCardFunding": false,
      "ViewCardNumberReport": false,
      "ModifyTransactionNotes": false,
      "AdministerInstantIssueCards": false
    },
    "Status": ""
  }
}

Responses

Status Meaning Description Schema
200 OK Success GetAdminResponse
403 Forbidden

- Invalid business admin ID
- Business is not open
- Admin does not have permission |None| |500|Internal Server Error|System error|None|

Update an existing business administrator

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Business/Admin/{Id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Business/Admin/{Id}', headers = headers)

print(r.json())

const inputBody = '{
  "FirstName": "",
  "MiddleName": "",
  "LastName": "",
  "NormalizeAddress": false,
  "ProfileAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "Phone": "",
  "AltPhone": "",
  "DateOfBirth": "",
  "Email": "",
  "Permissions": {
    "ViewAdministration": false,
    "AddEditTerminateAdministrator": false,
    "RequestDeleteACHTransfer": false,
    "EditBusinessProfile": false,
    "AddEditTerminateCard": false,
    "RequestCardFunding": false,
    "ViewCardNumberReport": false,
    "ModifyTransactionNotes": false,
    "AdministerInstantIssueCards": false
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Admin/{Id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Business/Admin/{Id}

Edit an active PEX administrator’s profile address or permissions.

Email format: name@domain.com
Date format: MM-DD-YYYY, ex. 01-31-1970
Phone format: 2125551212
Zip code should be 5 digits: 10018

To retrieve a list of all active PEX administrators, use GET /Business/Admin.

Body parameter

{
  "FirstName": "",
  "MiddleName": "",
  "LastName": "",
  "NormalizeAddress": false,
  "ProfileAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "Phone": "",
  "AltPhone": "",
  "DateOfBirth": "",
  "Email": "",
  "Permissions": {
    "ViewAdministration": false,
    "AddEditTerminateAdministrator": false,
    "RequestDeleteACHTransfer": false,
    "EditBusinessProfile": false,
    "AddEditTerminateCard": false,
    "RequestCardFunding": false,
    "ViewCardNumberReport": false,
    "ModifyTransactionNotes": false,
    "AdministerInstantIssueCards": false
  }
}

Parameters

Name In Type Required Description
Id path integer(int32) true The business admin id to edit
Authorization header string true token {USERTOKEN}
body body EditAdminRequest true Profile and permission data

Example responses

200 Response

{
  "Admin": {
    "BusinessAdminId": 0,
    "FirstName": "",
    "MiddleName": "",
    "LastName": "",
    "ProfileAddress": {
      "ContactName": "",
      "AddressLine1": "",
      "AddressLine2": "",
      "City": "",
      "State": "",
      "PostalCode": "",
      "Country": ""
    },
    "Phone": "",
    "AltPhone": "",
    "DateOfBirth": "",
    "Email": "",
    "Permissions": {
      "ViewAdministration": false,
      "AddEditTerminateAdministrator": false,
      "RequestDeleteACHTransfer": false,
      "EditBusinessProfile": false,
      "AddEditTerminateCard": false,
      "RequestCardFunding": false,
      "ViewCardNumberReport": false,
      "ModifyTransactionNotes": false,
      "AdministerInstantIssueCards": false
    },
    "Status": ""
  }
}

Responses

Status Meaning Description Schema
200 OK Success EditAdminResponse
400 Bad Request

Invalid address
Invalid name |None| |403|Forbidden| Invalid business admin ID
Business is not open
Admin does not have permission
|None| |500|Internal Server Error|System error|None|

Delete a PEX administrator account

Code samples

require 'rest-client'
require 'json'

headers = {
  'Authorization' => 'string'
}

result = RestClient.delete 'https://coreapi.pexcard.com/v4/Business/Admin/{Id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Authorization': 'string'
}

r = requests.delete('https://coreapi.pexcard.com/v4/Business/Admin/{Id}', headers = headers)

print(r.json())


const headers = {
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Admin/{Id}',
{
  method: 'DELETE',

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

DELETE /Business/Admin/{Id}

Delete a PEX administrator account.

Once an administrator account is deleted, it cannot be turned on again. Use POST /Business/Admin to create a new administrator record.

To obtain the administrator ID, use GET /Business/Admin.

Parameters

Name In Type Required Description
Id path integer(int32) true Business admin ID
Authorization header string true token {USERTOKEN}

Responses

Status Meaning Description Schema
403 Forbidden Invalid business admin ID None
500 Internal Server Error System error None

List all administrator details for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Business/Admin',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Business/Admin', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Admin',
{
  method: 'GET',

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

GET /Business/Admin

Return all active PEX administrator details, including administrator website permissions. Any deleted or terminated administrators will not be returned.

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "BusinessAdmins": [
    {
      "BusinessAdminId": 0,
      "FirstName": "",
      "MiddleName": "",
      "LastName": "",
      "ProfileAddress": {
        "ContactName": "",
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": "",
        "Country": ""
      },
      "Phone": "",
      "AltPhone": "",
      "DateOfBirth": "",
      "Email": "",
      "Permissions": {
        "ViewAdministration": false,
        "AddEditTerminateAdministrator": false,
        "RequestDeleteACHTransfer": false,
        "EditBusinessProfile": false,
        "AddEditTerminateCard": false,
        "RequestCardFunding": false,
        "ViewCardNumberReport": false,
        "ModifyTransactionNotes": false,
        "AdministerInstantIssueCards": false
      },
      "Status": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success GetAdminListResponse
403 Forbidden

- Business is not open
- Admin does not have permission |None| |500|Internal Server Error|System error|None|

Return the balance of the business account

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Business/Balance',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Business/Balance', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Business/Balance',
{
  method: 'GET',

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

GET /Business/Balance

Returns the current balance of your PEX business account.
Please note that you will not be able to use your entire business balance to fund cards if you are required to maintain a minimum level of funds (typically $50) in your business account.

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "BusinessAccountId": 0,
  "BusinessAccountBalance": 0
}

Responses

Status Meaning Description Schema
200 OK Success GetBusinessBalanceResponse
401 Unauthorized Standard security response if token is invalid None
500 Internal Server Error System error None

SpendingRuleset : Build policies which limit card spending.

Return all cards with the advanced spending rulesets

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/SpendingRuleset/{Id}/Advanced/Cards',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/SpendingRuleset/{Id}/Advanced/Cards', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/SpendingRuleset/{Id}/Advanced/Cards',
{
  method: 'GET',

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

GET /SpendingRuleset/{Id}/Advanced/Cards

What it does:
Retrieve all cards assigned to a particular spending ruleset. The response includes all card details.

Parameters

Name In Type Required Description
Id path integer(int32) true none
Authorization header string true token {USERTOKEN}

Example responses

200 Response

[
  {
    "AccountId": 0,
    "Group": {
      "Id": 0,
      "GroupName": ""
    },
    "AccountStatus": "",
    "LedgerBalance": 0,
    "AvailableBalance": 0,
    "ProfileAddress": {
      "ContactName": "",
      "AddressLine1": "",
      "AddressLine2": "",
      "City": "",
      "State": "",
      "PostalCode": "",
      "Country": ""
    },
    "Phone": "",
    "ShippingAddress": {
      "ContactName": "",
      "AddressLine1": "",
      "AddressLine2": "",
      "City": "",
      "State": "",
      "PostalCode": "",
      "Country": ""
    },
    "ShippingPhone": "",
    "DateOfBirth": "",
    "Email": "",
    "CardList": [
      {
        "CardId": 0,
        "IssuedDate": "",
        "ExpirationDate": "",
        "Last4CardNumber": "",
        "CardStatus": ""
      }
    ],
    "SpendingRulesetId": 0,
    "SpendRules": {
      "MerchantCategories": [
        {
          "Id": 0,
          "Name": "",
          "Description": "",
          "TransactionLimit": 0,
          "DailySpendLimit": 0,
          "WeeklySpendLimit": 0,
          "MonthlySpendLimit": 0,
          "YearlySpendLimit": 0,
          "LifetimeSpendLimit": 0
        }
      ],
      "InternationalSpendEnabled": false,
      "IsDailySpendLimitEnabled": false,
      "DailySpendLimit": 0,
      "WeeklySpendLimit": 0,
      "MonthlySpendLimit": 0,
      "YearlySpendLimit": 0,
      "LifetimeSpendLimit": 0,
      "CardNotPresentUse": false,
      "CardPresence": 0,
      "UsePexAccountBalanceForAuths": false,
      "UseCustomerAuthDecision": false,
      "DaysOfWeekRestrictions": [
        "string"
      ],
      "UsStateRestrictions": [
        "string"
      ]
    },
    "ScheduledFunding": {
      "Amount": 0,
      "Frequency": ""
    },
    "CustomId": "",
    "IsVirtual": false
  }
]

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Invalid ruleset ID None
404 Not Found NotFound None
500 Internal Server Error InternalServerError None

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [AdvancedCardholderDetailsResponse] false none none
» AdvancedCardholderDetailsResponse AdvancedCardholderDetailsResponse false none none
»» AccountId integer(int32) false none Unique cardholder account id
»» Group CardholderGroup false none Details about a cardholder group
»»» Id integer(int32) true none Unique id of the cardholder group
»»» GroupName string true none Name of the cardholder group
»» AccountStatus string false none Cardholder account status (OPEN or CLOSED)
»» LedgerBalance number(double) false none Ledger balance for the card account, rounded to 2 decimal places
»» AvailableBalance number(double) false none Available balance for the card account, rounded to 2 decimal places
»» ProfileAddress AddressContact false none none
»»» ContactName string false none none
»»» AddressLine1 string true none none
»»» AddressLine2 string false none none
»»» City string true none none
»»» State string true none none
»»» PostalCode string true none none
»»» Country string false read-only none
»» Phone string false none Phone number
»» ShippingAddress AddressContact false none none
»» ShippingPhone string false none Shipping Phone number
»» DateOfBirth string(date-time) false none Cardholder date of birth
»» Email string false none Cardholder email address
»» CardList [CardDetail] false none List of details about cards associated with the account
»»» CardDetail CardDetail false none Details about a card
»»»» CardId integer(int32) true none Unique id for the card
»»»» IssuedDate string(date-time) true none Date card was issued
»»»» ExpirationDate string(date-time) true none Expiration date for the card
»»»» Last4CardNumber string true none Last four digits of card number
»»»» CardStatus string true none Card status

Possible string values for CardStatus parameter of card detail are:
- Inactive: All new Cards are Inactive, which means they can't be used to make purchases.
- Active: Cards in this state can be used to make purchases when funded.
- Blocked: In this state, cards cannot be used for purchases. It can be activated again for the use.
- Closed: This Card account is closed. It can not be activated again for the purchase.
»» SpendingRulesetId integer(int32) false none SpendingRulesetId for the cardholder account
»» SpendRules AdvancedSpendRulesResponse false none Advanced Spend Rules Response
»»» MerchantCategories [MerchantCategoryResponse] false none List of merchant categories
»»»» MerchantCategoryResponse MerchantCategoryResponse false none Merchant Category Response
»»»»» Id integer(int32) false none Merchant Category Id
»»»»» Name string false none Merchant Category Name
»»»»» Description string false none Merchant Category Description
»»»»» TransactionLimit number(double) false none Transaction limit, rounded to 2 decimal places
»»»»» DailySpendLimit number(double) false none Daily spend limit, rounded to 2 decimal places
»»»»» WeeklySpendLimit number(double) false none Weekly spend limit, rounded to 2 decimal places
»»»»» MonthlySpendLimit number(double) false none Monthly spend limit, rounded to 2 decimal places
»»»»» YearlySpendLimit number(double) false none Yearly spend limit, rounded to 2 decimal places
»»»»» LifetimeSpendLimit number(double) false none Lifetime spend limit, rounded to 2 decimal places
»»» InternationalSpendEnabled boolean false none Whether or not international spend is enabled
»»» IsDailySpendLimitEnabled boolean false none Whether or not a daily spend limit is set
»»» DailySpendLimit number(double) false none Daily spend limit, rounded to 2 decimal places
»»» WeeklySpendLimit number(double) false none Weekly spend limit, rounded to 2 decimal places
»»» MonthlySpendLimit number(double) false none Monthly spend limit, rounded to 2 decimal places
»»» YearlySpendLimit number(double) false none Yearly spend limit, rounded to 2 decimal places
»»» LifetimeSpendLimit number(double) false none Lifetime spend limit, rounded to 2 decimal places
»»» CardNotPresentUse boolean false none Whether or not card is present to use
»»» CardPresence integer(int32) false none Used to evaluate spend policy based on physical or virtual use of card
»»» UsePexAccountBalanceForAuths boolean false none Whether or not auto business balance funding to use
»»» UseCustomerAuthDecision boolean false none Whether or not decision control allowed to use
»»» DaysOfWeekRestrictions [string] false none Whether or not to limit days of the week for spend
»»» UsStateRestrictions [string] false none Whether or not to limit US States spend
»» ScheduledFunding ScheduledFunding false none Details about scheduled funding
»»» Amount number(double) true none Amount of scheduled funding, rounded to 2 decimal places
»»» Frequency string true none Describes when scheduled funding should occur.

Possible string values for Frequency parameter of scheduled funding are:
- '0' or 'DAY' - every Day
- '1' or 'MONDAY' - every Monday
- '2' or 'TUESDAY' - every Tuesday
- '3' or 'WEDNESDAY' - every Wednesday
- '4' or 'THURSDAY' - every Thursday
- '5' or 'FRIDAY' - every Friday
- '6' or 'SATURDAY' - every Saturday
- '7' or 'SUNDAY' - every Sunday
- '8' or 'FIRSTOFMONTH' - every 1st of the Month
»» CustomId string false none User defined Id which can be assigned to Card holder profile (alphanumeric up to 50 characters)
»» IsVirtual boolean false none Identifies virtual cardholder

Enumerated Values

Property Value
Frequency DAY
Frequency MONDAY
Frequency TUESDAY
Frequency WEDNESDAY
Frequency THURSDAY
Frequency FRIDAY
Frequency SATURDAY
Frequency SUNDAY
Frequency FIRSTOFMONTH

Return all advanced spending rulesets for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/SpendingRuleset/Advanced',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/SpendingRuleset/Advanced', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/SpendingRuleset/Advanced',
{
  method: 'GET',

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

GET /SpendingRuleset/Advanced

What it does:
Return details of all advanced spending rulesets for the business.

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}

Example responses

200 Response

[
  {
    "Id": 0,
    "Name": "",
    "CardCount": 0,
    "DailySpendLimit": 0,
    "WeeklySpendLimit": 0,
    "MonthlySpendLimit": 0,
    "YearlySpendLimit": 0,
    "LifetimeSpendLimit": 0,
    "InternationalAllowed": false,
    "CardNotPresentAllowed": false,
    "CardPresence": 0,
    "UsePexAccountBalanceForAuths": false,
    "UseCustomerAuthDecision": false,
    "DaysOfWeekRestrictions": [
      "string"
    ],
    "UsStateRestrictions": [
      "string"
    ],
    "MccRestrictions": false,
    "MerchantCategories": [
      {
        "Id": 0,
        "Name": "",
        "Description": "",
        "TransactionLimit": 0,
        "DailySpendLimit": 0,
        "WeeklySpendLimit": 0,
        "MonthlySpendLimit": 0,
        "YearlySpendLimit": 0,
        "LifetimeSpendLimit": 0
      }
    ]
  }
]

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found NotFound None
500 Internal Server Error InternalServerError None

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [AdvancedSpendingRulesetItemResponse] false none [Advanced Spending Ruleset Item Response]
» AdvancedSpendingRulesetItemResponse AdvancedSpendingRulesetItemResponse false none Advanced Spending Ruleset Item Response
»» Id integer(int32) false none Id
»» Name string false none Name
»» CardCount integer(int32) false none Card Count
»» DailySpendLimit number(double) false none Daily Spend Limit
»» WeeklySpendLimit number(double) false none Weekly Spend Limit
»» MonthlySpendLimit number(double) false none Monthly Spend Limit
»» YearlySpendLimit number(double) false none Yearly Spend Limit
»» LifetimeSpendLimit number(double) false none Lifetime Spend Limit
»» InternationalAllowed boolean false none International Allowed
»» CardNotPresentAllowed boolean false none Card Not Present Allowed
»» CardPresence integer(int32) false none CardPresence: Control how PEX Card can be used for purchases, either physically present at the point-of-sale or used virtually over the Internet or phone.
0 - Card present (in person) transaction only. If the cardholder only makes purchase in person, choose this option for better fraud protection.
1 - No restrictions. A cardholder can make purchases both in-person and online/over the internet.
2 - Card not present (online) transactions only. If the cardholder only makes purchases over the internet/online, choose this option for better fraud protection.
»» UsePexAccountBalanceForAuths boolean false none Use Pex Account Balance For Auths
»» UseCustomerAuthDecision boolean false none Use Customer Auth Decision
»» DaysOfWeekRestrictions [string] false none Whether or not limit days of the week for spend
»» UsStateRestrictions [string] false none Whether or not limit US States for spend
»» MccRestrictions boolean false none MCC Restrictions
»» MerchantCategories [AdvancedSpendingRulesetMerchantCategoryItemResponse] false none Merchant Categories
»»» AdvancedSpendingRulesetMerchantCategoryItemResponse AdvancedSpendingRulesetMerchantCategoryItemResponse false none Advanced Spending Ruleset Merchant Category Item Response
»»»» Id integer(int32) false none Id
»»»» Name string false none Name
»»»» Description string false none Description
»»»» TransactionLimit number(double) false none Transaction Limit
»»»» DailySpendLimit number(double) false none Daily Spend Limit
»»»» WeeklySpendLimit number(double) false none Weekly Spend Limit
»»»» MonthlySpendLimit number(double) false none Monthly Spend Limit
»»»» YearlySpendLimit number(double) false none Yearly Spend Limit
»»»» LifetimeSpendLimit number(double) false none Lifetime Spend Limit

Update advanced spending ruleset for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/SpendingRuleset/Advanced',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/SpendingRuleset/Advanced', headers = headers)

print(r.json())

const inputBody = '{
  "Id": 0,
  "Name": "",
  "DailySpendLimit": 0,
  "WeeklySpendLimit": 0,
  "MonthlySpendLimit": 0,
  "YearlySpendLimit": 0,
  "LifetimeSpendLimit": 0,
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "TransactionLimit": 0,
      "DailySpendLimit": 0,
      "WeeklySpendLimit": 0,
      "MonthlySpendLimit": 0,
      "YearlySpendLimit": 0,
      "LifetimeSpendLimit": 0
    }
  ],
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false,
  "DaysOfWeekRestrictions": [
    "string"
  ],
  "UsStateRestrictions": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/SpendingRuleset/Advanced',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /SpendingRuleset/Advanced

What it does:
Modify an existing advanced spending ruleset.

When you might use it.
1. Renaming the advanced spend ruleset.
2. Resetting the daily spending limit (including the ability to assign no limit).
3. Allowing or not allowing international use.
4. Allowing or not allowing card not present use.
5. Turning merchant categories on or off.

Body parameter

{
  "Id": 0,
  "Name": "",
  "DailySpendLimit": 0,
  "WeeklySpendLimit": 0,
  "MonthlySpendLimit": 0,
  "YearlySpendLimit": 0,
  "LifetimeSpendLimit": 0,
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "TransactionLimit": 0,
      "DailySpendLimit": 0,
      "WeeklySpendLimit": 0,
      "MonthlySpendLimit": 0,
      "YearlySpendLimit": 0,
      "LifetimeSpendLimit": 0
    }
  ],
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false,
  "DaysOfWeekRestrictions": [
    "string"
  ],
  "UsStateRestrictions": [
    "string"
  ]
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body UpdateAdvancedSpendingRulesetRequest true none

Example responses

200 Response

{
  "Id": 0,
  "Name": "",
  "CardCount": 0,
  "DailySpendLimit": 0,
  "WeeklySpendLimit": 0,
  "MonthlySpendLimit": 0,
  "YearlySpendLimit": 0,
  "LifetimeSpendLimit": 0,
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false,
  "DaysOfWeekRestrictions": [
    "string"
  ],
  "UsStateRestrictions": [
    "string"
  ],
  "MccRestrictions": false,
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "Description": "",
      "TransactionLimit": 0,
      "DailySpendLimit": 0,
      "WeeklySpendLimit": 0,
      "MonthlySpendLimit": 0,
      "YearlySpendLimit": 0,
      "LifetimeSpendLimit": 0
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK AdvancedSpendingRulesetItemResponse
400 Bad Request - Invalid merchant category
- Invalid ruleset ID
- Merchant categories duplicated
- Merchant spend limit exceeds overall spend limit
None
403 Forbidden - Name already exists
- This business does not support the Customer Authorization Decision
- This business does not support the PEX Account balance instead of card balance
None
500 Internal Server Error InternalServerError None

Create advanced spending ruleset for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/SpendingRuleset/Advanced',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/SpendingRuleset/Advanced', headers = headers)

print(r.json())

const inputBody = '{
  "Name": "",
  "DailySpendLimit": 0,
  "WeeklySpendLimit": 0,
  "MonthlySpendLimit": 0,
  "YearlySpendLimit": 0,
  "LifetimeSpendLimit": 0,
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "TransactionLimit": 0,
      "DailySpendLimit": 0,
      "WeeklySpendLimit": 0,
      "MonthlySpendLimit": 0,
      "YearlySpendLimit": 0,
      "LifetimeSpendLimit": 0
    }
  ],
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false,
  "DaysOfWeekRestrictions": [
    "string"
  ],
  "UsStateRestrictions": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/SpendingRuleset/Advanced',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /SpendingRuleset/Advanced

What it does:
Create a new advanced spending ruleset for the business.
Once the ruleset is created, it can be assigned to one or many cards.

An advanced spending ruleset is a group of spend rules that can be applied to multiple card accounts. For example, if all cardholders should be allowed to spend at restaurants and fuel pumps, the administrator can create a spending ruleset that has only those merchant categories 'checked'. Every card with that ruleset applied can only spend at restaurants and fuel pumps.

At card creation, the spend rule defaults are:
- Daily spend limit NONE
- Weeklyly spend limit NONE
- Monthly spend limit NONE
- Yearly spend limit NONE
- Lifetime spend limit NONE
- International spending is OFF
- All merchant categories are ON

If your business allows cardholders to "Use your PEX Account balance" for transactions, you must set a value for "DailySpendLimit" for those cardholders. The "DailySpendLimit" value must be less than or equal to the PEX assigned daily spend limit for your business (typically $5,000 USD).

CardNotPresentEnabled: This parameter is deprecated in favor of CardPresence.

CardPresence: Control how PEX Card can be used for purchases, either physically present at the point-of-sale or used virtually over the Internet or phone.
0 - Card present (in person) transaction only. If the cardholder only makes purchase in person, choose this option for better fraud protection.
1 - No restrictions. A cardholder can make purchases both in-person and online/over the internet.
2 - Card not present (online) transactions only. If the cardholder only makes purchases over the internet/online, choose this option for better fraud protection.

DaysOfWeekRestrictions: This parameter allows a card to be used only on specific days of the week. If empty, all days are valid. Days are comma delimited array values. E.g. Allow only weekends: ["Saturday", "Sunday"]

UsStateRestrictions: This parameter allows a card to be used only in certain US States. If empty, all US States are valid. States are abbriviated comma delimited array values. E.g. Allow only New York and New Jersey: ["NY","NJ"]

PEX has combined Merchant Category Codes (MCC) into larger groupings based upon merchant or service type. Below is the list of those combinations with examples of merchant types for each (this is not an exhaustive merchant listing):
- Associations & organizations: Post Office, local and federal government services, religious organizations
- Automotive dealers: Vehicle dealerships (car, RV, motorcycle, boat, recreational)
- Educational services: Schools, training programs
- Entertainment: Movies, bowling, golf, sports clubs
- Fuel & Convenience stores: Service stations (non-pump purchases), miscellaneous food stores, convenience stores and specialty markets.
- Grocery stores: Food, bakeries, candy
- Hardware Stores: Hardware, building supplies, construction materials, paint stores, and industrial equipment.
- Healthcare & Childcare services: Medical services, hospitals, daycare
- Professional services: Heating, plumbing, HVAC, freight, storage, utilities, fuel oil, coal, dry cleaners
- Restaurants: Fast food and sit-down restaurants
- Retail stores: Clothing, office supplies, hardware, building supplies, furniture, electronics
- Travel & transportation: Airlines, rental cars, trains, tolls, hotels, parking
- Fuel Pump Only: Outdoor fuel pumps (i.e. Pay at the Pump)
- Hardware Stores: Hardware, building supplies, construction materials, paint stores, and industrial equipment.

Body parameter

{
  "Name": "",
  "DailySpendLimit": 0,
  "WeeklySpendLimit": 0,
  "MonthlySpendLimit": 0,
  "YearlySpendLimit": 0,
  "LifetimeSpendLimit": 0,
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "TransactionLimit": 0,
      "DailySpendLimit": 0,
      "WeeklySpendLimit": 0,
      "MonthlySpendLimit": 0,
      "YearlySpendLimit": 0,
      "LifetimeSpendLimit": 0
    }
  ],
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false,
  "DaysOfWeekRestrictions": [
    "string"
  ],
  "UsStateRestrictions": [
    "string"
  ]
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body CreateAdvancedSpendingRulesetRequest true none

Example responses

200 Response

{
  "RulesetId": 0
}

Responses

Status Meaning Description Schema
200 OK OK CreateAdvancedSpendingRulesetResponse
400 Bad Request - Invalid merchant category
- Merchant categories duplicated
- Merchant spend limit exceeds overall spend limit
None
403 Forbidden - Name already exists
- This business does not support the Customer Authorization Decision
- This business does not support the PEX Account balance instead of card balance
None
500 Internal Server Error InternalServerError None

Delete advanced spending ruleset for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.delete 'https://coreapi.pexcard.com/v4/SpendingRuleset/Advanced',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'string'
}

r = requests.delete('https://coreapi.pexcard.com/v4/SpendingRuleset/Advanced', headers = headers)

print(r.json())

const inputBody = '{
  "Id": 0
}';
const headers = {
  'Content-Type':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/SpendingRuleset/Advanced',
{
  method: 'DELETE',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /SpendingRuleset/Advanced

What it does:
Delete an existing advanced spending ruleset for the business.
If one or more cards are assigned to a ruleset, that ruleset cannot be deleted.

Body parameter

{
  "Id": 0
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body DeleteAdvancedSpendingRulesetRequest true none

Responses

Status Meaning Description Schema
200 OK OK None
400 Bad Request Invalid ruleset ID None
403 Forbidden This spending ruleset is currently assigned to one or more cards. None
500 Internal Server Error InternalServerError None

Return an advanced spending ruleset for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/SpendingRuleset/{Id}/Advanced',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/SpendingRuleset/{Id}/Advanced', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/SpendingRuleset/{Id}/Advanced',
{
  method: 'GET',

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

GET /SpendingRuleset/{Id}/Advanced

What it does:
Retrieve details of a specific advanced spending ruleset.

Parameters

Name In Type Required Description
Id path integer(int32) true none
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "Id": 0,
  "Name": "",
  "CardCount": 0,
  "DailySpendLimit": 0,
  "WeeklySpendLimit": 0,
  "MonthlySpendLimit": 0,
  "YearlySpendLimit": 0,
  "LifetimeSpendLimit": 0,
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false,
  "DaysOfWeekRestrictions": [
    "string"
  ],
  "UsStateRestrictions": [
    "string"
  ],
  "MccRestrictions": false,
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "Description": "",
      "TransactionLimit": 0,
      "DailySpendLimit": 0,
      "WeeklySpendLimit": 0,
      "MonthlySpendLimit": 0,
      "YearlySpendLimit": 0,
      "LifetimeSpendLimit": 0
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK AdvancedSpendingRulesetItemResponse
400 Bad Request Invalid ruleset ID None
404 Not Found NotFound None
500 Internal Server Error InternalServerError None

Return all cards with the spending rulesets

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/SpendingRuleset/{Id}/Cards',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/SpendingRuleset/{Id}/Cards', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/SpendingRuleset/{Id}/Cards',
{
  method: 'GET',

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

GET /SpendingRuleset/{Id}/Cards

What it does:
Retrieve all cards assigned to a particular spending ruleset. The response includes all card details.

Parameters

Name In Type Required Description
Id path integer(int32) true none
Authorization header string true token {USERTOKEN}

Example responses

200 Response

[
  {
    "AccountId": 0,
    "Group": {
      "Id": 0,
      "GroupName": ""
    },
    "AccountStatus": "",
    "LedgerBalance": 0,
    "AvailableBalance": 0,
    "ProfileAddress": {
      "ContactName": "",
      "AddressLine1": "",
      "AddressLine2": "",
      "City": "",
      "State": "",
      "PostalCode": "",
      "Country": ""
    },
    "Phone": "",
    "ShippingAddress": {
      "ContactName": "",
      "AddressLine1": "",
      "AddressLine2": "",
      "City": "",
      "State": "",
      "PostalCode": "",
      "Country": ""
    },
    "ShippingPhone": "",
    "DateOfBirth": "",
    "Email": "",
    "IsVirtual": false,
    "CardList": [
      {
        "CardId": 0,
        "IssuedDate": "",
        "ExpirationDate": "",
        "Last4CardNumber": "",
        "CardStatus": ""
      }
    ],
    "SpendingRulesetId": 0,
    "SpendRules": {
      "UseMerchantCategory": false,
      "MerchantCategories": {
        "AssociationsAndOrganizations": false,
        "AutomotiveDealers": false,
        "EducationalServices": false,
        "Entertainment": false,
        "FuelAndConvenienceStores": false,
        "GroceryStores": false,
        "HealthcareAndChildcareServices": false,
        "ProfessionalServices": false,
        "Restaurants": false,
        "RetailStores": false,
        "TravelAndTransportation": false,
        "FuelPumpOnly": false,
        "HardwareStores": false
      },
      "InternationalSpendEnabled": false,
      "IsDailySpendLimitEnabled": false,
      "DailySpendLimit": 0,
      "CardNotPresentUse": false,
      "CardPresence": 0,
      "UsePexAccountBalanceForAuths": false,
      "UseCustomerAuthDecision": false
    },
    "ScheduledFunding": {
      "Amount": 0,
      "Frequency": ""
    },
    "CustomId": ""
  }
]

Responses

Status Meaning Description Schema
200 OK No cards found. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [CardholderDetailsResponse] false none [Details about a cardholder account]
» CardholderDetailsResponse CardholderDetailsResponse false none Details about a cardholder account
»» AccountId integer(int32) true none Unique cardholder account id
»» Group CardholderGroup false none Details about a cardholder group
»»» Id integer(int32) true none Unique id of the cardholder group
»»» GroupName string true none Name of the cardholder group
»» AccountStatus string true none Cardholder account status (OPEN or CLOSED)
»» LedgerBalance number(double) true none Ledger balance for the card account, rounded to 2 decimal places
»» AvailableBalance number(double) true none Available balance for the card account, rounded to 2 decimal places
»» ProfileAddress AddressContact true none none
»»» ContactName string false none none
»»» AddressLine1 string true none none
»»» AddressLine2 string false none none
»»» City string true none none
»»» State string true none none
»»» PostalCode string true none none
»»» Country string false read-only none
»» Phone string false none Phone number
»» ShippingAddress AddressContact true none none
»» ShippingPhone string false none Shipping Phone number
»» DateOfBirth string(date-time) true none Cardholder date of birth
»» Email string true none Cardholder email address
»» IsVirtual boolean false none Identifies virtual cardholder
»» CardList [CardDetail] true none List of details about cards associated with the account
»»» CardDetail CardDetail false none Details about a card
»»»» CardId integer(int32) true none Unique id for the card
»»»» IssuedDate string(date-time) true none Date card was issued
»»»» ExpirationDate string(date-time) true none Expiration date for the card
»»»» Last4CardNumber string true none Last four digits of card number
»»»» CardStatus string true none Card status

Possible string values for CardStatus parameter of card detail are:
- Inactive: All new Cards are Inactive, which means they can't be used to make purchases.
- Active: Cards in this state can be used to make purchases when funded.
- Blocked: In this state, cards cannot be used for purchases. It can be activated again for the use.
- Closed: This Card account is closed. It can not be activated again for the purchase.
»» SpendingRulesetId integer(int32) true none SpendingRulesetId for the cardholder account
»» SpendRules SpendRules true none none
»»» UseMerchantCategory boolean false none none
»»» MerchantCategories MerchantCategories false none none
»»»» AssociationsAndOrganizations boolean false none none
»»»» AutomotiveDealers boolean false none none
»»»» EducationalServices boolean false none none
»»»» Entertainment boolean false none none
»»»» FuelAndConvenienceStores boolean false none none
»»»» GroceryStores boolean false none none
»»»» HealthcareAndChildcareServices boolean false none none
»»»» ProfessionalServices boolean false none none
»»»» Restaurants boolean false none none
»»»» RetailStores boolean false none none
»»»» TravelAndTransportation boolean false none none
»»»» FuelPumpOnly boolean false none none
»»»» HardwareStores boolean false none none
»»» InternationalSpendEnabled boolean false none none
»»» IsDailySpendLimitEnabled boolean false none none
»»» DailySpendLimit number(double) false none none
»»» CardNotPresentUse boolean false none none
»»» CardPresence integer(int32) false none none
»»» UsePexAccountBalanceForAuths boolean false none none
»»» UseCustomerAuthDecision boolean false none none
»» ScheduledFunding ScheduledFunding false none Details about scheduled funding
»»» Amount number(double) true none Amount of scheduled funding, rounded to 2 decimal places
»»» Frequency string true none Describes when scheduled funding should occur.

Possible string values for Frequency parameter of scheduled funding are:
- '0' or 'DAY' - every Day
- '1' or 'MONDAY' - every Monday
- '2' or 'TUESDAY' - every Tuesday
- '3' or 'WEDNESDAY' - every Wednesday
- '4' or 'THURSDAY' - every Thursday
- '5' or 'FRIDAY' - every Friday
- '6' or 'SATURDAY' - every Saturday
- '7' or 'SUNDAY' - every Sunday
- '8' or 'FIRSTOFMONTH' - every 1st of the Month
»» CustomId string false none User defined Id which can be assigned to Card holder profile (alphanumeric up to 50 characters)

Enumerated Values

Property Value
Frequency DAY
Frequency MONDAY
Frequency TUESDAY
Frequency WEDNESDAY
Frequency THURSDAY
Frequency FRIDAY
Frequency SATURDAY
Frequency SUNDAY
Frequency FIRSTOFMONTH

Return all spending rulesets for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/SpendingRuleset',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/SpendingRuleset', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/SpendingRuleset',
{
  method: 'GET',

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

GET /SpendingRuleset

What it does:
Return details of all spending rulesets for the business.

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "SpendingRulesets": [
    {
      "RulesetId": 0,
      "SpendingRulesetCategories": {
        "CategoryId": 0,
        "AssociationsOrganizationsAllowed": false,
        "AutomotiveDealersAllowed": false,
        "EducationalServicesAllowed": false,
        "EntertainmentAllowed": false,
        "FuelPumpsAllowed": false,
        "GasStationsConvenienceStoresAllowed": false,
        "GroceryStoresAllowed": false,
        "HealthcareChildcareServicesAllowed": false,
        "ProfessionalServicesAllowed": false,
        "RestaurantsAllowed": false,
        "RetailStoresAllowed": false,
        "TravelTransportationAllowed": false,
        "HardwareStoresAllowed": false
      },
      "MccRestrictions": false,
      "BacctId": 0,
      "Name": "",
      "CountCardsPresent": 0,
      "DailySpendLimit": 0,
      "WeeklySpendLimit": 0,
      "MonthlySpendLimit": 0,
      "YearlySpendLimit": 0,
      "LifetimeSpendLimit": 0,
      "InternationalAllowed": false,
      "CardNotPresentAllowed": false,
      "CardPresence": 0,
      "UsePexAccountBalanceForAuths": false,
      "UseCustomerAuthDecision": false
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK GetSpendingRulesetsResponse

Update spending ruleset for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/SpendingRuleset',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/SpendingRuleset', headers = headers)

print(r.json())

const inputBody = '{
  "RulesetId": 0,
  "Name": "",
  "CountCardsPresent": 0,
  "DailySpendLimit": 0,
  "SpendingRulesetCategories": {
    "CategoryId": 0,
    "AssociationsOrganizationsAllowed": false,
    "AutomotiveDealersAllowed": false,
    "EducationalServicesAllowed": false,
    "EntertainmentAllowed": false,
    "FuelPumpsAllowed": false,
    "GasStationsConvenienceStoresAllowed": false,
    "GroceryStoresAllowed": false,
    "HealthcareChildcareServicesAllowed": false,
    "ProfessionalServicesAllowed": false,
    "RestaurantsAllowed": false,
    "RetailStoresAllowed": false,
    "TravelTransportationAllowed": false,
    "HardwareStoresAllowed": false
  },
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/SpendingRuleset',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /SpendingRuleset

What it does:
Modify an existing spending ruleset.

When you might use it.
1. Renaming the spend ruleset.
2. Resetting the daily spending limit (including the ability to assign no limit).
3. Allowing or not allowing international use.
4. Allowing or not allowing card not present use.
5. Turning merchant categories on or off.

Body parameter

{
  "RulesetId": 0,
  "Name": "",
  "CountCardsPresent": 0,
  "DailySpendLimit": 0,
  "SpendingRulesetCategories": {
    "CategoryId": 0,
    "AssociationsOrganizationsAllowed": false,
    "AutomotiveDealersAllowed": false,
    "EducationalServicesAllowed": false,
    "EntertainmentAllowed": false,
    "FuelPumpsAllowed": false,
    "GasStationsConvenienceStoresAllowed": false,
    "GroceryStoresAllowed": false,
    "HealthcareChildcareServicesAllowed": false,
    "ProfessionalServicesAllowed": false,
    "RestaurantsAllowed": false,
    "RetailStoresAllowed": false,
    "TravelTransportationAllowed": false,
    "HardwareStoresAllowed": false
  },
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body UpdateSpendingRulesetRequest true none

Example responses

200 Response

{
  "RulesetId": 0
}

Responses

Status Meaning Description Schema
200 OK OK SpendingRulesetResponse

Create spending ruleset for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/SpendingRuleset',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/SpendingRuleset', headers = headers)

print(r.json())

const inputBody = '{
  "Name": "",
  "DailySpendLimit": 0,
  "SpendingRulesetCategories": {
    "CategoryId": 0,
    "AssociationsOrganizationsAllowed": false,
    "AutomotiveDealersAllowed": false,
    "EducationalServicesAllowed": false,
    "EntertainmentAllowed": false,
    "FuelPumpsAllowed": false,
    "GasStationsConvenienceStoresAllowed": false,
    "GroceryStoresAllowed": false,
    "HealthcareChildcareServicesAllowed": false,
    "ProfessionalServicesAllowed": false,
    "RestaurantsAllowed": false,
    "RetailStoresAllowed": false,
    "TravelTransportationAllowed": false,
    "HardwareStoresAllowed": false
  },
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/SpendingRuleset',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /SpendingRuleset

What it does:
Create a new spending ruleset for the business.
Once the ruleset is created, it can be assigned to one or many cards.

A spending ruleset is a group of spend rules that can be applied to multiple card accounts. For example, if all cardholders should be allowed to spend at restaurants and fuel pumps, the administrator can create a spending ruleset that has only those merchant categories 'checked'. Every card with that ruleset applied can only spend at restaurants and fuel pumps.

At card creation, the spend rule defaults are:
- Daily spend limit NONE
- International spending is OFF
- All merchant categories are ON

If your business allows cardholders to "Use your PEX Account balance" for transactions, you must set a value for "DailySpendLimit" for those cardholders. The "DailySpendLimit" value must be less than or equal to the PEX assigned daily spend limit for your business (typically $5,000 USD).

CardNotPresentEnabled: This parameter is deprecated in favor of CardPresence.

CardPresence: Control how PEX Card can be used for purchases, either physically present at the point-of-sale or used virtually over the Internet or phone.
0 - Card present (in person) transaction only. If the cardholder only makes purchase in person, choose this option for better fraud protection.
1 - No restrictions. A cardholder can make purchases both in-person and online/over the internet.
2 - Card not present (online) transactions only. If the cardholder only makes purchases over the internet/online, choose this option for better fraud protection.

PEX has combined Merchant Category Codes (MCC) into larger groupings based upon merchant or service type. Below is the list of those combinations with examples of merchant types for each (this is not an exhaustive merchant listing):
- Associations & organizations: Post Office, local and federal government services, religious organizations
- Automotive dealers: Vehicle dealerships (car, RV, motorcycle, boat, recreational)
- Educational services: Schools, training programs
- Entertainment: Movies, bowling, golf, sports clubs
- Fuel & Convenience stores: Service stations (non-pump purchases), miscellaneous food stores, convenience stores and specialty markets
- Grocery stores: Food, bakeries, candy
- Hardware Stores: Hardware, building supplies, construction materials, paint stores, and industrial equipment.
- Healthcare & Childcare services: Medical services, hospitals, daycare
- Professional services: Heating, plumbing, HVAC, freight, storage, utilities, fuel oil, coal, dry cleaners
- Restaurants: Fast food and sit-down restaurants
- Retail stores: Clothing, office supplies, hardware, building supplies, furniture, electronics
- Travel & transportation: Airlines, rental cars, trains, tolls, hotels, parking
- Fuel Pump Only: Outdoor fuel pumps (i.e. Pay at the Pump)
- Hardware Stores: Hardware, building supplies, construction materials, paint stores, and industrial equipment.

Body parameter

{
  "Name": "",
  "DailySpendLimit": 0,
  "SpendingRulesetCategories": {
    "CategoryId": 0,
    "AssociationsOrganizationsAllowed": false,
    "AutomotiveDealersAllowed": false,
    "EducationalServicesAllowed": false,
    "EntertainmentAllowed": false,
    "FuelPumpsAllowed": false,
    "GasStationsConvenienceStoresAllowed": false,
    "GroceryStoresAllowed": false,
    "HealthcareChildcareServicesAllowed": false,
    "ProfessionalServicesAllowed": false,
    "RestaurantsAllowed": false,
    "RetailStoresAllowed": false,
    "TravelTransportationAllowed": false,
    "HardwareStoresAllowed": false
  },
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body CreateSpendingRulesetRequest true none

Example responses

200 Response

{
  "RulesetId": 0
}

Responses

Status Meaning Description Schema
200 OK OK CreateSpendingRulesetResponse

Delete spending ruleset for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.delete 'https://coreapi.pexcard.com/v4/SpendingRuleset',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.delete('https://coreapi.pexcard.com/v4/SpendingRuleset', headers = headers)

print(r.json())

const inputBody = '{
  "RulesetId": 0
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/SpendingRuleset',
{
  method: 'DELETE',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /SpendingRuleset

What it does:
Delete an existing spending ruleset for the business.
If one or more cards are assigned to a ruleset, that ruleset cannot be deleted.

Body parameter

{
  "RulesetId": 0
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body DeleteSpendingRulesetRequest true none

Example responses

200 Response

{
  "RulesetId": 0
}

Responses

Status Meaning Description Schema
200 OK OK SpendingRulesetResponse

Return a spending ruleset for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/SpendingRuleset/{Id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/SpendingRuleset/{Id}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/SpendingRuleset/{Id}',
{
  method: 'GET',

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

GET /SpendingRuleset/{Id}

What it does:
Retrieve details of a specific spending ruleset.

Parameters

Name In Type Required Description
Id path integer(int32) true none
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "SpendingRuleset": {
    "RulesetId": 0,
    "Name": "",
    "DailySpendLimit": 0,
    "SpendingRulesetCategories": {
      "CategoryId": 0,
      "AssociationsOrganizationsAllowed": false,
      "AutomotiveDealersAllowed": false,
      "EducationalServicesAllowed": false,
      "EntertainmentAllowed": false,
      "FuelPumpsAllowed": false,
      "GasStationsConvenienceStoresAllowed": false,
      "GroceryStoresAllowed": false,
      "HealthcareChildcareServicesAllowed": false,
      "ProfessionalServicesAllowed": false,
      "RestaurantsAllowed": false,
      "RetailStoresAllowed": false,
      "TravelTransportationAllowed": false,
      "HardwareStoresAllowed": false
    },
    "MccRestrictions": false,
    "InternationalAllowed": false,
    "CardNotPresentAllowed": false,
    "CardPresence": 0,
    "UsePexAccountBalanceForAuths": false,
    "UseCustomerAuthDecision": false
  }
}

Responses

Status Meaning Description Schema
200 OK OK GetSpendingRulesetResponse

Send test message to remote authorization server

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/TestRemoteAuthEndpoint',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/TestRemoteAuthEndpoint', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/TestRemoteAuthEndpoint',
{
  method: 'POST',

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

POST /TestRemoteAuthEndpoint

What it does:
Send test message to remote authorization server.

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "StatusCode": "",
  "Ticks": 0
}

Responses

Status Meaning Description Schema
200 OK OK RemoteAuthorizationResponse
400 Bad Request BadRequest None
408 Request Timeout RequestTimeout None

Note : Create and attach notes to transactions.

Create a network transaction note

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Note/NetworkTransactionNote',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Note/NetworkTransactionNote', headers = headers)

print(r.json())

const inputBody = '{
  "NoteText": "",
  "NetworkTransactionId": 0
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Note/NetworkTransactionNote',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /Note/NetworkTransactionNote

You may want to add a network transaction note to track a PO or invoice number.

Network transaction notes are alpha/numeric and can be added to cardholder funding, pending and settlement transactions. Notes can be viewed on the administration website in transaction details and on reports.

To add a note to a funding or settlement transaction, set Pending to false. For authorization/hold transactions, set Pending to true.

To retrieve the TransactionId, get a card transaction list using
GET /Details/AllCardholderTransactions
GET /Details/TransactionDetails
GET /Details/TransactionDetails/{Id}

Body parameter

{
  "NoteText": "",
  "NetworkTransactionId": 0
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body CreateNoteByNetworkTransactionIdRequest true none

Example responses

200 Response

{
  "Id": 0
}

Responses

Status Meaning Description Schema
200 OK OK NoteResponse

Update a transaction note

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Note/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Note/{id}', headers = headers)

print(r.json())

const inputBody = '{
  "NoteText": "",
  "Pending": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Note/{id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Note/{id}

To retrieve the NoteId, get a card transaction list using
GET /Details/AllCardholderTransactions
GET /Details/TransactionDetails
GET /Details/TransactionDetails/{Id}

To edit a note on a funding or settlement transaction, set Pending to false. For authorization/hold transactions, set Pending to true.

Transaction notes can also be edited from the administration website in transaction detail.

Body parameter

{
  "NoteText": "",
  "Pending": false
}

Parameters

Name In Type Required Description
id path integer(int64) true Note Ic
Authorization header string true token {USERTOKEN}
body body NoteRequest true Details required to update note

Example responses

200 Response

{
  "Id": 0
}

Responses

Status Meaning Description Schema
200 OK Success NoteResponse
403 Forbidden Note not found None

Create a transaction note

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Note',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Note', headers = headers)

print(r.json())

const inputBody = '{
  "TransactionId": 0,
  "NoteText": "",
  "Pending": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Note',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /Note

You may want to add a transaction note to track a PO or invoice number.

Transaction notes are alpha/numeric and can be added to cardholder funding, pending and settlement transactions. Notes can be viewed on the administration website in transaction details and on reports.

To add a note to a funding or settlement transaction, set Pending to false. For authorization/hold transactions, set Pending to true.

To retrieve the TransactionId, get a card transaction list using
GET /Details/AllCardholderTransactions
GET /Details/TransactionDetails
GET /Details/TransactionDetails/{Id}

Body parameter

{
  "TransactionId": 0,
  "NoteText": "",
  "Pending": false
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body CreateNoteRequest true none

Example responses

200 Response

{
  "Id": 0
}

Responses

Status Meaning Description Schema
200 OK OK NoteResponse

Delete a transaction note

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.delete 'https://coreapi.pexcard.com/v4/Note/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.delete('https://coreapi.pexcard.com/v4/Note/{id}', headers = headers)

print(r.json())

const inputBody = '{
  "Pending": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Note/{id}',
{
  method: 'DELETE',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /Note/{id}

To retrieve the NoteId, get a card transaction list using
GET /Details/AllCardholderTransactions
GET /Details/TransactionDetails
GET /Details/TransactionDetails/{Id}

To delete a note on a funding or settlement transaction, set Pending to false. For authorization/hold transactions, set Pending to true.

Transaction notes can also be deleted from the administration website in transaction detail.

Body parameter

{
  "Pending": false
}

Parameters

Name In Type Required Description
id path integer(int64) true none
Authorization header string true token {USERTOKEN}
body body DeleteNoteRequest true none

Example responses

200 Response

{
  "Id": 0
}

Responses

Status Meaning Description Schema
200 OK Success NoteResponse
403 Forbidden Note not found None

Group : Manage groups and assign cards.

Return a list of groups for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Group',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Group', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Group',
{
  method: 'GET',

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

GET /Group

Retrieve the list of groups for the business, including the Id and group name.

Group is an administrator defined category that can be used for sorting and reporting. For example, your business has an office in both Boston and New York City, by creating and assigning cards to those Groups, you can sort cards on the dashboard.pexcard.com website so that the Boston cards are listed together at the top. In transaction reports, you can sort card spending by Group to roll up total spending for each office location.

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "Groups": [
    {
      "Id": 0,
      "Name": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK GetGroupsResponse

Update the group name

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Group/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Group/{id}', headers = headers)

print(r.json())

const inputBody = '{
  "Name": ""
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Group/{id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Group/{id}

To retrieve the GroupID, use Get /Group

Edit the group name. Cardholders assigned to the group will be updated with the new group name. The administrator website will display fourteen (14) characters of the group name in the cardlist.

Group is an administrator defined category that can be used for sorting and reporting. For example, your business has an office in both Boston and New York City, by creating and assigning cards to those Groups, you can sort cards on the dashboard.pexcard.com website so that the Boston cards are listed together at the top. In transaction reports, you can sort card spending by Group to roll up total spending for each office location.

Body parameter

{
  "Name": ""
}

Parameters

Name In Type Required Description
id path integer(int32) true none
Authorization header string true token {USERTOKEN}
body body UpdateGroupRequest true Details required to update group name

Example responses

200 Response

{
  "Group": {
    "Id": 0,
    "Name": ""
  }
}

Responses

Status Meaning Description Schema
200 OK Success UpdateGroupResponse
403 Forbidden

- Group has already been added
- Group ID is invalid |None|

Create a group

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Group',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Group', headers = headers)

print(r.json())

const inputBody = '{
  "Name": ""
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Group',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /Group

Add a group to the business. The administrator website will display fourteen (14) characters of the group name in the cardlist.

Group is an administrator defined category that can be used for sorting and reporting. For example, your business has an office in both Boston and New York City, by creating and assigning cards to those Groups, you can sort cards on the dashboard.pexcard.com website so that the Boston cards are listed together at the top. In transaction reports, you can sort card spending by Group to roll up total spending for each office location.

Body parameter

{
  "Name": ""
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body CreateGroupRequest true Group name

Example responses

200 Response

{
  "Group": {
    "Id": 0,
    "Name": ""
  }
}

Responses

Status Meaning Description Schema
200 OK Success CreateGroupResponse
403 Forbidden Group has already been added None

Delete a group

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.delete 'https://coreapi.pexcard.com/v4/Group/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.delete('https://coreapi.pexcard.com/v4/Group/{id}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Group/{id}',
{
  method: 'DELETE',

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

DELETE /Group/{id}

Delete the group. If cardholders are assigned to a group that is deleted, the cardholders will no longer have a group set.

Group is an administrator defined category that can be used for sorting and reporting. For example, your business has an office in both Boston and New York City, by creating and assigning cards to those Groups, you can sort cards on the dashboard.pexcard.com website so that the Boston cards are listed together at the top. In transaction reports, you can sort card spending by Group to roll up total spending for each office location.

Parameters

Name In Type Required Description
id path integer(int32) true none
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "GroupId": 0
}

Responses

Status Meaning Description Schema
200 OK Success RemoveGroupResponse
403 Forbidden Group ID is Invalid None

Return all cardholders in a group

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Group/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Group/{id}', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Group/{id}',
{
  method: 'GET',

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

GET /Group/{id}

To retrieve the GroupID, use Get /Group

Return all cardholders assigned to a group.

Group is an administrator defined category that can be used for sorting and reporting. For example, your business has an office in both Boston and New York City. By creating and assigning cards to those groups, you can sort cards on the admin website so that the Boston cards are listed together at the top. In transaction reports, you can sort card spending by group to roll up total spending for each office location.

Parameters

Name In Type Required Description
id path integer(int32) true Group ID
Authorization header string true token {USERTOKEN}

Example responses

200 Response

[
  {
    "FirstName": "",
    "MiddleName": "",
    "LastName": "",
    "AccountId": 0,
    "AccountNumber": "",
    "AvailableBalance": 0,
    "LedgerBalance": 0,
    "SpendRules": false,
    "AccountCreationTime": "",
    "ManualStatus": "",
    "SystemStatus": "",
    "PinSet": false,
    "BSAcctId": 0,
    "IsVirtual": false,
    "Group": {
      "Id": 0,
      "GroupName": ""
    },
    "SpendingRulesetModel": {
      "RulesetId": 0,
      "Name": ""
    },
    "EmbossingDetails": [
      {
        "AccountId": 0,
        "CardNumber": "",
        "ManualStatus": "",
        "SystemStatus": "",
        "CreatedDate": "",
        "PlasticDetails": [
          {
            "PlasticSequence": "",
            "ManualStatus": "",
            "IssuedDate": "",
            "ExpirationDate": ""
          }
        ]
      }
    ],
    "CustomId": ""
  }
]

Responses

Status Meaning Description Schema
200 OK OK Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [CardHolderDetailsResponse] false none [Card Holder Details Response]
» CardHolderDetailsResponse CardHolderDetailsResponse false none Card Holder Details Response
»» FirstName string false none Firs tName
»» MiddleName string false none Middle Name
»» LastName string false none Last Name
»» AccountId integer(int32) false none Account Id
»» AccountNumber string false none Account Number
»» AvailableBalance number(double) false none Available Balance
»» LedgerBalance number(double) false none Ledger Balance
»» SpendRules boolean false none Spend Rules
»» AccountCreationTime string(date-time) false none Account Creation Time
»» ManualStatus string false none Manual Status
»» SystemStatus string false none System Status
»» PinSet boolean false none Pin Set
»» BSAcctId integer(int32) false none Business Account Id
»» IsVirtual boolean false none Identifies virtual cardholder
»» Group CardholderGroup false none Details about a cardholder group
»»» Id integer(int32) true none Unique id of the cardholder group
»»» GroupName string true none Name of the cardholder group
»» SpendingRulesetModel SpendingRulesetModel false none Spending Ruleset Model
»»» RulesetId integer(int32) false none RulesetId
»»» Name string false none Name
»» EmbossingDetails [EmbossingDetails] false none Embossing Details
»»» EmbossingDetails EmbossingDetails false none Embossing Details
»»»» AccountId integer(int32) false none Account Id
»»»» CardNumber string false none Card Number
»»»» ManualStatus string false none Manual Status
»»»» SystemStatus string false none System Status
»»»» CreatedDate string(date-time) false none Created Date
»»»» PlasticDetails [PlasticDetials] false none Plastic Details
»»»»» PlasticDetials PlasticDetials false none Plastic Detials
»»»»»» PlasticSequence string false none Plastic Sequence
»»»»»» ManualStatus string false none Manual Status
»»»»»» IssuedDate string(date-time) false none Issued Date
»»»»»» ExpirationDate string(date-time) false none Expiration Date
»» CustomId string false none User defined Id which can be assigned to Card holder profile (alphanumeric up to 50 characters)

Bulk : Perform bulk operations on card accounts.

Adjust all card available balances to $0.00 for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.post 'https://coreapi.pexcard.com/v4/Bulk/Zero',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.post('https://coreapi.pexcard.com/v4/Bulk/Zero', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Bulk/Zero',
{
  method: 'POST',

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

POST /Bulk/Zero

This is an offline process to add or remove available funds from every card account for the business. The system will query all card available balances and add or remove that dollar value so that the available balance is $0.00.

This call can take the place of individually retrieving all card balances and calling card fund for each account individually.

If you fund the card account while this job is running, those funds will be reflected in the available balance. However, the job will not drive the account negative if funds are no longer in the account.

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "TotalNumberOfCards": 0
}

Responses

Status Meaning Description Schema
200 OK Success BulkResponse

Fund all cards for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Bulk/FundAllCards',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Bulk/FundAllCards', headers = headers)

print(r.json())

const inputBody = '{
  "Amount": 0
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Bulk/FundAllCards',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Bulk/FundAllCards

This is an offline process to add funds to all cards in the business for a specified amount.

Cards with status Inactive, Active and Blocked will be funded. Cards with status Closed will not be funded.

Body parameter

{
  "Amount": 0
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body FundingRequest true none

Example responses

200 Response

{
  "TotalNumberOfCards": 0
}

Responses

Status Meaning Description Schema
200 OK Success BulkResponse
400 Bad Request Invalid request None

Bulk fund on batches of cards in the business.

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Bulk/FundMultipleCards',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Bulk/FundMultipleCards', headers = headers)

print(r.json())

const inputBody = '{
  "Cards": [
    {
      "AccountId": 0,
      "Amount": 0
    }
  ],
  "TransferType": ""
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Bulk/FundMultipleCards',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Bulk/FundMultipleCards

This endpoint is not part of our standard API offering. To access the FundMultipleCards endpoint please send an email with your request to apisupport@pexcard.com. This is a bulk process to execute balance adjustments on multiple cards in the business.

Funding of up to 25 cards per batch are allowed. Cards with status of Active, Inactive and Blocked will be funded. Cards with status Closed will not be funded.

Body parameter

{
  "Cards": [
    {
      "AccountId": 0,
      "Amount": 0
    }
  ],
  "TransferType": ""
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body FundMultipleCardsRequest true none

Example responses

200 Response

{
  "Success": false,
  "Results": [
    {
      "BusinessTransactionId": 0,
      "BusinessCurrentBalance": 0,
      "AccountId": 0,
      "TransactionId": 0,
      "CurrentBalance": 0,
      "ResponseCode": 0,
      "Message": ""
    }
  ],
  "Errors": [
    {
      "AccountId": 0,
      "ResponseCode": 0,
      "Message": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success FundMultipleCardsResponse
206 Partial Content Partial Success None
400 Bad Request Failed Request None

Update scheduled funding rule for all cards in the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Bulk/SetAllCardsScheduledFunding',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Bulk/SetAllCardsScheduledFunding', headers = headers)

print(r.json())

const inputBody = '{
  "Frequency": "",
  "Amount": 0
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Bulk/SetAllCardsScheduledFunding',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Bulk/SetAllCardsScheduledFunding

Update a scheduled funding rule for all cards in the business to the Amount and Frequency values specified.

Valid scheduled funding frequencies are:
0 - Daily
1 - Monday
2 - Tuesday
3 - Wednesday
4 - Thursday
5 - Friday
6 - Saturday
7 - Sunday
8 - First of each month

Body parameter

{
  "Frequency": "",
  "Amount": 0
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body ScheduledFundingRequest true none

Example responses

200 Response

{
  "TotalNumberOfCards": 0
}

Responses

Status Meaning Description Schema
200 OK Success BulkResponse
400 Bad Request Invalid request None

Remove scheduled funding rule for all cards in the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.delete 'https://coreapi.pexcard.com/v4/Bulk/RemoveAllCardsScheduledFunding',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.delete('https://coreapi.pexcard.com/v4/Bulk/RemoveAllCardsScheduledFunding', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Bulk/RemoveAllCardsScheduledFunding',
{
  method: 'DELETE',

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

DELETE /Bulk/RemoveAllCardsScheduledFunding

Remove a scheduled funding rule for all cards in the business. Once the funding rule is deleted, the system will no longer add funds to any card balance.

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "TotalNumberOfCards": 0
}

Responses

Status Meaning Description Schema
200 OK Success BulkResponse

Return all spending rulesets for the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/Bulk/GetSpendingRulesets',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/Bulk/GetSpendingRulesets', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Bulk/GetSpendingRulesets',
{
  method: 'GET',

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

GET /Bulk/GetSpendingRulesets

Return all spending rulesets for the business.

A spending ruleset is a group of spend rules that can be applied to multiple card accounts. For example, if all cardholders should be allowed to spend funds at restaurants and fuel pumps, the administrator can create a spending ruleset that has only those merchant categories 'checked'. Every card with that ruleset applied can only spend at restaurants and fuel pumps.

Spending rulesets must be created in the administration website.

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}

Example responses

200 Response

[
  {
    "RulesetId": 0,
    "SpendingRulesetCategories": {
      "CategoryId": 0,
      "AssociationsOrganizationsAllowed": false,
      "AutomotiveDealersAllowed": false,
      "EducationalServicesAllowed": false,
      "EntertainmentAllowed": false,
      "FuelPumpsAllowed": false,
      "GasStationsConvenienceStoresAllowed": false,
      "GroceryStoresAllowed": false,
      "HealthcareChildcareServicesAllowed": false,
      "ProfessionalServicesAllowed": false,
      "RestaurantsAllowed": false,
      "RetailStoresAllowed": false,
      "TravelTransportationAllowed": false,
      "HardwareStoresAllowed": false
    },
    "MccRestrictions": false,
    "BacctId": 0,
    "Name": "",
    "CountCardsPresent": 0,
    "DailySpendLimit": 0,
    "WeeklySpendLimit": 0,
    "MonthlySpendLimit": 0,
    "YearlySpendLimit": 0,
    "LifetimeSpendLimit": 0,
    "InternationalAllowed": false,
    "CardNotPresentAllowed": false,
    "CardPresence": 0,
    "UsePexAccountBalanceForAuths": false,
    "UseCustomerAuthDecision": false
  }
]

Responses

Status Meaning Description Schema
200 OK OK Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [SpendingRuleset] false none none
» SpendingRuleset SpendingRuleset false none none
»» RulesetId integer(int32) false none none
»» SpendingRulesetCategories SpendingRulesetCategories false none none
»»» CategoryId integer(int32) false none none
»»» AssociationsOrganizationsAllowed boolean false none none
»»» AutomotiveDealersAllowed boolean false none none
»»» EducationalServicesAllowed boolean false none none
»»» EntertainmentAllowed boolean false none none
»»» FuelPumpsAllowed boolean false none none
»»» GasStationsConvenienceStoresAllowed boolean false none none
»»» GroceryStoresAllowed boolean false none none
»»» HealthcareChildcareServicesAllowed boolean false none none
»»» ProfessionalServicesAllowed boolean false none none
»»» RestaurantsAllowed boolean false none none
»»» RetailStoresAllowed boolean false none none
»»» TravelTransportationAllowed boolean false none none
»»» HardwareStoresAllowed boolean false none none
»» MccRestrictions boolean false read-only none
»» BacctId integer(int32) false none none
»» Name string true none none
»» CountCardsPresent integer(int32) false none none
»» DailySpendLimit number(double) false none none
»» WeeklySpendLimit number(double) false none none
»» MonthlySpendLimit number(double) false none none
»» YearlySpendLimit number(double) false none none
»» LifetimeSpendLimit number(double) false none none
»» InternationalAllowed boolean false none none
»» CardNotPresentAllowed boolean false none none
»» CardPresence integer(int32) false none none
»» UsePexAccountBalanceForAuths boolean false none none
»» UseCustomerAuthDecision boolean false none none

Update spend rules for all cards in the business

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/Bulk/SetAllCardsSpendingRuleset',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/Bulk/SetAllCardsSpendingRuleset', headers = headers)

print(r.json())

const inputBody = '{
  "RulesetId": 0
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/Bulk/SetAllCardsSpendingRuleset',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /Bulk/SetAllCardsSpendingRuleset

To retrieve the RulesetId, use Get /Bulk/GetSpendingRulesets and apply that RulesetId to all cards.

Changes to spend rules happen in real-time. Be sure the cardholder is aware of the limitations being set.

Cardholders using PEX card do not have cash access. ATMs, Money Orders, Money Remittance (e.g. MoneyGram) and other cash transactions, such as purchasing casino chips, will be declined at all times.

Spending rulesets must be created in the administration website.

Body parameter

{
  "RulesetId": 0
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body SpendingRulesetRequest true none

Example responses

200 Response

{
  "TotalNumberOfCards": 0
}

Responses

Status Meaning Description Schema
200 OK Success BulkResponse
400 Bad Request Invalid request None

TokenProvisioning : Manage token provisioning.

Return the token provisioning mode of the business account

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/TokenProvisioning/Mode',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/TokenProvisioning/Mode', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/TokenProvisioning/Mode',
{
  method: 'GET',

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

GET /TokenProvisioning/Mode

Return the token provisioning mode of the business account

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "TokenProvisioningMode": ""
}

Responses

Status Meaning Description Schema
200 OK Success GetBusinessTokenProvisioningModeResponse
401 Unauthorized Standard security response if token is invalid None
500 Internal Server Error System error None

Return the token provisioning mode of the cardholder account

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/TokenProvisioning/{id}/Mode',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/TokenProvisioning/{id}/Mode', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/TokenProvisioning/{id}/Mode',
{
  method: 'GET',

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

GET /TokenProvisioning/{id}/Mode

Return the token provisioning mode of the cardholder account

Parameters

Name In Type Required Description
id path integer(int32) true none
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "TokenProvisioningMode": ""
}

Responses

Status Meaning Description Schema
200 OK Success GetCardholderTokenProvisioningModeResponse
401 Unauthorized Standard security response if token is invalid None
403 Forbidden

- Invalid card account ID
- Must be card account ID
- This business does not support the Token Provisioning Feature |None| |500|Internal Server Error|System error|None|

Change the token provisioning mode of the cardholder account

Code samples

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.put 'https://coreapi.pexcard.com/v4/TokenProvisioning/{id}/Mode',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.put('https://coreapi.pexcard.com/v4/TokenProvisioning/{id}/Mode', headers = headers)

print(r.json())

const inputBody = '{
  "TokenProvisioningMode": ""
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/TokenProvisioning/{id}/Mode',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /TokenProvisioning/{id}/Mode

Change the token provisioning mode of the cardholder account

Body parameter

{
  "TokenProvisioningMode": ""
}

Parameters

Name In Type Required Description
id path integer(int32) true none
Authorization header string true token {USERTOKEN}
body body ChangeCardholderTokenProvisioningModeRequest true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK Success Inline
401 Unauthorized Standard security response if token is invalid None
403 Forbidden

- Invalid card account ID
- Must be card account ID
- This business does not support the Token Provisioning Feature |None| |500|Internal Server Error|System error|None|

Response Schema

Status Code 200

IHttpActionResult

Name Type Required Restrictions Description

Return the tokens of the cardholder account

Code samples

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'string'
}

result = RestClient.get 'https://coreapi.pexcard.com/v4/TokenProvisioning/{id}/IssuesTokens',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'string'
}

r = requests.get('https://coreapi.pexcard.com/v4/TokenProvisioning/{id}/IssuesTokens', headers = headers)

print(r.json())


const headers = {
  'Accept':'application/json',
  'Authorization':'string'
};

fetch('https://coreapi.pexcard.com/v4/TokenProvisioning/{id}/IssuesTokens',
{
  method: 'GET',

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

GET /TokenProvisioning/{id}/IssuesTokens

Return the tokens of the cardholder account

Parameters

Name In Type Required Description
id path integer(int32) true none
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "TokenList": [
    {
      "ReferenceId": "",
      "AccountId": 0,
      "CardId": 0,
      "Last4CardNumber": "",
      "Last4TokenNumber": "",
      "ExpirationDate": "",
      "DeviceName": "",
      "WalletName": "",
      "Status": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success GetIssuedTokensResponse
401 Unauthorized Standard security response if token is invalid None
403 Forbidden

- Invalid card account ID
- Must be card account ID
- This business does not support the Token Provisioning Feature |None| |500|Internal Server Error|System error|None|

Schemas

RenewTokenResponse

{
  "Username": "",
  "Token": "",
  "AppId": "",
  "TokenExpiration": ""
}

RenewTokenResponse

Properties

Name Type Required Restrictions Description
Username string true none Username associated with the token
Token string true none The new token that has been generated
AppId string true none AppId associated with the token
TokenExpiration string(date-time) true none Time token will expire

GetAllTokensResponse

{
  "Tokens": [
    {
      "Token": "",
      "SecondsUntilExpire": 0,
      "ExpirationTime": ""
    }
  ]
}

GetAllTokensResponse

Properties

Name Type Required Restrictions Description
Tokens [AccessToken] false none List of three scale tokens

AccessToken

{
  "Token": "",
  "SecondsUntilExpire": 0,
  "ExpirationTime": ""
}

AccessToken

Properties

Name Type Required Restrictions Description
Token string false none 3scale access token
SecondsUntilExpire integer(int32) false none Seconds until token expires
ExpirationTime string(date-time) false none Time token will expire

GetTokenResponse

{
  "Tokens": [
    {
      "Username": "",
      "AppId": "",
      "Token": "",
      "TokenExpiration": ""
    }
  ]
}

GetTokenResponse

Properties

Name Type Required Restrictions Description
Tokens [TokenData] false none List of three scale tokens

TokenData

{
  "Username": "",
  "AppId": "",
  "Token": "",
  "TokenExpiration": ""
}

TokenData

Properties

Name Type Required Restrictions Description
Username string true none Username associated with the token
AppId string true none AppId associated with the token
Token string true none 3scale access token
TokenExpiration string(date-time) true none Time token will expire

PostTokenRequest

{
  "Username": "",
  "Password": ""
}

PostTokenRequest

Properties

Name Type Required Restrictions Description
Username string true none Admin username
Password string true none Admin password

PostTokenResponse

{
  "Token": ""
}

PostTokenResponse

Properties

Name Type Required Restrictions Description
Token string true none The generated token

GetAdvancedSpendRulesResponse

{
  "AdvancedSpendRules": {
    "MerchantCategories": [
      {
        "Id": 0,
        "Name": "",
        "Description": "",
        "TransactionLimit": 0,
        "DailySpendLimit": 0,
        "WeeklySpendLimit": 0,
        "MonthlySpendLimit": 0,
        "YearlySpendLimit": 0,
        "LifetimeSpendLimit": 0
      }
    ],
    "InternationalSpendEnabled": false,
    "IsDailySpendLimitEnabled": false,
    "DailySpendLimit": 0,
    "WeeklySpendLimit": 0,
    "MonthlySpendLimit": 0,
    "YearlySpendLimit": 0,
    "LifetimeSpendLimit": 0,
    "CardNotPresentUse": false,
    "CardPresence": 0,
    "UsePexAccountBalanceForAuths": false,
    "UseCustomerAuthDecision": false,
    "DaysOfWeekRestrictions": [
      "string"
    ],
    "UsStateRestrictions": [
      "string"
    ]
  }
}

GetAdvancedSpendRulesResponse

Properties

Name Type Required Restrictions Description
AdvancedSpendRules AdvancedSpendRulesResponse true none Advanced Spend Rules Response

AdvancedSpendRulesResponse

{
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "Description": "",
      "TransactionLimit": 0,
      "DailySpendLimit": 0,
      "WeeklySpendLimit": 0,
      "MonthlySpendLimit": 0,
      "YearlySpendLimit": 0,
      "LifetimeSpendLimit": 0
    }
  ],
  "InternationalSpendEnabled": false,
  "IsDailySpendLimitEnabled": false,
  "DailySpendLimit": 0,
  "WeeklySpendLimit": 0,
  "MonthlySpendLimit": 0,
  "YearlySpendLimit": 0,
  "LifetimeSpendLimit": 0,
  "CardNotPresentUse": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false,
  "DaysOfWeekRestrictions": [
    "string"
  ],
  "UsStateRestrictions": [
    "string"
  ]
}

AdvancedSpendRulesResponse

Properties

Name Type Required Restrictions Description
MerchantCategories [MerchantCategoryResponse] false none List of merchant categories
InternationalSpendEnabled boolean false none Whether or not international spend is enabled
IsDailySpendLimitEnabled boolean false none Whether or not a daily spend limit is set
DailySpendLimit number(double) false none Daily spend limit, rounded to 2 decimal places
WeeklySpendLimit number(double) false none Weekly spend limit, rounded to 2 decimal places
MonthlySpendLimit number(double) false none Monthly spend limit, rounded to 2 decimal places
YearlySpendLimit number(double) false none Yearly spend limit, rounded to 2 decimal places
LifetimeSpendLimit number(double) false none Lifetime spend limit, rounded to 2 decimal places
CardNotPresentUse boolean false none Whether or not card is present to use
CardPresence integer(int32) false none Used to evaluate spend policy based on physical or virtual use of card
UsePexAccountBalanceForAuths boolean false none Whether or not auto business balance funding to use
UseCustomerAuthDecision boolean false none Whether or not decision control allowed to use
DaysOfWeekRestrictions [string] false none Whether or not to limit days of the week for spend
UsStateRestrictions [string] false none Whether or not to limit US States spend

MerchantCategoryResponse

{
  "Id": 0,
  "Name": "",
  "Description": "",
  "TransactionLimit": 0,
  "DailySpendLimit": 0,
  "WeeklySpendLimit": 0,
  "MonthlySpendLimit": 0,
  "YearlySpendLimit": 0,
  "LifetimeSpendLimit": 0
}

MerchantCategoryResponse

Properties

Name Type Required Restrictions Description
Id integer(int32) false none Merchant Category Id
Name string false none Merchant Category Name
Description string false none Merchant Category Description
TransactionLimit number(double) false none Transaction limit, rounded to 2 decimal places
DailySpendLimit number(double) false none Daily spend limit, rounded to 2 decimal places
WeeklySpendLimit number(double) false none Weekly spend limit, rounded to 2 decimal places
MonthlySpendLimit number(double) false none Monthly spend limit, rounded to 2 decimal places
YearlySpendLimit number(double) false none Yearly spend limit, rounded to 2 decimal places
LifetimeSpendLimit number(double) false none Lifetime spend limit, rounded to 2 decimal places

SetAdvancedSpendRulesRequest

{
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "TransactionLimit": 0,
      "DailySpendLimit": 0,
      "WeeklySpendLimit": 0,
      "MonthlySpendLimit": 0,
      "YearlySpendLimit": 0,
      "LifetimeSpendLimit": 0
    }
  ],
  "InternationalSpendEnabled": false,
  "DailySpendLimit": 0,
  "WeeklySpendLimit": 0,
  "MonthlySpendLimit": 0,
  "YearlySpendLimit": 0,
  "LifetimeSpendLimit": 0,
  "CardNotPresentUse": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false,
  "DaysOfWeekRestrictions": [
    "string"
  ],
  "UsStateRestrictions": [
    "string"
  ]
}

SetAdvancedSpendRulesRequest

Properties

Name Type Required Restrictions Description
MerchantCategories [MerchantCategoryRequest] false none List of merchant categories
InternationalSpendEnabled boolean false none Whether or not international spend is enabled
DailySpendLimit number(double) false none Daily spend limit, rounded to 2 decimal places
WeeklySpendLimit number(double) false none Weekly spend limit, rounded to 2 decimal places
MonthlySpendLimit number(double) false none Monthly spend limit, rounded to 2 decimal places
YearlySpendLimit number(double) false none Yearly spend limit, rounded to 2 decimal places
LifetimeSpendLimit number(double) false none Lifetime spend limit, rounded to 2 decimal places
CardNotPresentUse boolean false none Whether or not card is present to use
CardPresence integer(int32) false none Whether or not card is present to use
UsePexAccountBalanceForAuths boolean false none Whether or not auto business balance funding to use
UseCustomerAuthDecision boolean false none Whether or not decision control allowed to use
DaysOfWeekRestrictions [string] false none Whether or not limit days of the week for spend
UsStateRestrictions [string] false none Whether or not limit US States for spend

MerchantCategoryRequest

{
  "Id": 0,
  "Name": "",
  "TransactionLimit": 0,
  "DailySpendLimit": 0,
  "WeeklySpendLimit": 0,
  "MonthlySpendLimit": 0,
  "YearlySpendLimit": 0,
  "LifetimeSpendLimit": 0
}

MerchantCategoryRequest

Properties

Name Type Required Restrictions Description
Id integer(int32) false none Merchant Category Id
Name string false none Merchant Category Name
TransactionLimit number(double) false none Transaction Limit, rounded to 2 decimal places
DailySpendLimit number(double) false none Daily spend limit, rounded to 2 decimal places
WeeklySpendLimit number(double) false none Weekly spend limit, rounded to 2 decimal places
MonthlySpendLimit number(double) false none Monthly spend limit, rounded to 2 decimal places
YearlySpendLimit number(double) false none Yearly spend limit, rounded to 2 decimal places
LifetimeSpendLimit number(double) false none Lifetime spend limit, rounded to 2 decimal places

SetCardholderPinRequest

{
  "Pin": ""
}

SetCardholderPinRequest

Properties

Name Type Required Restrictions Description
Pin string true none 4 digit PIN

SetCardholderGroupRequest

{
  "GroupId": 0,
  "AcctId": 0
}

SetCardholderGroupRequest

Properties

Name Type Required Restrictions Description
GroupId integer(int32) true none Group ID
AcctId integer(int32) true none Account ID

FundResponse

{
  "AccountId": 0,
  "AvailableBalance": 0,
  "LedgerBalance": 0
}

FundResponse

Properties

Name Type Required Restrictions Description
AccountId integer(int32) true none Unique id of the cardholder account
AvailableBalance number(double) true none Available balance for the card account, rounded to 2 decimal places
LedgerBalance number(double) true none Ledger balance for the card account, rounded to 2 decimal places

CardOrderResponse

{
  "CardOrderId": 0,
  "OrderDateTime": "",
  "UserName": "",
  "BusinessAccountId": 0,
  "Cards": [
    {
      "AcctId": 0,
      "Status": "",
      "FirstName": "",
      "MiddleName": "",
      "LastName": "",
      "DateOfBirth": "",
      "HomePhone": "",
      "MobilePhone": "",
      "Email": "",
      "HomeAddress": {
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": "",
        "Country": ""
      },
      "ShippingAddress": {
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": "",
        "Country": ""
      },
      "Recipient": "",
      "ShipToShippingAddress": false,
      "ShippingContactNumber": "",
      "BundleCards": false,
      "ShippingMethod": "",
      "ShippingDate": "",
      "Errors": [
        {
          "Code": "",
          "Message": ""
        }
      ],
      "FailReason": "",
      "AccountNumber": "",
      "SpendingRulesetId": 0,
      "GroupId": 0,
      "CustomId": ""
    }
  ]
}

CardOrderResponse

Properties

Name Type Required Restrictions Description
CardOrderId integer(int32) false none order id
OrderDateTime string(date-time) false none date and time of order
UserName string false none admin username
BusinessAccountId integer(int32) false none Business Account ID
Cards [CardHolderCardResponse] false none Cards

CardHolderCardResponse

{
  "AcctId": 0,
  "Status": "",
  "FirstName": "",
  "MiddleName": "",
  "LastName": "",
  "DateOfBirth": "",
  "HomePhone": "",
  "MobilePhone": "",
  "Email": "",
  "HomeAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "ShippingAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "Recipient": "",
  "ShipToShippingAddress": false,
  "ShippingContactNumber": "",
  "BundleCards": false,
  "ShippingMethod": "",
  "ShippingDate": "",
  "Errors": [
    {
      "Code": "",
      "Message": ""
    }
  ],
  "FailReason": "",
  "AccountNumber": "",
  "SpendingRulesetId": 0,
  "GroupId": 0,
  "CustomId": ""
}

CardHolderCardResponse

Properties

Name Type Required Restrictions Description
AcctId integer(int32) false none Acct ID
Status string false none Status
FirstName string false none First Name
MiddleName string false none Middle Name
LastName string false none Last Name
DateOfBirth string(date-time) false none Date of Birth
HomePhone string false none Home Phone
MobilePhone string false none Mobile Phone
Email string false none Email
HomeAddress Address false none none
ShippingAddress Address false none none
Recipient string false none Recipient
ShipToShippingAddress boolean false none Ship to Shipping Address Flag
ShippingContactNumber string false none Shipping Contact Number
BundleCards boolean false none Bundle Cards Flag
ShippingMethod string false none Shipping Method
ShippingDate string(date-time) false none Shipping Date
Errors [Error] false none Error Message
FailReason string false none Fail reason
AccountNumber string false none Account Number
SpendingRulesetId integer(int32) false none Spending Ruleset ID
GroupId integer(int32) false none Group ID
CustomId string false none User defined Id which can be assigned to Card holder profile (alphanumeric up to 50 characters)

Address

{
  "AddressLine1": "",
  "AddressLine2": "",
  "City": "",
  "State": "",
  "PostalCode": "",
  "Country": ""
}

Address

Properties

Name Type Required Restrictions Description
AddressLine1 string true none none
AddressLine2 string false none none
City string true none none
State string true none none
PostalCode string true none none
Country string false read-only none

Error

{
  "Code": "",
  "Message": ""
}

Error

Properties

Name Type Required Restrictions Description
Code string false none Error Code
Message string false none Error Message

GetCardOrderRequest

{
  "StartDate": "",
  "EndDate": ""
}

GetCardOrderRequest

Properties

Name Type Required Restrictions Description
StartDate string(date-time) false none Start date (format - YYYY-MM-DDThh:mm:ss)
EndDate string(date-time) false none End date (format - YYYY-MM-DDThh:mm:ss)

GetCardOrderResponse

{
  "CardOrders": [
    {
      "CardOrderId": 0,
      "OrderDateTime": "",
      "UserName": "",
      "BusinessAdminId": 0,
      "BusinessAccountId": 0,
      "NumberOfCards": 0
    }
  ]
}

GetCardOrderResponse

Properties

Name Type Required Restrictions Description
CardOrders [SingleCardOrderResponse] false none List of card order objects

SingleCardOrderResponse

{
  "CardOrderId": 0,
  "OrderDateTime": "",
  "UserName": "",
  "BusinessAdminId": 0,
  "BusinessAccountId": 0,
  "NumberOfCards": 0
}

SingleCardOrderResponse

Properties

Name Type Required Restrictions Description
CardOrderId integer(int32) false none Card order id
OrderDateTime string(date-time) false none Order date
UserName string false none Order creator
BusinessAdminId integer(int32) false none Administrator id who created card order
BusinessAccountId integer(int32) false none Business associated with order
NumberOfCards integer(int32) false none Number of cards in order

UpdateProfileRequest

{
  "CardholderGroupId": 0,
  "SpendRulesetId": 0,
  "Phone": "",
  "ShippingPhone": "",
  "DateOfBirth": "",
  "Email": "",
  "CustomId": "",
  "FirstName": "",
  "LastName": "",
  "NormalizeProfileAddress": false,
  "ProfileAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "NormalizeShippingAddress": false,
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  }
}

UpdateProfileRequest

Properties

Name Type Required Restrictions Description
CardholderGroupId integer(int32) false none Unique id of the cardholder group (use 0 to remove cardholder from a group)
SpendRulesetId integer(int32) false none Unique id of the spending ruleset (use 0 to remove cardholder from a spending ruleset)
Phone string false none Phone number
ShippingPhone string false none Shipping Phone number
DateOfBirth string(date-time) false none Cardholder date of birth
Email string true none Cardholder email address
CustomId string false none User defined Id which can be assigned to Card holder profile (alphanumeric up to 50 characters)
FirstName string true none none
LastName string true none none
NormalizeProfileAddress boolean false none none
ProfileAddress Address true none none
NormalizeShippingAddress boolean false none none
ShippingAddress AddressContact false none none

AddressContact

{
  "ContactName": "",
  "AddressLine1": "",
  "AddressLine2": "",
  "City": "",
  "State": "",
  "PostalCode": "",
  "Country": ""
}

AddressContact

Properties

Name Type Required Restrictions Description
ContactName string false none none
AddressLine1 string true none none
AddressLine2 string false none none
City string true none none
State string true none none
PostalCode string true none none
Country string false read-only none

GetProfileResponse

{
  "AccountId": 0,
  "AccountStatus": "",
  "FirstName": "",
  "LastName": "",
  "CardholderGroupId": 0,
  "SpendRulesetId": 0,
  "ProfileAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "Phone": "",
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "ShippingPhone": "",
  "DateOfBirth": "",
  "Email": "",
  "IsVirtual": false,
  "CustomId": ""
}

GetProfileResponse

Properties

Name Type Required Restrictions Description
AccountId integer(int32) true none Card account ID. 0 will be returned as the Account ID for cards that are pending
AccountStatus string true none Status of the account
FirstName string true none Cardholder first name
LastName string true none Cardholder last name
CardholderGroupId integer(int32) false none Unique id of the cardholder group
SpendRulesetId integer(int32) false none Unique id of the spending ruleset
ProfileAddress AddressContact true none none
Phone string false none Phone number
ShippingAddress AddressContact true none none
ShippingPhone string false none Shipping Phone number
DateOfBirth string(date-time) true none Cardholder date of birth
Email string true none Cardholder email address
IsVirtual boolean false none Identifies virtual cardholder
CustomId string false none User defined Id which can be assigned to Card holder profile (alphanumeric up to 50 characters)

FundRequest

{
  "Amount": 0
}

FundRequest

Properties

Name Type Required Restrictions Description
Amount number(double) true none The amount to fund the card account, rounded to 2 decimal places

CreateCardAsyncRequest

{
  "Cards": [
    {
      "Phone": "",
      "ShippingPhone": "",
      "ShippingMethod": "",
      "DateOfBirth": "",
      "Email": "",
      "GroupId": 0,
      "RulesetId": 0,
      "CustomId": "",
      "FirstName": "",
      "LastName": "",
      "NormalizeProfileAddress": false,
      "ProfileAddress": {
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": "",
        "Country": ""
      },
      "NormalizeShippingAddress": false,
      "ShippingAddress": {
        "ContactName": "",
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": "",
        "Country": ""
      }
    }
  ],
  "NormalizeHomeAddress": false,
  "NormalizeShippingAddress": false
}

CreateCardAsyncRequest

Properties

Name Type Required Restrictions Description
Cards [CreateCardRequest] false none New Card List
NormalizeHomeAddress boolean false none Normalize Home Address
NormalizeShippingAddress boolean false none Normalize Shipping Address

CreateCardRequest

{
  "Phone": "",
  "ShippingPhone": "",
  "ShippingMethod": "",
  "DateOfBirth": "",
  "Email": "",
  "GroupId": 0,
  "RulesetId": 0,
  "CustomId": "",
  "FirstName": "",
  "LastName": "",
  "NormalizeProfileAddress": false,
  "ProfileAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "NormalizeShippingAddress": false,
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  }
}

CreateCardRequest

Properties

Name Type Required Restrictions Description
Phone string true none Phone number
ShippingPhone string true none Shipping Phone number
ShippingMethod string true none Method for shipping the card
DateOfBirth string(date-time) true none Cardholder date of birth
Email string true none Cardholder email address
GroupId integer(int32) false none Cardholder group id
RulesetId integer(int32) false none Cardhodler ruleset id
CustomId string false none User defined Id which can be assigned to Card holder profile (alphanumeric up to 50 characters)
FirstName string true none none
LastName string true none none
NormalizeProfileAddress boolean false none none
ProfileAddress Address true none none
NormalizeShippingAddress boolean false none none
ShippingAddress AddressContact false none none

Enumerated Values

Property Value
ShippingMethod Invalid
ShippingMethod FirstClassMail
ShippingMethod Expedited
ShippingMethod Rush

CreateCardAsyncResponse

{
  "CardOrderId": 0
}

CreateCardAsyncResponse

Properties

Name Type Required Restrictions Description
CardOrderId integer(int32) false none Card Order ID

UpdateCardStatusRequest

{
  "Status": ""
}

UpdateCardStatusRequest

Properties

Name Type Required Restrictions Description
Status string true none New status for the card.
Inactive: All new Cards are Inactive, which means they can't be used to make purchases.
Active: Cards in this state can be used to make purchases when funded.
Blocked: In this state, cards cannot be used for purchases. It can be activated again for the use.
Closed: This Card account is closed. It can not be activated again for the purchase.
Removed: This Card account is removed.

Enumerated Values

Property Value
Status Invalid
Status Active
Status Inactive
Status Blocked
Status Closed
Status Removed

GetSpendRulesResponse

{
  "SpendRules": {
    "UseMerchantCategory": false,
    "MerchantCategories": {
      "AssociationsAndOrganizations": false,
      "AutomotiveDealers": false,
      "EducationalServices": false,
      "Entertainment": false,
      "FuelAndConvenienceStores": false,
      "GroceryStores": false,
      "HealthcareAndChildcareServices": false,
      "ProfessionalServices": false,
      "Restaurants": false,
      "RetailStores": false,
      "TravelAndTransportation": false,
      "FuelPumpOnly": false,
      "HardwareStores": false
    },
    "InternationalSpendEnabled": false,
    "IsDailySpendLimitEnabled": false,
    "DailySpendLimit": 0,
    "CardNotPresentUse": false,
    "CardPresence": 0,
    "UsePexAccountBalanceForAuths": false,
    "UseCustomerAuthDecision": false
  }
}

GetSpendRulesResponse

Properties

Name Type Required Restrictions Description
SpendRules SpendRules true none none

SpendRules

{
  "UseMerchantCategory": false,
  "MerchantCategories": {
    "AssociationsAndOrganizations": false,
    "AutomotiveDealers": false,
    "EducationalServices": false,
    "Entertainment": false,
    "FuelAndConvenienceStores": false,
    "GroceryStores": false,
    "HealthcareAndChildcareServices": false,
    "ProfessionalServices": false,
    "Restaurants": false,
    "RetailStores": false,
    "TravelAndTransportation": false,
    "FuelPumpOnly": false,
    "HardwareStores": false
  },
  "InternationalSpendEnabled": false,
  "IsDailySpendLimitEnabled": false,
  "DailySpendLimit": 0,
  "CardNotPresentUse": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false
}

SpendRules

Properties

Name Type Required Restrictions Description
UseMerchantCategory boolean false none none
MerchantCategories MerchantCategories false none none
InternationalSpendEnabled boolean false none none
IsDailySpendLimitEnabled boolean false none none
DailySpendLimit number(double) false none none
CardNotPresentUse boolean false none none
CardPresence integer(int32) false none none
UsePexAccountBalanceForAuths boolean false none none
UseCustomerAuthDecision boolean false none none

MerchantCategories

{
  "AssociationsAndOrganizations": false,
  "AutomotiveDealers": false,
  "EducationalServices": false,
  "Entertainment": false,
  "FuelAndConvenienceStores": false,
  "GroceryStores": false,
  "HealthcareAndChildcareServices": false,
  "ProfessionalServices": false,
  "Restaurants": false,
  "RetailStores": false,
  "TravelAndTransportation": false,
  "FuelPumpOnly": false,
  "HardwareStores": false
}

MerchantCategories

Properties

Name Type Required Restrictions Description
AssociationsAndOrganizations boolean false none none
AutomotiveDealers boolean false none none
EducationalServices boolean false none none
Entertainment boolean false none none
FuelAndConvenienceStores boolean false none none
GroceryStores boolean false none none
HealthcareAndChildcareServices boolean false none none
ProfessionalServices boolean false none none
Restaurants boolean false none none
RetailStores boolean false none none
TravelAndTransportation boolean false none none
FuelPumpOnly boolean false none none
HardwareStores boolean false none none

SetSpendRulesRequest

{
  "MerchantCategories": {
    "AssociationsAndOrganizations": false,
    "AutomotiveDealers": false,
    "EducationalServices": false,
    "Entertainment": false,
    "FuelAndConvenienceStores": false,
    "GroceryStores": false,
    "HealthcareAndChildcareServices": false,
    "ProfessionalServices": false,
    "Restaurants": false,
    "RetailStores": false,
    "TravelAndTransportation": false,
    "FuelPumpOnly": false,
    "HardwareStores": false
  },
  "InternationalSpendEnabled": false,
  "DailySpendLimit": 0,
  "CardNotPresentUse": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false
}

SetSpendRulesRequest

Properties

Name Type Required Restrictions Description
MerchantCategories MerchantCategories false none none
InternationalSpendEnabled boolean false none Whether or not international spend is enabled
DailySpendLimit number(double) false none Daily spend limit, rounded to 2 decimal places
CardNotPresentUse boolean false none Whether or not card is present to use
CardPresence integer(int32) false none Used to evaluate spend policy based on physical or virtual use of card. 0 = blah, 1 = blah, 2 = blah
UsePexAccountBalanceForAuths boolean false none Whether or not auto business balance funding to use
UseCustomerAuthDecision boolean false none Whether or not decision control allowed to use

SetScheduledFundingRulesRequest

{
  "Amount": 0,
  "Frequency": ""
}

SetScheduledFundingRulesRequest

Properties

Name Type Required Restrictions Description
Amount number(double) false none Amount of the scheduled funding, rounded to 2 decimal places
Frequency string true none Describes when the scheduled funding should occur

Enumerated Values

Property Value
Frequency DAY
Frequency MONDAY
Frequency TUESDAY
Frequency WEDNESDAY
Frequency THURSDAY
Frequency FRIDAY
Frequency SATURDAY
Frequency SUNDAY
Frequency FIRSTOFMONTH

GetScheduledFundingRulesResponse

{
  "ScheduledFunding": {
    "Amount": 0,
    "Frequency": ""
  }
}

GetScheduledFundingRulesResponse

Properties

Name Type Required Restrictions Description
ScheduledFunding ScheduledFunding false none Details about scheduled funding

ScheduledFunding

{
  "Amount": 0,
  "Frequency": ""
}

ScheduledFunding

Properties

Name Type Required Restrictions Description
Amount number(double) true none Amount of scheduled funding, rounded to 2 decimal places
Frequency string true none Describes when scheduled funding should occur.

Possible string values for Frequency parameter of scheduled funding are:
- '0' or 'DAY' - every Day
- '1' or 'MONDAY' - every Monday
- '2' or 'TUESDAY' - every Tuesday
- '3' or 'WEDNESDAY' - every Wednesday
- '4' or 'THURSDAY' - every Thursday
- '5' or 'FRIDAY' - every Friday
- '6' or 'SATURDAY' - every Saturday
- '7' or 'SUNDAY' - every Sunday
- '8' or 'FIRSTOFMONTH' - every 1st of the Month

Enumerated Values

Property Value
Frequency DAY
Frequency MONDAY
Frequency TUESDAY
Frequency WEDNESDAY
Frequency THURSDAY
Frequency FRIDAY
Frequency SATURDAY
Frequency SUNDAY
Frequency FIRSTOFMONTH

SetCardholderRulesetRequest

{
  "RulesetId": 0,
  "AccountId": 0
}

SetCardholderRulesetRequest

Properties

Name Type Required Restrictions Description
RulesetId integer(int32) true none Spending Ruleset ID
AccountId integer(int32) true none Account ID

CardholderSpendRulesetResponse

{
  "AccountId": 0
}

CardholderSpendRulesetResponse

Properties

Name Type Required Restrictions Description
AccountId integer(int32) false none Account ID

GetAdvancedAccountDetailsResponse

{
  "AccountId": 0,
  "Group": {
    "Id": 0,
    "GroupName": ""
  },
  "AccountStatus": "",
  "LedgerBalance": 0,
  "AvailableBalance": 0,
  "ProfileAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "Phone": "",
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "ShippingPhone": "",
  "DateOfBirth": "",
  "Email": "",
  "IsVirtual": false,
  "CardList": [
    {
      "CardId": 0,
      "IssuedDate": "",
      "ExpirationDate": "",
      "Last4CardNumber": "",
      "CardStatus": ""
    }
  ],
  "SpendingRulesetId": 0,
  "SpendRules": {
    "MerchantCategories": [
      {
        "Id": 0,
        "Name": "",
        "Description": "",
        "TransactionLimit": 0,
        "DailySpendLimit": 0,
        "WeeklySpendLimit": 0,
        "MonthlySpendLimit": 0,
        "YearlySpendLimit": 0,
        "LifetimeSpendLimit": 0
      }
    ],
    "InternationalSpendEnabled": false,
    "IsDailySpendLimitEnabled": false,
    "DailySpendLimit": 0,
    "WeeklySpendLimit": 0,
    "MonthlySpendLimit": 0,
    "YearlySpendLimit": 0,
    "LifetimeSpendLimit": 0,
    "CardNotPresentUse": false,
    "CardPresence": 0,
    "UsePexAccountBalanceForAuths": false,
    "UseCustomerAuthDecision": false,
    "DaysOfWeekRestrictions": [
      "string"
    ],
    "UsStateRestrictions": [
      "string"
    ]
  },
  "ScheduledFunding": {
    "Amount": 0,
    "Frequency": ""
  },
  "CustomId": ""
}

GetAdvancedAccountDetailsResponse

Properties

Name Type Required Restrictions Description
AccountId integer(int32) false none Unique cardholder account id
Group CardholderGroup false none Details about a cardholder group
AccountStatus string false none Cardholder account status (OPEN or CLOSED)
LedgerBalance number(double) false none Ledger balance for the card account, rounded to 2 decimal places
AvailableBalance number(double) false none Available balance for the card account, rounded to 2 decimal places
ProfileAddress AddressContact false none none
Phone string false none Phone number
ShippingAddress AddressContact false none none
ShippingPhone string false none Shipping Phone number
DateOfBirth string(date-time) false none Cardholder date of birth
Email string false none Cardholder email address
IsVirtual boolean false none Identifies virtual cardholder
CardList [CardDetail] false none List of details about cards associated with the account
SpendingRulesetId integer(int32) false none SpendingRulesetId for the cardholder account
SpendRules AdvancedSpendRulesResponse false none Advanced Spend Rules Response
ScheduledFunding ScheduledFunding false none Details about scheduled funding
CustomId string false none User defined Id which can be assigned to Card holder profile (alphanumeric up to 50 characters)

CardholderGroup

{
  "Id": 0,
  "GroupName": ""
}

CardholderGroup

Properties

Name Type Required Restrictions Description
Id integer(int32) true none Unique id of the cardholder group
GroupName string true none Name of the cardholder group

CardDetail

{
  "CardId": 0,
  "IssuedDate": "",
  "ExpirationDate": "",
  "Last4CardNumber": "",
  "CardStatus": ""
}

CardDetail

Properties

Name Type Required Restrictions Description
CardId integer(int32) true none Unique id for the card
IssuedDate string(date-time) true none Date card was issued
ExpirationDate string(date-time) true none Expiration date for the card
Last4CardNumber string true none Last four digits of card number
CardStatus string true none Card status

Possible string values for CardStatus parameter of card detail are:
- Inactive: All new Cards are Inactive, which means they can't be used to make purchases.
- Active: Cards in this state can be used to make purchases when funded.
- Blocked: In this state, cards cannot be used for purchases. It can be activated again for the use.
- Closed: This Card account is closed. It can not be activated again for the purchase.

AccountRemainingLimitsResponse

{
  "AccountId": 0,
  "GlobalLimits": [
    {
      "Type": "",
      "EnforcedLimit": 0,
      "RemainingSpend": 0
    }
  ],
  "MerchantCategoryLimits": [
    {
      "MerchantCategoryId": 0,
      "Category": "",
      "Type": "",
      "EnforcedLimit": 0,
      "RemainingSpend": 0
    }
  ]
}

AccountRemainingLimitsResponse

Properties

Name Type Required Restrictions Description
AccountId integer(int32) false none Account Id
GlobalLimits [GlobalLimit] false none Global limits
MerchantCategoryLimits [MerchantCategoryLimit] false none Merchant category limits

GlobalLimit

{
  "Type": "",
  "EnforcedLimit": 0,
  "RemainingSpend": 0
}

GlobalLimit

Properties

Name Type Required Restrictions Description
Type string false none Period type
EnforcedLimit number(double) false none Enforced spend limit
RemainingSpend number(double) false none Remaining spend

Enumerated Values

Property Value
Type PerDay
Type PerWeek
Type PerMonth
Type PerYear
Type Lifetime

MerchantCategoryLimit

{
  "MerchantCategoryId": 0,
  "Category": "",
  "Type": "",
  "EnforcedLimit": 0,
  "RemainingSpend": 0
}

MerchantCategoryLimit

Properties

Name Type Required Restrictions Description
MerchantCategoryId integer(int32) false none Category Id
Category string false none Name of category
Type string false none Period type
EnforcedLimit number(double) false none Enforced rule limit
RemainingSpend number(double) false none Remaining spending

Enumerated Values

Property Value
Type PerDay
Type PerWeek
Type PerMonth
Type PerYear
Type Lifetime

DateRange

{
  "StartDate": "",
  "EndDate": ""
}

DateRange

Properties

Name Type Required Restrictions Description
StartDate string(date-time) true none YYYY-MM-DDThh:mm:ss
EndDate string(date-time) true none YYYY-MM-DDThh:mm:ss

NetworkTransactionDetailsResponse

{
  "TransactionList": [
    {
      "NetworkTransactionId": 0,
      "TransactionId": 0,
      "AcctId": 0,
      "TransactionTime": "",
      "HoldTime": "",
      "SettlementTime": "",
      "MerchantLocalTime": "",
      "AuthTransactionId": 0,
      "TransactionAmount": 0,
      "PaddingAmount": 0,
      "AvailableBalance": 0,
      "LedgerBalance": 0,
      "TransactionType": "",
      "Description": "",
      "TransactionNotes": [
        {
          "NoteId": 0,
          "UserName": "",
          "NoteText": "",
          "NoteDate": ""
        }
      ],
      "ReferencedTranId": 0,
      "ReferencedTransactionTime": "",
      "MerchantName": "",
      "MerchantCity": "",
      "MerchantState": "",
      "MerchantZip": "",
      "MerchantCountry": "",
      "MCCCode": "",
      "AuthIdentityResponseCode": "",
      "MerchantId": "",
      "TerminalId": "",
      "NetworkType": "",
      "NetworkStatus": "",
      "IsCardPresent": false,
      "Message": "",
      "MessageCode": "",
      "MerchantRequestedAmount": 0
    }
  ]
}

NetworkTransactionDetailsResponse

Properties

Name Type Required Restrictions Description
TransactionList [NetworkTransaction] true none The list of netword transaction details

NetworkTransaction

{
  "NetworkTransactionId": 0,
  "TransactionId": 0,
  "AcctId": 0,
  "TransactionTime": "",
  "HoldTime": "",
  "SettlementTime": "",
  "MerchantLocalTime": "",
  "AuthTransactionId": 0,
  "TransactionAmount": 0,
  "PaddingAmount": 0,
  "AvailableBalance": 0,
  "LedgerBalance": 0,
  "TransactionType": "",
  "Description": "",
  "TransactionNotes": [
    {
      "NoteId": 0,
      "UserName": "",
      "NoteText": "",
      "NoteDate": ""
    }
  ],
  "ReferencedTranId": 0,
  "ReferencedTransactionTime": "",
  "MerchantName": "",
  "MerchantCity": "",
  "MerchantState": "",
  "MerchantZip": "",
  "MerchantCountry": "",
  "MCCCode": "",
  "AuthIdentityResponseCode": "",
  "MerchantId": "",
  "TerminalId": "",
  "NetworkType": "",
  "NetworkStatus": "",
  "IsCardPresent": false,
  "Message": "",
  "MessageCode": "",
  "MerchantRequestedAmount": 0
}

NetworkTransaction

Properties

Name Type Required Restrictions Description
NetworkTransactionId integer(int64) false none ID of network transaction
TransactionId integer(int64) false none ID of transaction
AcctId integer(int32) false none Account ID
TransactionTime string(date-time) false none Transaction time
HoldTime string(date-time) false none Hold time
SettlementTime string(date-time) false none Settlement time
MerchantLocalTime string(date-time) false none Merchant local time
AuthTransactionId integer(int64) false none ID of auth transaction
TransactionAmount number(double) false none Transaction amount
PaddingAmount number(double) false none Padding amount
AvailableBalance number(double) false none Available balance
LedgerBalance number(double) false none Ledger balance
TransactionType string false none Transaction type
Description string false none Description
TransactionNotes [TransactionNote] false none List of transaction notes
ReferencedTranId integer(int64) false none ID of referenced transaction
ReferencedTransactionTime string(date-time) false none Referenced transaction time
MerchantName string false none Merchant name
MerchantCity string false none Merchant city
MerchantState string false none Merchant state
MerchantZip string false none Merchant zip
MerchantCountry string false none Merchant country
MCCCode string false none Merchant category code
AuthIdentityResponseCode string false none Auth identityRresponse code
MerchantId string false none ID of merchant
TerminalId string false none ID of terminal
NetworkType string false none Network type
NetworkStatus string false none Network status
IsCardPresent boolean false none Is card present flag
Message string false none Message
MessageCode string false none Message code
MerchantRequestedAmount number(double) false none Merchant Requested Amount

TransactionNote

{
  "NoteId": 0,
  "UserName": "",
  "NoteText": "",
  "NoteDate": ""
}

TransactionNote

Properties

Name Type Required Restrictions Description
NoteId integer(int64) true none Unique id for the note
UserName string true none Admin username who wrote the note
NoteText string true none Text of the note
NoteDate string(date-time) true none Time the note was added

BusinessDetailsResponse

{
  "BusinessAccountId": 0,
  "BusinessName": "",
  "BusinessAccountStatus": "",
  "BusinessAccountBalance": 0,
  "PendingTransferAmount": 0,
  "BankAccountList": [
    {
      "ExternalBankAcctId": 0,
      "RoutingNumber": "",
      "BankAccountNumber": "",
      "BankName": "",
      "BankAccountType": "",
      "IsActive": false
    }
  ],
  "CHAccountList": [
    {
      "AccountId": 0,
      "FirstName": "",
      "LastName": "",
      "LedgerBalance": 0,
      "AvailableBalance": 0,
      "AccountStatus": "",
      "IsVirtual": false,
      "CustomId": ""
    }
  ],
  "CardholderGroups": [
    {
      "Id": 0,
      "Name": ""
    }
  ]
}

BusinessDetailsResponse

Properties

Name Type Required Restrictions Description
BusinessAccountId integer(int32) true none Unique account id for the business
BusinessName string true none Name of the business
BusinessAccountStatus string true none Business account status (OPEN or CLOSED)
BusinessAccountBalance number(double) true none Account balance for the business, rounded to 2 decimal places
PendingTransferAmount number(double) true none Amount of pending transfers, rounded to 2 decimal places
BankAccountList [ExternalBankAccount] true none List of external bank accounts associated with the business
CHAccountList [BusinessCHAccountDetail] true none List of cardholder account details for the business
CardholderGroups [CardHolderGroup] true none a list of groups that the Business can use

ExternalBankAccount

{
  "ExternalBankAcctId": 0,
  "RoutingNumber": "",
  "BankAccountNumber": "",
  "BankName": "",
  "BankAccountType": "",
  "IsActive": false
}

ExternalBankAccount

Properties

Name Type Required Restrictions Description
ExternalBankAcctId integer(int32) true none Unique external bank account id
RoutingNumber string true none Routing number
BankAccountNumber string true none Last 4 digits of bank account number
BankName string true none Bank name
BankAccountType string true none Type of account (ACH or Wire)
IsActive boolean true none Whether or not the bank account is active

BusinessCHAccountDetail

{
  "AccountId": 0,
  "FirstName": "",
  "LastName": "",
  "LedgerBalance": 0,
  "AvailableBalance": 0,
  "AccountStatus": "",
  "IsVirtual": false,
  "CustomId": ""
}

BusinessCHAccountDetail

Properties

Name Type Required Restrictions Description
AccountId integer(int32) true none Unique id for the cardholder account
FirstName string true none Cardholder first name
LastName string true none Cardholder last name
LedgerBalance number(double) true none Ledger balance for the cardholder account, rounded to 2 decimal places
AvailableBalance number(double) true none Available balance for the cardholder account, rounded to 2 decimal places
AccountStatus string true none Cardholder account status (OPEN or CLOSED)
IsVirtual boolean false none Identifies virtual cardholder
CustomId string false none User defined Id which can be assigned to Card holder profile (alphanumeric up to 50 characters)

CardHolderGroup

{
  "Id": 0,
  "Name": ""
}

CardHolderGroup

Properties

Name Type Required Restrictions Description
Id integer(int32) false none group Id
Name string false none group Name

CardholderDetailsResponse

{
  "AccountId": 0,
  "Group": {
    "Id": 0,
    "GroupName": ""
  },
  "AccountStatus": "",
  "LedgerBalance": 0,
  "AvailableBalance": 0,
  "ProfileAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "Phone": "",
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "ShippingPhone": "",
  "DateOfBirth": "",
  "Email": "",
  "IsVirtual": false,
  "CardList": [
    {
      "CardId": 0,
      "IssuedDate": "",
      "ExpirationDate": "",
      "Last4CardNumber": "",
      "CardStatus": ""
    }
  ],
  "SpendingRulesetId": 0,
  "SpendRules": {
    "UseMerchantCategory": false,
    "MerchantCategories": {
      "AssociationsAndOrganizations": false,
      "AutomotiveDealers": false,
      "EducationalServices": false,
      "Entertainment": false,
      "FuelAndConvenienceStores": false,
      "GroceryStores": false,
      "HealthcareAndChildcareServices": false,
      "ProfessionalServices": false,
      "Restaurants": false,
      "RetailStores": false,
      "TravelAndTransportation": false,
      "FuelPumpOnly": false,
      "HardwareStores": false
    },
    "InternationalSpendEnabled": false,
    "IsDailySpendLimitEnabled": false,
    "DailySpendLimit": 0,
    "CardNotPresentUse": false,
    "CardPresence": 0,
    "UsePexAccountBalanceForAuths": false,
    "UseCustomerAuthDecision": false
  },
  "ScheduledFunding": {
    "Amount": 0,
    "Frequency": ""
  },
  "CustomId": ""
}

CardholderDetailsResponse

Properties

Name Type Required Restrictions Description
AccountId integer(int32) true none Unique cardholder account id
Group CardholderGroup false none Details about a cardholder group
AccountStatus string true none Cardholder account status (OPEN or CLOSED)
LedgerBalance number(double) true none Ledger balance for the card account, rounded to 2 decimal places
AvailableBalance number(double) true none Available balance for the card account, rounded to 2 decimal places
ProfileAddress AddressContact true none none
Phone string false none Phone number
ShippingAddress AddressContact true none none
ShippingPhone string false none Shipping Phone number
DateOfBirth string(date-time) true none Cardholder date of birth
Email string true none Cardholder email address
IsVirtual boolean false none Identifies virtual cardholder
CardList [CardDetail] true none List of details about cards associated with the account
SpendingRulesetId integer(int32) true none SpendingRulesetId for the cardholder account
SpendRules SpendRules true none none
ScheduledFunding ScheduledFunding false none Details about scheduled funding
CustomId string false none User defined Id which can be assigned to Card holder profile (alphanumeric up to 50 characters)

TransactionDetailsRequest

{
  "IncludePendings": false,
  "IncludeDeclines": false,
  "StartDate": "",
  "EndDate": ""
}

TransactionDetailsRequest

Properties

Name Type Required Restrictions Description
IncludePendings boolean false none 1 to include pending transactions and 0 to exclude
IncludeDeclines boolean false none 1 to include decline transactions and 0 to exclude
StartDate string(date-time) true none YYYY-MM-DDThh:mm:ss
EndDate string(date-time) true none YYYY-MM-DDThh:mm:ss

TransactionDetailsResponse

{
  "TransactionList": [
    {
      "TransactionId": 0,
      "AcctId": 0,
      "TransactionTime": "",
      "MerchantLocalTime": "",
      "HoldTime": "",
      "SettlementTime": "",
      "AuthTransactionId": 0,
      "TransactionAmount": 0,
      "PaddingAmount": 0,
      "TransactionType": "",
      "Description": "",
      "TransactionNotes": [
        {
          "NoteId": 0,
          "UserName": "",
          "NoteText": "",
          "NoteDate": ""
        }
      ],
      "IsPending": false,
      "IsDecline": false,
      "MerchantName": "",
      "MerchantCity": "",
      "MerchantState": "",
      "MerchantZip": "",
      "MerchantCountry": "",
      "MCCCode": "",
      "TransferToOrFromAccountId": 0,
      "AuthIdentityResponseCode": "",
      "MerchantId": "",
      "TerminalId": "",
      "NetworkTransactionId": 0,
      "SourceCurrencyCodeDescription": "",
      "SourceCurrencyNumericCode": "",
      "SourceAmount": 0,
      "TransactionTags": {
        "Tags": [
          {
            "FieldId": "",
            "Value": {},
            "Name": ""
          }
        ],
        "State": "",
        "FieldsVersion": ""
      },
      "MetadataApprovalStatus": "",
      "TransactionTypeCategory": ""
    }
  ],
  "Pages": {
    "PageSize": 0,
    "TotalRecords": 0,
    "NumberOfPages": 0,
    "LastTimeRetrieved": ""
  }
}

TransactionDetailsResponse

Properties

Name Type Required Restrictions Description
TransactionList [Transaction] true none The list of transaction details
Pages PageInfo true none Pagination information used for operations returning a large result set

Transaction

{
  "TransactionId": 0,
  "AcctId": 0,
  "TransactionTime": "",
  "MerchantLocalTime": "",
  "HoldTime": "",
  "SettlementTime": "",
  "AuthTransactionId": 0,
  "TransactionAmount": 0,
  "PaddingAmount": 0,
  "TransactionType": "",
  "Description": "",
  "TransactionNotes": [
    {
      "NoteId": 0,
      "UserName": "",
      "NoteText": "",
      "NoteDate": ""
    }
  ],
  "IsPending": false,
  "IsDecline": false,
  "MerchantName": "",
  "MerchantCity": "",
  "MerchantState": "",
  "MerchantZip": "",
  "MerchantCountry": "",
  "MCCCode": "",
  "TransferToOrFromAccountId": 0,
  "AuthIdentityResponseCode": "",
  "MerchantId": "",
  "TerminalId": "",
  "NetworkTransactionId": 0,
  "SourceCurrencyCodeDescription": "",
  "SourceCurrencyNumericCode": "",
  "SourceAmount": 0,
  "TransactionTags": {
    "Tags": [
      {
        "FieldId": "",
        "Value": {},
        "Name": ""
      }
    ],
    "State": "",
    "FieldsVersion": ""
  },
  "MetadataApprovalStatus": "",
  "TransactionTypeCategory": ""
}

Transaction

Properties

Name Type Required Restrictions Description
TransactionId integer(int64) true none Unique Id for the transaction
AcctId integer(int32) true none Unique cardholder account id
TransactionTime string(date-time) true none Time the transaction entered the system
MerchantLocalTime string(date-time) false none Merchant local time the transaction took place
HoldTime string(date-time) false none Time the hold authorization entered the system
SettlementTime string(date-time) false none Settlement time, if applicable
AuthTransactionId integer(int64) true none The transaction Id of the authorization if the transaction is a settlement
TransactionAmount number(double) true none Amount of the transaction, rounded to 2 decimal places
PaddingAmount number(double) true none Padding amount, rounded to 2 decimal places
TransactionType string true none Type of transaction
Description string true none Transaction description
TransactionNotes [TransactionNote] false none List of transaction notes
IsPending boolean true none Whether or not the transaction is pending
IsDecline boolean true none Whether or not the transaction is a decline
MerchantName string true none Merchant name
MerchantCity string true none Merchant city
MerchantState string true none Merchant state
MerchantZip string true none Merchant zip
MerchantCountry string true none Merchant country
MCCCode string true none MCC Code
TransferToOrFromAccountId integer(int32) false none Id of the account the transaction is going to or coming from, if applicable
AuthIdentityResponseCode string false none Authorization Identification Response code from Star data element 38 in Auth Response message
MerchantId string false none The number a financial institution assigns to a merchant to identify your business
TerminalId string false none TerminalId
NetworkTransactionId integer(int64) false none The transaction Id of the network authorization if the transaction is a settlement
SourceCurrencyCodeDescription string false none Source Currency Code Description
SourceCurrencyNumericCode string false none The three-digit numeric code assigned to each currency as defined in ISO 4217 standard.
SourceAmount number(double) false none Source Amount
TransactionTags TransactionTags false none Transaction Tags Entity
MetadataApprovalStatus string false none Metadata Approval Status
TransactionTypeCategory string false none Transaction Type Category

Enumerated Values

Property Value
TransactionType Transfer
TransactionType Network
TransactionType Load
TransactionType Invalid

PageInfo

{
  "PageSize": 0,
  "TotalRecords": 0,
  "NumberOfPages": 0,
  "LastTimeRetrieved": ""
}

PageInfo

Properties

Name Type Required Restrictions Description
PageSize integer(int32) true none Number of records per page
TotalRecords integer(int32) true none Total number of records returned by query
NumberOfPages integer(int32) true none Number of pages returned by query
LastTimeRetrieved string(date-time) true none Last transaction time received on the current page

TransactionTags

{
  "Tags": [
    {
      "FieldId": "",
      "Value": {},
      "Name": ""
    }
  ],
  "State": "",
  "FieldsVersion": ""
}

TransactionTags

Properties

Name Type Required Restrictions Description
Tags [TransactionTag] false none Transaction Tags
State string false none State
FieldsVersion string false none Fields Version

Enumerated Values

Property Value
State Initial
State Selected

TransactionTag

{
  "FieldId": "",
  "Value": {},
  "Name": ""
}

TransactionTag

Properties

Name Type Required Restrictions Description
FieldId string false none Field ID
Value object false none Field Value
Name string false none Field Name

GetAttachments

{
  "Attachments": [
    {
      "AttachmentId": "",
      "Type": "",
      "Size": 0,
      "Link": {
        "related": ""
      },
      "UploadStatus": "",
      "CreatedDateUtc": "",
      "CreatedBy": {
        "AdminId": 0,
        "UserId": 0
      },
      "UpdatedDateUtc": "",
      "UpdatedBy": {
        "AdminId": 0,
        "UserId": 0
      }
    }
  ],
  "ApprovalStatus": ""
}

GetAttachments

Properties

Name Type Required Restrictions Description
Attachments [AttachmentWithRelatedLink] false none Attachments
ApprovalStatus string false none Approval status is on the transaction level and not only for attachment.
If the transaction is approved, all related data i.e Attachments, Tags etc are approved.

Enumerated Values

Property Value
ApprovalStatus NotReviewed
ApprovalStatus Ignored
ApprovalStatus Approved
ApprovalStatus Rejected
ApprovalStatus NoReceipt

{
  "AttachmentId": "",
  "Type": "",
  "Size": 0,
  "Link": {
    "related": ""
  },
  "UploadStatus": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

AttachmentWithRelatedLink

Properties

Name Type Required Restrictions Description
AttachmentId string false none Unique identifier of the attachment.
Type string false none Specifies the type of attachment Image/PDF
Size integer(int64) false none Size of the attachment.
Link LinkRelated false none Link
UploadStatus string false none the system assigned status of the attachment valid values are: Not Loaded, Loaded, Deleted, HasMalware, LoadFailed.
CreatedDateUtc string(date-time) false none Created date in UTC
CreatedBy MetadataUser false none Metadata user
UpdatedDateUtc string(date-time) false none Updated date in UTC
UpdatedBy MetadataUser false none Metadata user

Enumerated Values

Property Value
Type Image
Type Pdf
UploadStatus NotLoaded
UploadStatus Loaded
UploadStatus Deleted
UploadStatus HasMalware
UploadStatus LoadFailed

LinkRelated

{
  "related": ""
}

LinkRelated

Properties

Name Type Required Restrictions Description
related string false none The Link property provides a link to /AttachmentId resource which contains the encoded image details.

MetadataUser

{
  "AdminId": 0,
  "UserId": 0
}

MetadataUser

Properties

Name Type Required Restrictions Description
AdminId integer(int32) false none Admin Id of the user who created, updated, or deleted the tag definition
UserId integer(int32) false none User Id of the user who created, updated, or deleted the tag definition

DeleteAttachment

{
  "AttachmentId": "",
  "Type": "",
  "Size": 0,
  "UploadStatus": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

DeleteAttachment

Properties

Name Type Required Restrictions Description
AttachmentId string false none Unique identifier of the attachment.
Type string false none Specifies the type of attachment Image/PDF
Size integer(int64) false none Size of the attachment.
UploadStatus string false none the system assigned status of the attachment valid values are: Not Loaded, Loaded, Deleted, HasMalware, LoadFailed.
CreatedDateUtc string(date-time) false none Created date in UTC
CreatedBy MetadataUser false none Metadata user
UpdatedDateUtc string(date-time) false none Updated date in UTC
UpdatedBy MetadataUser false none Metadata user
DeletedDateUtc string(date-time) false none Deleted date in UTC
DeletedBy MetadataUser false none Metadata user

Enumerated Values

Property Value
Type Image
Type Pdf
UploadStatus NotLoaded
UploadStatus Loaded
UploadStatus Deleted
UploadStatus HasMalware
UploadStatus LoadFailed

Attachment

{
  "AttachmentId": "",
  "Type": "",
  "Size": 0,
  "Content": "",
  "UploadStatus": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "ApprovalStatus": ""
}

Attachment

Properties

Name Type Required Restrictions Description
AttachmentId string false none Unique identifier of the attachment.
Type string false none Specifies the type of attachment Image/PDF
Size integer(int64) false none Size of the attachment.
Content string false none BASE64_ENCODED_DATA
UploadStatus string false none the system assigned status of the attachment valid values are: Not Loaded, Loaded, Deleted, HasMalware, LoadFailed.
CreatedDateUtc string(date-time) false none Created date in UTC
CreatedBy MetadataUser false none Metadata user
UpdatedDateUtc string(date-time) false none Updated date in UTC
UpdatedBy MetadataUser false none Metadata user
ApprovalStatus string false none Approval status is on the transaction level and not only for attachment.
If the transaction is approved, all related data i.e Attachments, Tags etc are approved.

Enumerated Values

Property Value
Type Image
Type Pdf
UploadStatus NotLoaded
UploadStatus Loaded
UploadStatus Deleted
UploadStatus HasMalware
UploadStatus LoadFailed
ApprovalStatus NotReviewed
ApprovalStatus Ignored
ApprovalStatus Approved
ApprovalStatus Rejected
ApprovalStatus NoReceipt

CreateOrUpdateAttachmentRequest

{
  "Content": "",
  "Type": ""
}

CreateOrUpdateAttachmentRequest

Properties

Name Type Required Restrictions Description
Content string true none BASE64_ENCODED_DATA
Type string false none Specifies the type of attachment Image/PDF

Enumerated Values

Property Value
Type Image
Type Pdf

{
  "AttachmentId": "",
  "Type": "",
  "Size": 0,
  "Link": {
    "self": ""
  },
  "UploadStatus": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

AttachmentWithSelfLink

Properties

Name Type Required Restrictions Description
AttachmentId string false none Unique identifier of the attachment.
Type string false none Specifies the type of attachment Image/PDF
Size integer(int64) false none Size of the attachment.
Link LinkSelf false none Self Link
UploadStatus string false none the system assigned status of the attachment valid values are: Not Loaded, Loaded, Deleted, HasMalware, LoadFailed.
CreatedDateUtc string(date-time) false none Created date in UTC
CreatedBy MetadataUser false none Metadata user
UpdatedDateUtc string(date-time) false none Updated date in UTC
UpdatedBy MetadataUser false none Metadata user

Enumerated Values

Property Value
Type Image
Type Pdf
UploadStatus NotLoaded
UploadStatus Loaded
UploadStatus Deleted
UploadStatus HasMalware
UploadStatus LoadFailed

LinkSelf

{
  "self": ""
}

LinkSelf

Properties

Name Type Required Restrictions Description
self string false none The Link property provides a link to /AttachmentId resource which contains the encoded image details.

Tags

{
  "Id": "",
  "ConcurrencyKey": "",
  "State": "",
  "Values": {},
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Tags

Properties

Name Type Required Restrictions Description
Id string false none Unique identifier for tag values
ConcurrencyKey string false none Prevent conflicts when multiple users update tag values at the same time
State string false none Tag review state
Values object false none Values
CreatedDateUtc string(date-time) false none Created date in UTC
CreatedBy MetadataUser false none Metadata user
UpdatedDateUtc string(date-time) false none Updated date in UTC
UpdatedBy MetadataUser false none Metadata user

Enumerated Values

Property Value
State NotReviewed
State Ignored
State Alphabetic
State Alphanumeric

CreateTagValuesRequest

{
  "ConcurrencyKey": "",
  "Values": [
    {
      "TagId": "",
      "Value": {}
    }
  ]
}

CreateTagValuesRequest

Properties

Name Type Required Restrictions Description
ConcurrencyKey string false none Concurrent editing token
Values [TagValueItem] false none Tag values

TagValueItem

{
  "TagId": "",
  "Value": {}
}

TagValueItem

Properties

Name Type Required Restrictions Description
TagId string false none Tag definition Id
Value object false none Value

UpdateTagValuesRequest

{
  "ConcurrencyKey": "",
  "Values": [
    {
      "TagId": "",
      "Value": {}
    }
  ]
}

UpdateTagValuesRequest

Properties

Name Type Required Restrictions Description
ConcurrencyKey string false none Concurrent editing token
Values [TagValueItem] false none Tag values

CreateAllocationTagValuesRequest

{
  "ConcurrencyKey": "",
  "Values": [
    {
      "TagId": "",
      "Allocation": [
        {
          "TagId": "",
          "Value": {}
        }
      ],
      "Amount": 0
    }
  ]
}

CreateAllocationTagValuesRequest

Properties

Name Type Required Restrictions Description
ConcurrencyKey string false none Concurrent editing token
Values [AllocationTagValue] false none Allocation tag values

AllocationTagValue

{
  "TagId": "",
  "Allocation": [
    {
      "TagId": "",
      "Value": {}
    }
  ],
  "Amount": 0
}

AllocationTagValue

Properties

Name Type Required Restrictions Description
TagId string false none Tag definition Id
Allocation [TagValueItem] false none Value
Amount number(double) false none Amount

UpdateAllocationTagValuesRequest

{
  "ConcurrencyKey": "",
  "Values": [
    {
      "TagId": "",
      "Allocation": [
        {
          "TagId": "",
          "Value": {}
        }
      ],
      "Amount": 0
    }
  ]
}

UpdateAllocationTagValuesRequest

Properties

Name Type Required Restrictions Description
ConcurrencyKey string false none Concurrent editing token
Values [AllocationTagValue] false none Allocation tag values

VirtualCardsOrderRequest

{
  "VirtualCards": [
    {
      "FirstName": "",
      "LastName": "",
      "DateOfBirth": "",
      "Phone": "",
      "Email": "",
      "ProfileAddress": {
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": "",
        "Country": ""
      },
      "GroupId": 0,
      "RulesetId": 0,
      "AutoActivation": false,
      "FundCardAmount": 0,
      "CardDataWebhookURL": ""
    }
  ]
}

VirtualCardsOrderRequest

Properties

Name Type Required Restrictions Description
VirtualCards [VirtualCardCreationRequest] true none Virtual Cards requests

VirtualCardCreationRequest

{
  "FirstName": "",
  "LastName": "",
  "DateOfBirth": "",
  "Phone": "",
  "Email": "",
  "ProfileAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "GroupId": 0,
  "RulesetId": 0,
  "AutoActivation": false,
  "FundCardAmount": 0,
  "CardDataWebhookURL": ""
}

VirtualCardCreationRequest

Properties

Name Type Required Restrictions Description
FirstName string true none First Name
LastName string true none Last Name
DateOfBirth string(date-time) true none Cardholder date of birth
Phone string true none Phone number
Email string true none Cardholder email address
ProfileAddress Address false none none
GroupId integer(int32) false none Cardholder group id
RulesetId integer(int32) false none Cardhodler ruleset id
AutoActivation boolean false none Auto Activation true/false
FundCardAmount number(double) false none Fund Card Amount
CardDataWebhookURL string true none Card Data Webhook URL

VirtualCardsOrderResponse

{
  "VirtualCardOrderId": 0,
  "NumberOfCardsRequested": 0
}

VirtualCardsOrderResponse

Properties

Name Type Required Restrictions Description
VirtualCardOrderId integer(int32) false none Virtual Card Order Id
NumberOfCardsRequested integer(int32) false none Number Of Cards Requested

VirtualCardsGetOrderResponse

{
  "CardOrderId": 0,
  "OrderDateTime": "",
  "UserName": "",
  "Cards": [
    {
      "RequestId": 0,
      "AcctId": 0,
      "AccountNumber": "",
      "FirstName": "",
      "LastName": "",
      "DateOfBirth": "",
      "Phone": "",
      "Email": "",
      "HomeAddress": {
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": "",
        "Country": ""
      },
      "GroupId": 0,
      "SpendingRulesetsId": 0,
      "AutoActivation": false,
      "FundCardAmount": 0,
      "CardDataWebhookURL": "",
      "Status": "",
      "Errors": [
        "string"
      ],
      "ErrorMessage": ""
    }
  ]
}

VirtualCardsGetOrderResponse

Properties

Name Type Required Restrictions Description
CardOrderId integer(int32) false none VC Order Id
OrderDateTime string(date-time) false none Order DateTime
UserName string false none User Name
Cards [VirtualCardGetOrderResponse] false none Virtual Cards

VirtualCardGetOrderResponse

{
  "RequestId": 0,
  "AcctId": 0,
  "AccountNumber": "",
  "FirstName": "",
  "LastName": "",
  "DateOfBirth": "",
  "Phone": "",
  "Email": "",
  "HomeAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "GroupId": 0,
  "SpendingRulesetsId": 0,
  "AutoActivation": false,
  "FundCardAmount": 0,
  "CardDataWebhookURL": "",
  "Status": "",
  "Errors": [
    "string"
  ],
  "ErrorMessage": ""
}

VirtualCardGetOrderResponse

Properties

Name Type Required Restrictions Description
RequestId integer(int32) false none Request Id
AcctId integer(int32) false none Account Id
AccountNumber string false none Account Number
FirstName string false none First Name
LastName string false none Last Name
DateOfBirth string(date-time) false none Date Of Birth
Phone string false none Phone
Email string false none Email
HomeAddress Address false none none
GroupId integer(int32) false none Group Id
SpendingRulesetsId integer(int32) false none Spending Rulesets Id
AutoActivation boolean false none Auto Activation
FundCardAmount number(double) false none Fund Card Amount
CardDataWebhookURL string false none Card Data Webhook URL
Status string false none Status
Errors [string] false none Errors
ErrorMessage string false none Error Message

VirtualCardDataRequest

{
  "AcctId": 0,
  "CardDataWebhookURL": ""
}

VirtualCardDataRequest

Properties

Name Type Required Restrictions Description
AcctId integer(int32) false none Cardholder Account Id
CardDataWebhookURL string true none Card Data Webhook URL

Tag

{
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

Tag

Properties

Name Type Required Restrictions Description
Id string false none Unique Identifier of the tag definition
Type string false none Type of the tag definition {Dropdown, Text, Decimal, Yes/No}
Name string false none Name of the tag definition
Description string false none Descriptive information about the tag definition
IsEnabled boolean false none This flag determines if the tag definition is visible to the card holder
IsDeleted boolean false none If set to true, the tag is deleted
IsRequired boolean false none If set to true, tag is not required
Order integer(int32) false none Determines the position where tag appears. It is a 0 based index
ConcurrencyKey string false none Concurrent editing token
CreatedDateUtc string(date-time) false none Date when the tag definition was created
CreatedBy MetadataUser false none Metadata user
UpdatedDateUtc string(date-time) false none Date when the tag definition was last updated
UpdatedBy MetadataUser false none Metadata user
DeletedDateUtc string(date-time) false none Date when the tag definition was deleted
DeletedBy MetadataUser false none Metadata user

Enumerated Values

Property Value
Type Text
Type YesNo
Type Dropdown
Type Decimal
Type Allocation

UpdateDropdownTagRequest

{
  "Options": [
    {
      "Name": "",
      "Value": "",
      "Order": 0,
      "IsEnabled": false
    }
  ],
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false
}

UpdateDropdownTagRequest

Properties

Name Type Required Restrictions Description
Options [TagOptionRequest] true none Options
Name string true none Name of the tag definition
Description string false none Descriptive information about the tag definition
Order integer(int32) true none Determines the position where tag appears. It is a 0 based index
IsRequired boolean true none If set to true, tag is not required
IsEnabled boolean true none This flag determines if the tag definition is visible to the card holder

TagOptionRequest

{
  "Name": "",
  "Value": "",
  "Order": 0,
  "IsEnabled": false
}

TagOptionRequest

Properties

Name Type Required Restrictions Description
Name string true none Name of the option ("Display as" on PEX Admin site) for Type = Dropdown
Value string true none Value of an option ("Option Value" on PEX Admin site) for Type = Dropdown
Order integer(int32) false none Determines the position where tag option appears. It is a 0 based index
IsEnabled boolean false none This flag determines if the tag option is visible to the card holder for selection

DropdownTag

{
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "Options": [
    {
      "Name": "",
      "Value": "",
      "Order": 0,
      "IsEnabled": false
    }
  ]
}

DropdownTag

Properties

Name Type Required Restrictions Description
Id string false none Unique Identifier of the tag definition
Type string false none Type of the tag definition {Dropdown, Text, Decimal, Yes/No}
Name string false none Name of the tag definition
Description string false none Descriptive information about the tag definition
IsEnabled boolean false none This flag determines if the tag definition is visible to the card holder
IsDeleted boolean false none If set to true, the tag is deleted
IsRequired boolean false none If set to true, tag is not required
Order integer(int32) false none Determines the position where tag appears. It is a 0 based index
ConcurrencyKey string false none Concurrent editing token
CreatedDateUtc string(date-time) false none Date when the tag definition was created
CreatedBy MetadataUser false none Metadata user
UpdatedDateUtc string(date-time) false none Date when the tag definition was last updated
UpdatedBy MetadataUser false none Metadata user
DeletedDateUtc string(date-time) false none Date when the tag definition was deleted
DeletedBy MetadataUser false none Metadata user
Options [ITagOption] false none Dropdown tag options

Enumerated Values

Property Value
Type Text
Type YesNo
Type Dropdown
Type Decimal
Type Allocation

ITagOption

{
  "Name": "",
  "Value": "",
  "Order": 0,
  "IsEnabled": false
}

ITagOption

Properties

Name Type Required Restrictions Description
Name string false none Name of the option ("Display as" on PEX Admin site) for Type = Dropdown
Value string false none Value of an option ("Option Value" on PEX Admin site) for Type = Dropdown
Order integer(int32) false none Determines the position where tag option appears. It is a 0 based index
IsEnabled boolean false none This flag determines if the tag option is visible to the card holder for selection

CreateDropdownTagRequest

{
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false,
  "Options": [
    {
      "Name": "",
      "Value": "",
      "Order": 0,
      "IsEnabled": false
    }
  ]
}

CreateDropdownTagRequest

Properties

Name Type Required Restrictions Description
Name string true none Name of the tag definition
Description string false none Descriptive information about the tag definition
Order integer(int32) true none Determines the position where tag appears. It is a 0 based index
IsRequired boolean true none If set to true, tag is not required
IsEnabled boolean true none This flag determines if the tag definition is visible to the card holder
Options [CreateTagOptionRequest] true none Dropdown tag options

CreateTagOptionRequest

{
  "Name": "",
  "Value": "",
  "Order": 0,
  "IsEnabled": false
}

CreateTagOptionRequest

Properties

Name Type Required Restrictions Description
Name string true none Name of the option ("Display as" on PEX Admin site) for Type = Dropdown
Value string true none Value of an option ("Option Value" on PEX Admin site) for Type = Dropdown
Order integer(int32) false none Determines the position where tag option appears. It is a 0 based index
IsEnabled boolean false none This flag determines if the tag option is visible to the card holder for selection

TagOptionsRequest

{
  "Options": [
    {
      "Name": "",
      "Value": "",
      "Order": 0,
      "IsEnabled": false
    }
  ]
}

TagOptionsRequest

Properties

Name Type Required Restrictions Description
Options [TagOptionRequest] true none Options

CreateTextTagRequest

{
  "Length": 0,
  "ValidationType": "",
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false
}

CreateTextTagRequest

Properties

Name Type Required Restrictions Description
Length integer(int32) true none Length
ValidationType string false none Validation type
Name string true none Name of the tag definition
Description string false none Descriptive information about the tag definition
Order integer(int32) true none Determines the position where tag appears. It is a 0 based index
IsRequired boolean true none If set to true, tag is not required
IsEnabled boolean true none This flag determines if the tag definition is visible to the card holder

Enumerated Values

Property Value
ValidationType None
ValidationType Numeric
ValidationType Alphabetic
ValidationType Alphanumeric

TextTag

{
  "Length": 0,
  "ValidationType": "",
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  }
}

TextTag

Properties

Name Type Required Restrictions Description
Length integer(int32) false none Defines the number of characters allowed for this tag. Length takes numeric values E.g. 5 means the tag can have up to 5 characters. By default 200 char is max length
ValidationType string false none Determines the kind of values this tag definition is allowed to have. Valid values are None, Numeric, Alphabetic, and Alphanumeric
Id string false none Unique Identifier of the tag definition
Type string false none Type of the tag definition {Dropdown, Text, Decimal, Yes/No}
Name string false none Name of the tag definition
Description string false none Descriptive information about the tag definition
IsEnabled boolean false none This flag determines if the tag definition is visible to the card holder
IsDeleted boolean false none If set to true, the tag is deleted
IsRequired boolean false none If set to true, tag is not required
Order integer(int32) false none Determines the position where tag appears. It is a 0 based index
ConcurrencyKey string false none Concurrent editing token
CreatedDateUtc string(date-time) false none Date when the tag definition was created
CreatedBy MetadataUser false none Metadata user
UpdatedDateUtc string(date-time) false none Date when the tag definition was last updated
UpdatedBy MetadataUser false none Metadata user
DeletedDateUtc string(date-time) false none Date when the tag definition was deleted
DeletedBy MetadataUser false none Metadata user

Enumerated Values

Property Value
ValidationType None
ValidationType Numeric
ValidationType Alphabetic
ValidationType Alphanumeric
Type Text
Type YesNo
Type Dropdown
Type Decimal
Type Allocation

UpdateTextTagRequest

{
  "Length": 0,
  "ValidationType": "",
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false
}

UpdateTextTagRequest

Properties

Name Type Required Restrictions Description
Length integer(int32) true none Length
ValidationType string false none Validation type
Name string true none Name of the tag definition
Description string false none Descriptive information about the tag definition
Order integer(int32) true none Determines the position where tag appears. It is a 0 based index
IsRequired boolean true none If set to true, tag is not required
IsEnabled boolean true none This flag determines if the tag definition is visible to the card holder

Enumerated Values

Property Value
ValidationType None
ValidationType Numeric
ValidationType Alphabetic
ValidationType Alphanumeric

CreateTagRequest

{
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false
}

CreateTagRequest

Properties

Name Type Required Restrictions Description
Name string true none Name of the tag definition
Description string false none Descriptive information about the tag definition
Order integer(int32) true none Determines the position where tag appears. It is a 0 based index
IsRequired boolean true none If set to true, tag is not required
IsEnabled boolean true none This flag determines if the tag definition is visible to the card holder

UpdateTagRequest

{
  "Name": "",
  "Description": "",
  "Order": 0,
  "IsRequired": false,
  "IsEnabled": false
}

UpdateTagRequest

Properties

Name Type Required Restrictions Description
Name string true none Name of the tag definition
Description string false none Descriptive information about the tag definition
Order integer(int32) true none Determines the position where tag appears. It is a 0 based index
IsRequired boolean true none If set to true, tag is not required
IsEnabled boolean true none This flag determines if the tag definition is visible to the card holder

AllocationTag

{
  "Id": "",
  "Type": "",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0
  },
  "Tags": [
    {
      "TagId": "",
      "Order": ""
    }
  ]
}

AllocationTag

Properties

Name Type Required Restrictions Description
Id string false none Unique Identifier of the tag definition
Type string false none Type of the tag definition {Dropdown, Text, Decimal, Yes/No}
Name string false none Name of the tag definition
Description string false none Descriptive information about the tag definition
IsEnabled boolean false none This flag determines if the tag definition is visible to the card holder
IsDeleted boolean false none If set to true, the tag is deleted
IsRequired boolean false none If set to true, tag is not required
Order integer(int32) false none Determines the position where tag appears. It is a 0 based index
ConcurrencyKey string false none Concurrent editing token
CreatedDateUtc string(date-time) false none Date when the tag definition was created
CreatedBy MetadataUser false none Metadata user
UpdatedDateUtc string(date-time) false none Date when the tag definition was last updated
UpdatedBy MetadataUser false none Metadata user
DeletedDateUtc string(date-time) false none Date when the tag definition was deleted
DeletedBy MetadataUser false none Metadata user
Tags [IAllocationTagItem] false none Tag definitions collection

Enumerated Values

Property Value
Type Text
Type YesNo
Type Dropdown
Type Decimal
Type Allocation

IAllocationTagItem

{
  "TagId": "",
  "Order": ""
}

IAllocationTagItem

Properties

Name Type Required Restrictions Description
TagId string false none Allocation item tag id
Order string false none Allocation item tag order

UpdateTagOptionRequest

{
  "Name": "",
  "Value": "",
  "Order": 0,
  "IsEnabled": false
}

UpdateTagOptionRequest

Properties

Name Type Required Restrictions Description
Name string true none Name of the option ("Display as" on PEX Admin site) for Type = Dropdown
Value string true none Value of an option ("Option Value" on PEX Admin site) for Type = Dropdown
Order integer(int32) false none Determines the position where tag option appears. It is a 0 based index
IsEnabled boolean false none This flag determines if the tag option is visible to the card holder for selection

TagOption

{
  "Name": "",
  "Value": "",
  "Order": 0,
  "IsEnabled": false
}

TagOption

Properties

Name Type Required Restrictions Description
Name string false none Name of the option ("Display as" on PEX Admin site) for Type = Dropdown
Value string false none Value of an option ("Option Value" on PEX Admin site) for Type = Dropdown
Order integer(int32) false none Determines the position where tag option appears. It is a 0 based index
IsEnabled boolean false none This flag determines if the tag option is visible to the card holder for selection

GetOneTimeTransferResponse

{
  "OneTimeTransferDetails": [
    {
      "TransferRequestId": 0,
      "BankInformation": {
        "ExternalBankAcctId": 0,
        "RoutingNumber": "",
        "BankAccountNumber": "",
        "BankName": "",
        "BankAccountType": "",
        "IsActive": false
      },
      "Amount": 0,
      "Status": "",
      "RequestedDate": "",
      "FundAvailableDate": ""
    }
  ]
}

GetOneTimeTransferResponse

Properties

Name Type Required Restrictions Description
OneTimeTransferDetails [OneTimeTransferDetail] true none List of one time transfer details

OneTimeTransferDetail

{
  "TransferRequestId": 0,
  "BankInformation": {
    "ExternalBankAcctId": 0,
    "RoutingNumber": "",
    "BankAccountNumber": "",
    "BankName": "",
    "BankAccountType": "",
    "IsActive": false
  },
  "Amount": 0,
  "Status": "",
  "RequestedDate": "",
  "FundAvailableDate": ""
}

OneTimeTransferDetail

Properties

Name Type Required Restrictions Description
TransferRequestId integer(int32) true none Unique one time transfer request id
BankInformation ExternalBankAccount true none External bank account details
Amount number(double) true none Amount of the transfer, rounded to 2 decimal places (positive = DEBIT, negative = CREDIT.
Status string true none Status of one time transfer request
RequestedDate string(date-time) true none Date one time transfer request was made
FundAvailableDate string(date-time) true none Date funds will be available

UpdateBusinessProfileRequest

{
  "ProfileAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "Phone": "",
  "PhoneExtension": "",
  "NormalizeAddress": false
}

UpdateBusinessProfileRequest

Properties

Name Type Required Restrictions Description
ProfileAddress Address true none none
Phone string false none Phone number
PhoneExtension string false none Phone Extension
NormalizeAddress boolean false none Normalize address flag

GetBusinessProfileResponse

{
  "BusinessAcctId": 0,
  "FirstName": "",
  "LastName": "",
  "ProfileAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "Phone": "",
  "PhoneExtension": "",
  "DateOfBirth": "",
  "Email": ""
}

GetBusinessProfileResponse

Properties

Name Type Required Restrictions Description
BusinessAcctId integer(int32) true none Business account id
FirstName string true none Business contact first name
LastName string true none Business contact last name
ProfileAddress AddressContact true none none
Phone string false none Phone number
PhoneExtension string false none Phone Extension
DateOfBirth string(date-time) true none Business contact date of birth
Email string true none Business contact email address

EditAdminRequest

{
  "FirstName": "",
  "MiddleName": "",
  "LastName": "",
  "NormalizeAddress": false,
  "ProfileAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "Phone": "",
  "AltPhone": "",
  "DateOfBirth": "",
  "Email": "",
  "Permissions": {
    "ViewAdministration": false,
    "AddEditTerminateAdministrator": false,
    "RequestDeleteACHTransfer": false,
    "EditBusinessProfile": false,
    "AddEditTerminateCard": false,
    "RequestCardFunding": false,
    "ViewCardNumberReport": false,
    "ModifyTransactionNotes": false,
    "AdministerInstantIssueCards": false
  }
}

EditAdminRequest

Properties

Name Type Required Restrictions Description
FirstName string true none Admin first name
MiddleName string false none Admin middle name
LastName string true none Admin last name
NormalizeAddress boolean false none Normalize address
ProfileAddress Address true none none
Phone string false none Phone number
AltPhone string false none Alternative phone number
DateOfBirth string(date-time) false none Admin date of birth
Email string true none Admin email address
Permissions AdminPermissions false none Details about the permissions for an admin

AdminPermissions

{
  "ViewAdministration": false,
  "AddEditTerminateAdministrator": false,
  "RequestDeleteACHTransfer": false,
  "EditBusinessProfile": false,
  "AddEditTerminateCard": false,
  "RequestCardFunding": false,
  "ViewCardNumberReport": false,
  "ModifyTransactionNotes": false,
  "AdministerInstantIssueCards": false
}

AdminPermissions

Properties

Name Type Required Restrictions Description
ViewAdministration boolean true none Whether or not admin can view an administrator
AddEditTerminateAdministrator boolean true none Whether or not admin can create, edit, or delete an administrator
RequestDeleteACHTransfer boolean true none Whether or not admin can create or delete ACH transfer requests
EditBusinessProfile boolean true none Whether or not admin can edit the business profile
AddEditTerminateCard boolean true none Whether or not admin can create, edit, or terminate a card
RequestCardFunding boolean true none Whether or not admin can create a card funding request
ViewCardNumberReport boolean true none Whether or not admin can view the card number report
ModifyTransactionNotes boolean true none Whether or not admin can modify transaction notes
AdministerInstantIssueCards boolean false none Whether or not admin can administer instant issue cards

EditAdminResponse

{
  "Admin": {
    "BusinessAdminId": 0,
    "FirstName": "",
    "MiddleName": "",
    "LastName": "",
    "ProfileAddress": {
      "ContactName": "",
      "AddressLine1": "",
      "AddressLine2": "",
      "City": "",
      "State": "",
      "PostalCode": "",
      "Country": ""
    },
    "Phone": "",
    "AltPhone": "",
    "DateOfBirth": "",
    "Email": "",
    "Permissions": {
      "ViewAdministration": false,
      "AddEditTerminateAdministrator": false,
      "RequestDeleteACHTransfer": false,
      "EditBusinessProfile": false,
      "AddEditTerminateCard": false,
      "RequestCardFunding": false,
      "ViewCardNumberReport": false,
      "ModifyTransactionNotes": false,
      "AdministerInstantIssueCards": false
    },
    "Status": ""
  }
}

EditAdminResponse

Properties

Name Type Required Restrictions Description
Admin BusinessAdmin true none Details about the business admin

BusinessAdmin

{
  "BusinessAdminId": 0,
  "FirstName": "",
  "MiddleName": "",
  "LastName": "",
  "ProfileAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "Phone": "",
  "AltPhone": "",
  "DateOfBirth": "",
  "Email": "",
  "Permissions": {
    "ViewAdministration": false,
    "AddEditTerminateAdministrator": false,
    "RequestDeleteACHTransfer": false,
    "EditBusinessProfile": false,
    "AddEditTerminateCard": false,
    "RequestCardFunding": false,
    "ViewCardNumberReport": false,
    "ModifyTransactionNotes": false,
    "AdministerInstantIssueCards": false
  },
  "Status": ""
}

BusinessAdmin

Properties

Name Type Required Restrictions Description
BusinessAdminId integer(int32) true none Unique business admin id
FirstName string true none First name
MiddleName string false none Middle name
LastName string true none Last name
ProfileAddress AddressContact true none none
Phone string false none Phone number
AltPhone string false none Alternative phone number
DateOfBirth string(date-time) true none Admin date of birth
Email string true none Admin email address
Permissions AdminPermissions true none Details about the permissions for an admin
Status string true none Status of the business admin

GetAdminResponse

{
  "Admin": {
    "BusinessAdminId": 0,
    "FirstName": "",
    "MiddleName": "",
    "LastName": "",
    "ProfileAddress": {
      "ContactName": "",
      "AddressLine1": "",
      "AddressLine2": "",
      "City": "",
      "State": "",
      "PostalCode": "",
      "Country": ""
    },
    "Phone": "",
    "AltPhone": "",
    "DateOfBirth": "",
    "Email": "",
    "Permissions": {
      "ViewAdministration": false,
      "AddEditTerminateAdministrator": false,
      "RequestDeleteACHTransfer": false,
      "EditBusinessProfile": false,
      "AddEditTerminateCard": false,
      "RequestCardFunding": false,
      "ViewCardNumberReport": false,
      "ModifyTransactionNotes": false,
      "AdministerInstantIssueCards": false
    },
    "Status": ""
  }
}

GetAdminResponse

Properties

Name Type Required Restrictions Description
Admin BusinessAdmin true none Details about the business admin

GetAdminListResponse

{
  "BusinessAdmins": [
    {
      "BusinessAdminId": 0,
      "FirstName": "",
      "MiddleName": "",
      "LastName": "",
      "ProfileAddress": {
        "ContactName": "",
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": "",
        "Country": ""
      },
      "Phone": "",
      "AltPhone": "",
      "DateOfBirth": "",
      "Email": "",
      "Permissions": {
        "ViewAdministration": false,
        "AddEditTerminateAdministrator": false,
        "RequestDeleteACHTransfer": false,
        "EditBusinessProfile": false,
        "AddEditTerminateCard": false,
        "RequestCardFunding": false,
        "ViewCardNumberReport": false,
        "ModifyTransactionNotes": false,
        "AdministerInstantIssueCards": false
      },
      "Status": ""
    }
  ]
}

GetAdminListResponse

Properties

Name Type Required Restrictions Description
BusinessAdmins [BusinessAdmin] true none List of details about business admins

GetBusinessBalanceResponse

{
  "BusinessAccountId": 0,
  "BusinessAccountBalance": 0
}

GetBusinessBalanceResponse

Properties

Name Type Required Restrictions Description
BusinessAccountId integer(int32) false none Business account id
BusinessAccountBalance number(double) false none Business account balance

AdvancedCardholderDetailsResponse

{
  "AccountId": 0,
  "Group": {
    "Id": 0,
    "GroupName": ""
  },
  "AccountStatus": "",
  "LedgerBalance": 0,
  "AvailableBalance": 0,
  "ProfileAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "Phone": "",
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "ShippingPhone": "",
  "DateOfBirth": "",
  "Email": "",
  "CardList": [
    {
      "CardId": 0,
      "IssuedDate": "",
      "ExpirationDate": "",
      "Last4CardNumber": "",
      "CardStatus": ""
    }
  ],
  "SpendingRulesetId": 0,
  "SpendRules": {
    "MerchantCategories": [
      {
        "Id": 0,
        "Name": "",
        "Description": "",
        "TransactionLimit": 0,
        "DailySpendLimit": 0,
        "WeeklySpendLimit": 0,
        "MonthlySpendLimit": 0,
        "YearlySpendLimit": 0,
        "LifetimeSpendLimit": 0
      }
    ],
    "InternationalSpendEnabled": false,
    "IsDailySpendLimitEnabled": false,
    "DailySpendLimit": 0,
    "WeeklySpendLimit": 0,
    "MonthlySpendLimit": 0,
    "YearlySpendLimit": 0,
    "LifetimeSpendLimit": 0,
    "CardNotPresentUse": false,
    "CardPresence": 0,
    "UsePexAccountBalanceForAuths": false,
    "UseCustomerAuthDecision": false,
    "DaysOfWeekRestrictions": [
      "string"
    ],
    "UsStateRestrictions": [
      "string"
    ]
  },
  "ScheduledFunding": {
    "Amount": 0,
    "Frequency": ""
  },
  "CustomId": "",
  "IsVirtual": false
}

AdvancedCardholderDetailsResponse

Properties

Name Type Required Restrictions Description
AccountId integer(int32) false none Unique cardholder account id
Group CardholderGroup false none Details about a cardholder group
AccountStatus string false none Cardholder account status (OPEN or CLOSED)
LedgerBalance number(double) false none Ledger balance for the card account, rounded to 2 decimal places
AvailableBalance number(double) false none Available balance for the card account, rounded to 2 decimal places
ProfileAddress AddressContact false none none
Phone string false none Phone number
ShippingAddress AddressContact false none none
ShippingPhone string false none Shipping Phone number
DateOfBirth string(date-time) false none Cardholder date of birth
Email string false none Cardholder email address
CardList [CardDetail] false none List of details about cards associated with the account
SpendingRulesetId integer(int32) false none SpendingRulesetId for the cardholder account
SpendRules AdvancedSpendRulesResponse false none Advanced Spend Rules Response
ScheduledFunding ScheduledFunding false none Details about scheduled funding
CustomId string false none User defined Id which can be assigned to Card holder profile (alphanumeric up to 50 characters)
IsVirtual boolean false none Identifies virtual cardholder

AdvancedSpendingRulesetItemResponse

{
  "Id": 0,
  "Name": "",
  "CardCount": 0,
  "DailySpendLimit": 0,
  "WeeklySpendLimit": 0,
  "MonthlySpendLimit": 0,
  "YearlySpendLimit": 0,
  "LifetimeSpendLimit": 0,
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false,
  "DaysOfWeekRestrictions": [
    "string"
  ],
  "UsStateRestrictions": [
    "string"
  ],
  "MccRestrictions": false,
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "Description": "",
      "TransactionLimit": 0,
      "DailySpendLimit": 0,
      "WeeklySpendLimit": 0,
      "MonthlySpendLimit": 0,
      "YearlySpendLimit": 0,
      "LifetimeSpendLimit": 0
    }
  ]
}

AdvancedSpendingRulesetItemResponse

Properties

Name Type Required Restrictions Description
Id integer(int32) false none Id
Name string false none Name
CardCount integer(int32) false none Card Count
DailySpendLimit number(double) false none Daily Spend Limit
WeeklySpendLimit number(double) false none Weekly Spend Limit
MonthlySpendLimit number(double) false none Monthly Spend Limit
YearlySpendLimit number(double) false none Yearly Spend Limit
LifetimeSpendLimit number(double) false none Lifetime Spend Limit
InternationalAllowed boolean false none International Allowed
CardNotPresentAllowed boolean false none Card Not Present Allowed
CardPresence integer(int32) false none CardPresence: Control how PEX Card can be used for purchases, either physically present at the point-of-sale or used virtually over the Internet or phone.
0 - Card present (in person) transaction only. If the cardholder only makes purchase in person, choose this option for better fraud protection.
1 - No restrictions. A cardholder can make purchases both in-person and online/over the internet.
2 - Card not present (online) transactions only. If the cardholder only makes purchases over the internet/online, choose this option for better fraud protection.
UsePexAccountBalanceForAuths boolean false none Use Pex Account Balance For Auths
UseCustomerAuthDecision boolean false none Use Customer Auth Decision
DaysOfWeekRestrictions [string] false none Whether or not limit days of the week for spend
UsStateRestrictions [string] false none Whether or not limit US States for spend
MccRestrictions boolean false none MCC Restrictions
MerchantCategories [AdvancedSpendingRulesetMerchantCategoryItemResponse] false none Merchant Categories

AdvancedSpendingRulesetMerchantCategoryItemResponse

{
  "Id": 0,
  "Name": "",
  "Description": "",
  "TransactionLimit": 0,
  "DailySpendLimit": 0,
  "WeeklySpendLimit": 0,
  "MonthlySpendLimit": 0,
  "YearlySpendLimit": 0,
  "LifetimeSpendLimit": 0
}

AdvancedSpendingRulesetMerchantCategoryItemResponse

Properties

Name Type Required Restrictions Description
Id integer(int32) false none Id
Name string false none Name
Description string false none Description
TransactionLimit number(double) false none Transaction Limit
DailySpendLimit number(double) false none Daily Spend Limit
WeeklySpendLimit number(double) false none Weekly Spend Limit
MonthlySpendLimit number(double) false none Monthly Spend Limit
YearlySpendLimit number(double) false none Yearly Spend Limit
LifetimeSpendLimit number(double) false none Lifetime Spend Limit

CreateAdvancedSpendingRulesetRequest

{
  "Name": "",
  "DailySpendLimit": 0,
  "WeeklySpendLimit": 0,
  "MonthlySpendLimit": 0,
  "YearlySpendLimit": 0,
  "LifetimeSpendLimit": 0,
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "TransactionLimit": 0,
      "DailySpendLimit": 0,
      "WeeklySpendLimit": 0,
      "MonthlySpendLimit": 0,
      "YearlySpendLimit": 0,
      "LifetimeSpendLimit": 0
    }
  ],
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false,
  "DaysOfWeekRestrictions": [
    "string"
  ],
  "UsStateRestrictions": [
    "string"
  ]
}

CreateAdvancedSpendingRulesetRequest

Properties

Name Type Required Restrictions Description
Name string true none Advance Spending Ruleset name
DailySpendLimit number(double) false none Advance Spending Ruleset daily spending limit
WeeklySpendLimit number(double) false none Advance Spending Ruleset weekly spending limit
MonthlySpendLimit number(double) false none Advance Spending Ruleset monthly spending limit
YearlySpendLimit number(double) false none Advance Spending Ruleset yearly spending limit
LifetimeSpendLimit number(double) false none Advance Spending Ruleset lifetime spending limit
MerchantCategories [AdvancedSpendingRulesetMerchantCategory] false none Merchant categories
InternationalAllowed boolean false none Advance Spending Ruleset international purchases allowed
CardNotPresentAllowed boolean false none Advance Spending Ruleset card not present allowed on purchases
CardPresence integer(int32) false none Advance Spending Ruleset card not present allowed or not allowed on purchases
UsePexAccountBalanceForAuths boolean false none Advance Spending Ruleset use PEX account balance instead of card balance allowed
UseCustomerAuthDecision boolean false none Advance Spending Ruleset use customer authorization decision allowed
DaysOfWeekRestrictions [string] false none Whether or not limit days of the week for spend
UsStateRestrictions [string] false none Whether or not limit US States for spend

AdvancedSpendingRulesetMerchantCategory

{
  "Id": 0,
  "Name": "",
  "TransactionLimit": 0,
  "DailySpendLimit": 0,
  "WeeklySpendLimit": 0,
  "MonthlySpendLimit": 0,
  "YearlySpendLimit": 0,
  "LifetimeSpendLimit": 0
}

AdvancedSpendingRulesetMerchantCategory

Properties

Name Type Required Restrictions Description
Id integer(int32) false none Merchant Category Id
Name string false none Merchant Category Name
TransactionLimit number(double) false none Transaction Limit
DailySpendLimit number(double) false none Daily limit
WeeklySpendLimit number(double) false none Weekly limit
MonthlySpendLimit number(double) false none Monthly limit
YearlySpendLimit number(double) false none Yearly limit
LifetimeSpendLimit number(double) false none Lifetime limit

CreateAdvancedSpendingRulesetResponse

{
  "RulesetId": 0
}

CreateAdvancedSpendingRulesetResponse

Properties

Name Type Required Restrictions Description
RulesetId integer(int32) false none Advance Spending Ruleset ID

UpdateAdvancedSpendingRulesetRequest

{
  "Id": 0,
  "Name": "",
  "DailySpendLimit": 0,
  "WeeklySpendLimit": 0,
  "MonthlySpendLimit": 0,
  "YearlySpendLimit": 0,
  "LifetimeSpendLimit": 0,
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "TransactionLimit": 0,
      "DailySpendLimit": 0,
      "WeeklySpendLimit": 0,
      "MonthlySpendLimit": 0,
      "YearlySpendLimit": 0,
      "LifetimeSpendLimit": 0
    }
  ],
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false,
  "DaysOfWeekRestrictions": [
    "string"
  ],
  "UsStateRestrictions": [
    "string"
  ]
}

UpdateAdvancedSpendingRulesetRequest

Properties

Name Type Required Restrictions Description
Id integer(int32) true none Advance Spending Ruleset Id
Name string true none Advance Spending Ruleset name
DailySpendLimit number(double) false none Advance Spending Ruleset daily spending limit
WeeklySpendLimit number(double) false none Advance Spending Ruleset weekly spending limit
MonthlySpendLimit number(double) false none Advance Spending Ruleset monthly spending limit
YearlySpendLimit number(double) false none Advance Spending Ruleset yearly spending limit
LifetimeSpendLimit number(double) false none Advance Spending Ruleset lifetime spending limit
MerchantCategories [AdvancedSpendingRulesetMerchantCategory] false none Merchant categories
InternationalAllowed boolean false none Advance Spending Ruleset international purchases allowed
CardNotPresentAllowed boolean false none Advance Spending Ruleset card not present allowed on purchases
CardPresence integer(int32) false none Advance Spending Ruleset card not present allowed or not allowed on purchases
UsePexAccountBalanceForAuths boolean false none Advance Spending Ruleset use PEX account balance instead of card balance allowed
UseCustomerAuthDecision boolean false none Advance Spending Ruleset use customer authorization decision allowed
DaysOfWeekRestrictions [string] false none Whether or not limit days of the week for spend
UsStateRestrictions [string] false none Whether or not limit US States for spend

DeleteAdvancedSpendingRulesetRequest

{
  "Id": 0
}

DeleteAdvancedSpendingRulesetRequest

Properties

Name Type Required Restrictions Description
Id integer(int32) true none Advance Spending Ruleset Id

GetSpendingRulesetsResponse

{
  "SpendingRulesets": [
    {
      "RulesetId": 0,
      "SpendingRulesetCategories": {
        "CategoryId": 0,
        "AssociationsOrganizationsAllowed": false,
        "AutomotiveDealersAllowed": false,
        "EducationalServicesAllowed": false,
        "EntertainmentAllowed": false,
        "FuelPumpsAllowed": false,
        "GasStationsConvenienceStoresAllowed": false,
        "GroceryStoresAllowed": false,
        "HealthcareChildcareServicesAllowed": false,
        "ProfessionalServicesAllowed": false,
        "RestaurantsAllowed": false,
        "RetailStoresAllowed": false,
        "TravelTransportationAllowed": false,
        "HardwareStoresAllowed": false
      },
      "MccRestrictions": false,
      "BacctId": 0,
      "Name": "",
      "CountCardsPresent": 0,
      "DailySpendLimit": 0,
      "WeeklySpendLimit": 0,
      "MonthlySpendLimit": 0,
      "YearlySpendLimit": 0,
      "LifetimeSpendLimit": 0,
      "InternationalAllowed": false,
      "CardNotPresentAllowed": false,
      "CardPresence": 0,
      "UsePexAccountBalanceForAuths": false,
      "UseCustomerAuthDecision": false
    }
  ]
}

GetSpendingRulesetsResponse

Properties

Name Type Required Restrictions Description
SpendingRulesets [SpendingRuleset] false none none

SpendingRuleset

{
  "RulesetId": 0,
  "SpendingRulesetCategories": {
    "CategoryId": 0,
    "AssociationsOrganizationsAllowed": false,
    "AutomotiveDealersAllowed": false,
    "EducationalServicesAllowed": false,
    "EntertainmentAllowed": false,
    "FuelPumpsAllowed": false,
    "GasStationsConvenienceStoresAllowed": false,
    "GroceryStoresAllowed": false,
    "HealthcareChildcareServicesAllowed": false,
    "ProfessionalServicesAllowed": false,
    "RestaurantsAllowed": false,
    "RetailStoresAllowed": false,
    "TravelTransportationAllowed": false,
    "HardwareStoresAllowed": false
  },
  "MccRestrictions": false,
  "BacctId": 0,
  "Name": "",
  "CountCardsPresent": 0,
  "DailySpendLimit": 0,
  "WeeklySpendLimit": 0,
  "MonthlySpendLimit": 0,
  "YearlySpendLimit": 0,
  "LifetimeSpendLimit": 0,
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false
}

SpendingRuleset

Properties

Name Type Required Restrictions Description
RulesetId integer(int32) false none none
SpendingRulesetCategories SpendingRulesetCategories false none none
MccRestrictions boolean false read-only none
BacctId integer(int32) false none none
Name string true none none
CountCardsPresent integer(int32) false none none
DailySpendLimit number(double) false none none
WeeklySpendLimit number(double) false none none
MonthlySpendLimit number(double) false none none
YearlySpendLimit number(double) false none none
LifetimeSpendLimit number(double) false none none
InternationalAllowed boolean false none none
CardNotPresentAllowed boolean false none none
CardPresence integer(int32) false none none
UsePexAccountBalanceForAuths boolean false none none
UseCustomerAuthDecision boolean false none none

SpendingRulesetCategories

{
  "CategoryId": 0,
  "AssociationsOrganizationsAllowed": false,
  "AutomotiveDealersAllowed": false,
  "EducationalServicesAllowed": false,
  "EntertainmentAllowed": false,
  "FuelPumpsAllowed": false,
  "GasStationsConvenienceStoresAllowed": false,
  "GroceryStoresAllowed": false,
  "HealthcareChildcareServicesAllowed": false,
  "ProfessionalServicesAllowed": false,
  "RestaurantsAllowed": false,
  "RetailStoresAllowed": false,
  "TravelTransportationAllowed": false,
  "HardwareStoresAllowed": false
}

SpendingRulesetCategories

Properties

Name Type Required Restrictions Description
CategoryId integer(int32) false none none
AssociationsOrganizationsAllowed boolean false none none
AutomotiveDealersAllowed boolean false none none
EducationalServicesAllowed boolean false none none
EntertainmentAllowed boolean false none none
FuelPumpsAllowed boolean false none none
GasStationsConvenienceStoresAllowed boolean false none none
GroceryStoresAllowed boolean false none none
HealthcareChildcareServicesAllowed boolean false none none
ProfessionalServicesAllowed boolean false none none
RestaurantsAllowed boolean false none none
RetailStoresAllowed boolean false none none
TravelTransportationAllowed boolean false none none
HardwareStoresAllowed boolean false none none

CreateSpendingRulesetRequest

{
  "Name": "",
  "DailySpendLimit": 0,
  "SpendingRulesetCategories": {
    "CategoryId": 0,
    "AssociationsOrganizationsAllowed": false,
    "AutomotiveDealersAllowed": false,
    "EducationalServicesAllowed": false,
    "EntertainmentAllowed": false,
    "FuelPumpsAllowed": false,
    "GasStationsConvenienceStoresAllowed": false,
    "GroceryStoresAllowed": false,
    "HealthcareChildcareServicesAllowed": false,
    "ProfessionalServicesAllowed": false,
    "RestaurantsAllowed": false,
    "RetailStoresAllowed": false,
    "TravelTransportationAllowed": false,
    "HardwareStoresAllowed": false
  },
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false
}

CreateSpendingRulesetRequest

Properties

Name Type Required Restrictions Description
Name string true none Spending Ruleset name
DailySpendLimit number(double) false none Spending Ruleset daily spending limit
SpendingRulesetCategories SpendingRulesetCategories false none none
InternationalAllowed boolean false none Spending Ruleset MCC restrictions
CardNotPresentAllowed boolean false none Spending Ruleset card not present allowed on purchases
CardPresence integer(int32) false none Used to evaluate spend policy based on physical or virtual use of card
UsePexAccountBalanceForAuths boolean false none Spending Ruleset use PEX account balance instead of card balance allowed
UseCustomerAuthDecision boolean false none Spending Ruleset use customer authorization decision allowed

CreateSpendingRulesetResponse

{
  "RulesetId": 0
}

CreateSpendingRulesetResponse

Properties

Name Type Required Restrictions Description
RulesetId integer(int32) false none none

UpdateSpendingRulesetRequest

{
  "RulesetId": 0,
  "Name": "",
  "CountCardsPresent": 0,
  "DailySpendLimit": 0,
  "SpendingRulesetCategories": {
    "CategoryId": 0,
    "AssociationsOrganizationsAllowed": false,
    "AutomotiveDealersAllowed": false,
    "EducationalServicesAllowed": false,
    "EntertainmentAllowed": false,
    "FuelPumpsAllowed": false,
    "GasStationsConvenienceStoresAllowed": false,
    "GroceryStoresAllowed": false,
    "HealthcareChildcareServicesAllowed": false,
    "ProfessionalServicesAllowed": false,
    "RestaurantsAllowed": false,
    "RetailStoresAllowed": false,
    "TravelTransportationAllowed": false,
    "HardwareStoresAllowed": false
  },
  "MccRestrictions": false,
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false
}

UpdateSpendingRulesetRequest

Properties

Name Type Required Restrictions Description
RulesetId integer(int32) true none Spending Ruleset Id
Name string true none Spending Ruleset name
CountCardsPresent integer(int32) false none Spending Ruleset count cards present
DailySpendLimit number(double) false none Spending Ruleset daily spending limit
SpendingRulesetCategories SpendingRulesetCategories false none none
MccRestrictions boolean false read-only Spending Ruleset MCC restrictions
InternationalAllowed boolean false none Spending Ruleset international purchases allowed
CardNotPresentAllowed boolean false none Spending Ruleset card not present allowed on purchases
CardPresence integer(int32) false none Used to evaluate spend policy based on physical or virtual use of card
UsePexAccountBalanceForAuths boolean false none Spending Ruleset use PEX account balance instead of card balance allowed
UseCustomerAuthDecision boolean false none Spending Ruleset use customer authorization decision allowed

SpendingRulesetResponse

{
  "RulesetId": 0
}

SpendingRulesetResponse

Properties

Name Type Required Restrictions Description
RulesetId integer(int32) false none Spending Ruleset Id

DeleteSpendingRulesetRequest

{
  "RulesetId": 0
}

DeleteSpendingRulesetRequest

Properties

Name Type Required Restrictions Description
RulesetId integer(int32) true none Spending Ruleset Id

GetSpendingRulesetResponse

{
  "SpendingRuleset": {
    "RulesetId": 0,
    "Name": "",
    "DailySpendLimit": 0,
    "SpendingRulesetCategories": {
      "CategoryId": 0,
      "AssociationsOrganizationsAllowed": false,
      "AutomotiveDealersAllowed": false,
      "EducationalServicesAllowed": false,
      "EntertainmentAllowed": false,
      "FuelPumpsAllowed": false,
      "GasStationsConvenienceStoresAllowed": false,
      "GroceryStoresAllowed": false,
      "HealthcareChildcareServicesAllowed": false,
      "ProfessionalServicesAllowed": false,
      "RestaurantsAllowed": false,
      "RetailStoresAllowed": false,
      "TravelTransportationAllowed": false,
      "HardwareStoresAllowed": false
    },
    "MccRestrictions": false,
    "InternationalAllowed": false,
    "CardNotPresentAllowed": false,
    "CardPresence": 0,
    "UsePexAccountBalanceForAuths": false,
    "UseCustomerAuthDecision": false
  }
}

GetSpendingRulesetResponse

Properties

Name Type Required Restrictions Description
SpendingRuleset SpendingRulesetGet false none Spending Ruleset Get

SpendingRulesetGet

{
  "RulesetId": 0,
  "Name": "",
  "DailySpendLimit": 0,
  "SpendingRulesetCategories": {
    "CategoryId": 0,
    "AssociationsOrganizationsAllowed": false,
    "AutomotiveDealersAllowed": false,
    "EducationalServicesAllowed": false,
    "EntertainmentAllowed": false,
    "FuelPumpsAllowed": false,
    "GasStationsConvenienceStoresAllowed": false,
    "GroceryStoresAllowed": false,
    "HealthcareChildcareServicesAllowed": false,
    "ProfessionalServicesAllowed": false,
    "RestaurantsAllowed": false,
    "RetailStoresAllowed": false,
    "TravelTransportationAllowed": false,
    "HardwareStoresAllowed": false
  },
  "MccRestrictions": false,
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false
}

SpendingRulesetGet

Properties

Name Type Required Restrictions Description
RulesetId integer(int32) false none Ruleset Id
Name string true none Name
DailySpendLimit number(double) false none Daily Spend Limit
SpendingRulesetCategories SpendingRulesetCategories false none none
MccRestrictions boolean false read-only Mcc Restrictions
InternationalAllowed boolean false none International Allowed
CardNotPresentAllowed boolean false none Card Not Present Allowed
CardPresence integer(int32) false none Used to evaluate spend policy based on physical or virtual use of card
UsePexAccountBalanceForAuths boolean false none Use Pex Account Balance For Auths
UseCustomerAuthDecision boolean false none Use Customer Auth Decision

RemoteAuthorizationResponse

{
  "StatusCode": "",
  "Ticks": 0
}

RemoteAuthorizationResponse

Properties

Name Type Required Restrictions Description
StatusCode string false none Status Code
Ticks integer(int64) false none Ticks

Enumerated Values

Property Value
StatusCode Continue
StatusCode SwitchingProtocols
StatusCode OK
StatusCode Created
StatusCode Accepted
StatusCode NonAuthoritativeInformation
StatusCode NoContent
StatusCode ResetContent
StatusCode PartialContent
StatusCode MultipleChoices
StatusCode Ambiguous
StatusCode MovedPermanently
StatusCode Moved
StatusCode Found
StatusCode Redirect
StatusCode SeeOther
StatusCode RedirectMethod
StatusCode NotModified
StatusCode UseProxy
StatusCode Unused
StatusCode TemporaryRedirect
StatusCode RedirectKeepVerb
StatusCode BadRequest
StatusCode Unauthorized
StatusCode PaymentRequired
StatusCode Forbidden
StatusCode NotFound
StatusCode MethodNotAllowed
StatusCode NotAcceptable
StatusCode ProxyAuthenticationRequired
StatusCode RequestTimeout
StatusCode Conflict
StatusCode Gone
StatusCode LengthRequired
StatusCode PreconditionFailed
StatusCode RequestEntityTooLarge
StatusCode RequestUriTooLong
StatusCode UnsupportedMediaType
StatusCode RequestedRangeNotSatisfiable
StatusCode ExpectationFailed
StatusCode UpgradeRequired
StatusCode InternalServerError
StatusCode NotImplemented
StatusCode BadGateway
StatusCode ServiceUnavailable
StatusCode GatewayTimeout
StatusCode HttpVersionNotSupported

CreateNoteByNetworkTransactionIdRequest

{
  "NoteText": "",
  "NetworkTransactionId": 0
}

CreateNoteByNetworkTransactionIdRequest

Properties

Name Type Required Restrictions Description
NoteText string true none Transaction note text
NetworkTransactionId integer(int64) true none Transaction id

NoteResponse

{
  "Id": 0
}

NoteResponse

Properties

Name Type Required Restrictions Description
Id integer(int64) false none Transaction note id

CreateNoteRequest

{
  "TransactionId": 0,
  "NoteText": "",
  "Pending": false
}

CreateNoteRequest

Properties

Name Type Required Restrictions Description
TransactionId integer(int64) true none Transaction id
NoteText string true none Transaction note text
Pending boolean false none Is pending transaction

NoteRequest

{
  "NoteText": "",
  "Pending": false
}

NoteRequest

Properties

Name Type Required Restrictions Description
NoteText string true none Transaction note text
Pending boolean false none Is pending transaction

DeleteNoteRequest

{
  "Pending": false
}

DeleteNoteRequest

Properties

Name Type Required Restrictions Description
Pending boolean false none Is pending transaction

GetGroupsResponse

{
  "Groups": [
    {
      "Id": 0,
      "Name": ""
    }
  ]
}

GetGroupsResponse

Properties

Name Type Required Restrictions Description
Groups [Group] true none The list of groups

Group

{
  "Id": 0,
  "Name": ""
}

Group

Properties

Name Type Required Restrictions Description
Id integer(int32) true none Unique Id of the Group
Name string true none Group Name

CreateGroupRequest

{
  "Name": ""
}

CreateGroupRequest

Properties

Name Type Required Restrictions Description
Name string true none Group name

CreateGroupResponse

{
  "Group": {
    "Id": 0,
    "Name": ""
  }
}

CreateGroupResponse

Properties

Name Type Required Restrictions Description
Group Group true none Details about a cardholder group

UpdateGroupRequest

{
  "Name": ""
}

UpdateGroupRequest

Properties

Name Type Required Restrictions Description
Name string true none Group name

UpdateGroupResponse

{
  "Group": {
    "Id": 0,
    "Name": ""
  }
}

UpdateGroupResponse

Properties

Name Type Required Restrictions Description
Group Group true none Details about a cardholder group

RemoveGroupResponse

{
  "GroupId": 0
}

RemoveGroupResponse

Properties

Name Type Required Restrictions Description
GroupId integer(int32) true none The group ID that was removed

CardHolderDetailsResponse

{
  "FirstName": "",
  "MiddleName": "",
  "LastName": "",
  "AccountId": 0,
  "AccountNumber": "",
  "AvailableBalance": 0,
  "LedgerBalance": 0,
  "SpendRules": false,
  "AccountCreationTime": "",
  "ManualStatus": "",
  "SystemStatus": "",
  "PinSet": false,
  "BSAcctId": 0,
  "IsVirtual": false,
  "Group": {
    "Id": 0,
    "GroupName": ""
  },
  "SpendingRulesetModel": {
    "RulesetId": 0,
    "Name": ""
  },
  "EmbossingDetails": [
    {
      "AccountId": 0,
      "CardNumber": "",
      "ManualStatus": "",
      "SystemStatus": "",
      "CreatedDate": "",
      "PlasticDetails": [
        {
          "PlasticSequence": "",
          "ManualStatus": "",
          "IssuedDate": "",
          "ExpirationDate": ""
        }
      ]
    }
  ],
  "CustomId": ""
}

CardHolderDetailsResponse

Properties

Name Type Required Restrictions Description
FirstName string false none Firs tName
MiddleName string false none Middle Name
LastName string false none Last Name
AccountId integer(int32) false none Account Id
AccountNumber string false none Account Number
AvailableBalance number(double) false none Available Balance
LedgerBalance number(double) false none Ledger Balance
SpendRules boolean false none Spend Rules
AccountCreationTime string(date-time) false none Account Creation Time
ManualStatus string false none Manual Status
SystemStatus string false none System Status
PinSet boolean false none Pin Set
BSAcctId integer(int32) false none Business Account Id
IsVirtual boolean false none Identifies virtual cardholder
Group CardholderGroup false none Details about a cardholder group
SpendingRulesetModel SpendingRulesetModel false none Spending Ruleset Model
EmbossingDetails [EmbossingDetails] false none Embossing Details
CustomId string false none User defined Id which can be assigned to Card holder profile (alphanumeric up to 50 characters)

SpendingRulesetModel

{
  "RulesetId": 0,
  "Name": ""
}

SpendingRulesetModel

Properties

Name Type Required Restrictions Description
RulesetId integer(int32) false none RulesetId
Name string false none Name

EmbossingDetails

{
  "AccountId": 0,
  "CardNumber": "",
  "ManualStatus": "",
  "SystemStatus": "",
  "CreatedDate": "",
  "PlasticDetails": [
    {
      "PlasticSequence": "",
      "ManualStatus": "",
      "IssuedDate": "",
      "ExpirationDate": ""
    }
  ]
}

EmbossingDetails

Properties

Name Type Required Restrictions Description
AccountId integer(int32) false none Account Id
CardNumber string false none Card Number
ManualStatus string false none Manual Status
SystemStatus string false none System Status
CreatedDate string(date-time) false none Created Date
PlasticDetails [PlasticDetials] false none Plastic Details

PlasticDetials

{
  "PlasticSequence": "",
  "ManualStatus": "",
  "IssuedDate": "",
  "ExpirationDate": ""
}

PlasticDetials

Properties

Name Type Required Restrictions Description
PlasticSequence string false none Plastic Sequence
ManualStatus string false none Manual Status
IssuedDate string(date-time) false none Issued Date
ExpirationDate string(date-time) false none Expiration Date

BulkResponse

{
  "TotalNumberOfCards": 0
}

BulkResponse

Properties

Name Type Required Restrictions Description
TotalNumberOfCards integer(int32) false none Total number of cards

FundingRequest

{
  "Amount": 0
}

FundingRequest

Properties

Name Type Required Restrictions Description
Amount number(double) false none Funding amount

FundMultipleCardsRequest

{
  "Cards": [
    {
      "AccountId": 0,
      "Amount": 0
    }
  ],
  "TransferType": ""
}

FundMultipleCardsRequest

Properties

Name Type Required Restrictions Description
Cards [FundCardItem] true none Cards
TransferType string true none B2C or C2B fund or defund transfer type codes (ErrorMessage = "Required") [EnumDataType(TransferTypeEnum)]

FundCardItem

{
  "AccountId": 0,
  "Amount": 0
}

FundCardItem

Properties

Name Type Required Restrictions Description
AccountId integer(int32) true none Account id
Amount number(double) true none Funding amount

FundMultipleCardsResponse

{
  "Success": false,
  "Results": [
    {
      "BusinessTransactionId": 0,
      "BusinessCurrentBalance": 0,
      "AccountId": 0,
      "TransactionId": 0,
      "CurrentBalance": 0,
      "ResponseCode": 0,
      "Message": ""
    }
  ],
  "Errors": [
    {
      "AccountId": 0,
      "ResponseCode": 0,
      "Message": ""
    }
  ]
}

FundMultipleCardsResponse

Properties

Name Type Required Restrictions Description
Success boolean false none Success
Results [FundCardItemResponse] false none Succesful funding
Errors [FundCardItemErrorResponse] false none Unsuccesful fundings with errors

FundCardItemResponse

{
  "BusinessTransactionId": 0,
  "BusinessCurrentBalance": 0,
  "AccountId": 0,
  "TransactionId": 0,
  "CurrentBalance": 0,
  "ResponseCode": 0,
  "Message": ""
}

FundCardItemResponse

Properties

Name Type Required Restrictions Description
BusinessTransactionId integer(int64) false none Business transaction id
BusinessCurrentBalance number(double) false none Business current balance
AccountId integer(int32) false none Cardholder account id
TransactionId integer(int64) false none Cardholder transaction id
CurrentBalance number(double) false none Cardholder current balance
ResponseCode integer(int32) false none Response code
Message string false none Response message

FundCardItemErrorResponse

{
  "AccountId": 0,
  "ResponseCode": 0,
  "Message": ""
}

FundCardItemErrorResponse

Properties

Name Type Required Restrictions Description
AccountId integer(int32) false none Cardholder account id
ResponseCode integer(int32) false none Response code
Message string false none Response message

ScheduledFundingRequest

{
  "Frequency": "",
  "Amount": 0
}

ScheduledFundingRequest

Properties

Name Type Required Restrictions Description
Frequency string false none Funding frequency

<br/>
Possible interger values for Frequency parameter of scheduled funding are:
<br/>
0 - every Day

<br/>
1 - every Monday

<br/>
2 - every Tuesday

<br/>
3 - every Wednesday

<br/>
4 - every Thursday

<br/>
5 - every Friday

<br/>
6 - every Saturday

<br/>
7 - every Sunday

<br/>
8 - every 1st of the Month
Amount number(double) false none Funding amount

Enumerated Values

Property Value
Frequency DAY
Frequency MONDAY
Frequency TUESDAY
Frequency WEDNESDAY
Frequency THURSDAY
Frequency FRIDAY
Frequency SATURDAY
Frequency SUNDAY
Frequency FIRSTOFMONTH

SpendingRulesetRequest

{
  "RulesetId": 0
}

SpendingRulesetRequest

Properties

Name Type Required Restrictions Description
RulesetId integer(int32) false none Id of ruleset or null

GetBusinessTokenProvisioningModeResponse

{
  "TokenProvisioningMode": ""
}

GetBusinessTokenProvisioningModeResponse

Properties

Name Type Required Restrictions Description
TokenProvisioningMode string false none Business Token Provisioning Mode

Enumerated Values

Property Value
TokenProvisioningMode DoNotTokenize
TokenProvisioningMode TokenizeStepUpIfNeeded
TokenProvisioningMode TokenizeStepUpAll

GetCardholderTokenProvisioningModeResponse

{
  "TokenProvisioningMode": ""
}

GetCardholderTokenProvisioningModeResponse

Properties

Name Type Required Restrictions Description
TokenProvisioningMode string false none Cardholder Token Provisioning Mode

Enumerated Values

Property Value
TokenProvisioningMode DoNotTokenize
TokenProvisioningMode TokenizeStepUpIfNeeded
TokenProvisioningMode TokenizeStepUpAll

ChangeCardholderTokenProvisioningModeRequest

{
  "TokenProvisioningMode": ""
}

ChangeCardholderTokenProvisioningModeRequest

Properties

Name Type Required Restrictions Description
TokenProvisioningMode string false none Cardholder Token Provisioning Mode

Enumerated Values

Property Value
TokenProvisioningMode DoNotTokenize
TokenProvisioningMode TokenizeStepUpIfNeeded
TokenProvisioningMode TokenizeStepUpAll

GetIssuedTokensResponse

{
  "TokenList": [
    {
      "ReferenceId": "",
      "AccountId": 0,
      "CardId": 0,
      "Last4CardNumber": "",
      "Last4TokenNumber": "",
      "ExpirationDate": "",
      "DeviceName": "",
      "WalletName": "",
      "Status": ""
    }
  ]
}

GetIssuedTokensResponse

Properties

Name Type Required Restrictions Description
TokenList [TokenDetail] false none List of details about token with the account

TokenDetail

{
  "ReferenceId": "",
  "AccountId": 0,
  "CardId": 0,
  "Last4CardNumber": "",
  "Last4TokenNumber": "",
  "ExpirationDate": "",
  "DeviceName": "",
  "WalletName": "",
  "Status": ""
}

TokenDetail

Properties

Name Type Required Restrictions Description
ReferenceId string false none Unique id for the token
AccountId integer(int32) false none Unique cardholder account id
CardId integer(int32) false none Unique id for the card
Last4CardNumber string false none Last four digits of card number
Last4TokenNumber string false none Last four digits of toke
ExpirationDate string false none Expiration date for the token
DeviceName string false none Name of the device
WalletName string false none Name of the wallet
Status string false none Token status