NAV

API Reference v2023.12.22.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
401 Unauthorized Token expired or does not exist None
403 Forbidden Cannot renew token None

Return all tokens for the app or user

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 app or user, including the expiration date/time.

Parameters

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

Example responses

202 Response

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

Responses

Status Meaning Description Schema
202 Accepted Accepted GetAllTokensResponse
400 Bad Request Invalid token format None
401 Unauthorized Token expired or does not exist None

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 Success GetTokenResponse
400 Bad Request Invalid token format None
401 Unauthorized Token expired or does not exist None

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
400 Bad Request The request is invalid None
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
204 No Content No Content 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.

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.

NOTE: If the card is a replacement for an existing, damaged or expiring card, you should use the endpoint /Card/Activate/{id}/{cardid} and 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
400 Bad Request Either Card is still request to be Embossed or No Card for activation None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Invalid card account ID
  • Cannot change status
  • Admin does not have permission|None|

Response Schema

Status Code 200

IHttpActionResult

Name Type Required Restrictions Description

Activate a card for a specified Card ID

Code samples

require 'rest-client'
require 'json'

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

result = RestClient.post 'https://coreapi.pexcard.com/v4/Card/Activate/{id}/{cardId}',
  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}/{cardId}', headers = headers)

print(r.json())


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

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

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

POST /Card/Activate/{id}/{cardId}

Activate a card using the card accountID and Card ID.

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
cardId path integer(int32) true Card ID
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK Success Inline
401 Unauthorized Token expired or does not exist None
403 Forbidden - Invalid card account ID
  • Invalid card ID
  • Cannot change status
  • Admin does not have permission|None|

Response Schema

Status Code 200

IHttpActionResult

Name Type Required Restrictions Description

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.1,
        "DailySpendLimit": 0.1,
        "WeeklySpendLimit": 0.1,
        "MonthlySpendLimit": 0.1,
        "YearlySpendLimit": 0.1,
        "LifetimeSpendLimit": 0.1
      }
    ],
    "InternationalSpendEnabled": false,
    "IsDailySpendLimitEnabled": false,
    "DailySpendLimit": 0.1,
    "WeeklySpendLimit": 0.1,
    "MonthlySpendLimit": 0.1,
    "YearlySpendLimit": 0.1,
    "LifetimeSpendLimit": 0.1,
    "CardNotPresentUse": false,
    "CardPresence": 0,
    "UsePexAccountBalanceForAuths": false,
    "UseCustomerAuthDecision": false,
    "DaysOfWeekRestrictions": [
      "string"
    ],
    "UsStateRestrictions": [
      "string"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK OK GetAdvancedSpendRulesResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden - Invalid card account ID
  • Must be card account ID
  • Account closed|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.1,
      "DailySpendLimit": 0.1,
      "WeeklySpendLimit": 0.1,
      "MonthlySpendLimit": 0.1,
      "YearlySpendLimit": 0.1,
      "LifetimeSpendLimit": 0.1
    }
  ],
  "InternationalSpendEnabled": false,
  "DailySpendLimit": 0.1,
  "WeeklySpendLimit": 0.1,
  "MonthlySpendLimit": 0.1,
  "YearlySpendLimit": 0.1,
  "LifetimeSpendLimit": 0.1,
  "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.1,
      "DailySpendLimit": 0.1,
      "WeeklySpendLimit": 0.1,
      "MonthlySpendLimit": 0.1,
      "YearlySpendLimit": 0.1,
      "LifetimeSpendLimit": 0.1
    }
  ],
  "InternationalSpendEnabled": false,
  "DailySpendLimit": 0.1,
  "WeeklySpendLimit": 0.1,
  "MonthlySpendLimit": 0.1,
  "YearlySpendLimit": 0.1,
  "LifetimeSpendLimit": 0.1,
  "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
401 Unauthorized Token expired or does not exist 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

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
400 Bad Request - Invalid PIN: All digits of the PIN are same
- Pin must be all numbers None
401 Unauthorized Token expired or does not exist None
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
401 Unauthorized Token expired or does not exist None
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.1,
  "LedgerBalance": 0.1,
  "TransactionId": 0
}

Responses

Status Meaning Description Schema
200 OK Success FundResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden - Card Account ID does not exist
  • Must be card account ID
  • Insufficient funds on business
  • Invalid amount
  • Admin does not have permission
  • Card available balance will exceed lifetime limit|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": "",
      "IsVirtual": false
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success CardOrderResponse
401 Unauthorized Token expired or does not exist None
404 Not Found Invalid card order ID 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 Success GetCardOrderResponse
400 Bad Request - The value is not valid for StartDate
- The value is not valid for EndDate None
401 Unauthorized Token expired or does not exist None

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,
  "CardholderType": "TeamMember",
  "CustomId": ""
}

Responses

Status Meaning Description Schema
200 OK Success GetProfileResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden - Invalid card account ID
- Must be 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 CreateCardholder = true or ManageCardholder = 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.

A virtual or vendor card cannot be assigned to a spend policy that allows card present purchases.

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
400 Bad Request - Invalid date of birth
  • Invalid email address
  • Invalid profile address
  • Invalid shipping address|None| |401|Unauthorized|Token expired or does not exist|None| |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.1,
  "NoteText": ""
}';
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.1,
  "NoteText": ""
}

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.1,
  "LedgerBalance": 0.1,
  "TransactionId": 0
}

Responses

Status Meaning Description Schema
200 OK Success FundResponse
400 Bad Request The request is invalid None
401 Unauthorized Token expired or does not exist None
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
  • Admin does not have permission|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": "Invalid",
      "DateOfBirth": "",
      "Email": "",
      "GroupId": 0,
      "RulesetId": 0,
      "VirtualCard": false,
      "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.
ShippingMethod = 3 i.e 'PriorityMail' (3-5 business days) $10.

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.
Virtual Card - True to make the card virtual, False to emboss and ship a physical card.

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": "Invalid",
      "DateOfBirth": "",
      "Email": "",
      "GroupId": 0,
      "RulesetId": 0,
      "VirtualCard": false,
      "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
401 Unauthorized Token expired or does not exist None
403 Forbidden Admin does not have permission None

Emboss and ship physical cards for the business

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())

const inputBody = '{
  "ShippingPhone": "",
  "ShippingMethod": "Invalid",
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "Accounts": [
    0
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Authorization':'string'
};

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

POST /Card/PhysicalEmbossingJob

Emboss and ship physical cards for previously created virtual cards within Expense and Disburse programs. Cannot be used on dedicated virtual card programs.

Action can only be provided once and is not substitute for replacing a compromised or damaged card.

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.
ShippingMethod = 3 i.e 'PriorityMail' (3-5 business days) $10.

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

Body parameter

{
  "ShippingPhone": "",
  "ShippingMethod": "Invalid",
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "Accounts": [
    0
  ]
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body PhysicalEmbossingJobRequest true Shipping data

Responses

Status Meaning Description Schema
204 No Content Created None
400 Bad Request Invalid shipping method None
403 Forbidden Admin does not have permission None

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
401 Unauthorized Token expired or does not exist None
403 Forbidden - Invalid card account ID
  • Must be card account ID
  • Cannot change status
  • Admin does not have permission|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": "Invalid"
}';
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": "Invalid"
}

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
400 Bad Request Invalid card status None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Invalid card account ID
  • Cannot change status
  • Admin does not have permission|None|

Response Schema

Status Code 200

IHttpActionResult

Name Type Required Restrictions Description

Return remaining limits allowed by the Lifetime Card Funding Limit determined in Business Settings.

Code samples

require 'rest-client'
require 'json'

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

result = RestClient.get 'https://coreapi.pexcard.com/v4/Card/LoadLimitRemaining/{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/LoadLimitRemaining/{id}', headers = headers)

print(r.json())


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

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

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

GET /Card/LoadLimitRemaining/{id}

Return remaining limits allowed by the Lifetime Card Funding Limit determined in Business Settings.
Definition of the returned fields and how the PEX system uses them:

LifetimeLimit: This value is the maximum amount of dollars that can be loaded onto a Cardholder's Account. Note: a value of zero indicates that there is no limit set for the account.

RemainingLimit: The amount of funds that can still be added to an account before exceeding the Lifetime Card Funding Limit (i.e. LifetimeLimit less the total funds added to the account to date). Note: a value of null is returned if the lifetime limit does not exist for the account.

Parameters

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

Example responses

200 Response

{
  "AccountId": 0,
  "LifetimeLimit": 0.1,
  "RemainingLimit": 0.1
}

Responses

Status Meaning Description Schema
200 OK Success CardLoadLimitResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden Invalid card account ID None

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.1,
    "CardNotPresentUse": false,
    "CardPresence": 0,
    "UsePexAccountBalanceForAuths": false,
    "UseCustomerAuthDecision": false
  }
}

Responses

Status Meaning Description Schema
200 OK Success GetSpendRulesResponse
401 Unauthorized Token expired or does not exist None
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.1,
  "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.1,
  "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
401 Unauthorized Token expired or does not exist None
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.1,
    "Frequency": "DAY"
  }
}

Responses

Status Meaning Description Schema
200 OK Success GetScheduledFundingRulesResponse
401 Unauthorized Token expired or does not exist None
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.1,
  "Frequency": "DAY"
}';
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.1,
  "Frequency": "DAY"
}

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
400 Bad Request The request is invalid None
401 Unauthorized Token expired or does not exist None
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
204 No Content No Content None
401 Unauthorized Token expired or does not exist None
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
401 Unauthorized Token expired or does not exist None
403 Forbidden - Invalid card account ID
  • Invalid ruleset ID
  • Account closed|None|

Generate a card view token that can be used to view full card details

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/CreateCardViewToken',
  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/CreateCardViewToken', headers = headers)

print(r.json())

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

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

POST /Card/CreateCardViewToken

Generate a card view token that can be used to view full card details If the request is valid, you will receive a card view token which can be used on POST /Card/UseCardViewToken.

Body parameter

{
  "AcctId": 0
}

Parameters

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

Example responses

200 Response

{
  "CardViewToken": ""
}

Responses

Status Meaning Description Schema
200 OK Success CardViewTokenCreateResponse
400 Bad Request - AccountId is not found None
403 Forbidden - Cardholder does not belong to this business
  • Admin is missing required permissions
  • This business does not support the View Card Feature
  • Cardholder does not have permission
  • MFA required|None|

Consume a card view token in exchange for full card details

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/UseCardViewToken',
  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/UseCardViewToken', headers = headers)

print(r.json())

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

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

POST /Card/UseCardViewToken

Consume a card view token in exchange for full card details If the token has not been used and hasn't expired you will receive the card number, expiration date, and CVV2 in the response.

Body parameter

{
  "CardViewToken": ""
}

Parameters

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

Example responses

200 Response

{
  "CardNumber": "",
  "ExpirationDate": "",
  "CVV2": ""
}

Responses

Status Meaning Description Schema
200 OK Success CardViewTokenUseResponse
400 Bad Request - CardViewToken is missing None
403 Forbidden - Invalid card view token 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.head 'https://coreapi.pexcard.com/v4/Details/Ping',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.head('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: 'HEAD',

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

HEAD /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.1,
  "AvailableBalance": 0.1,
  "ProfileAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "Phone": "",
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "ShippingPhone": "",
  "DateOfBirth": "",
  "Email": "",
  "IsVirtual": false,
  "CardholderType": "TeamMember",
  "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.1,
    "CardNotPresentUse": false,
    "CardPresence": 0,
    "UsePexAccountBalanceForAuths": false,
    "UseCustomerAuthDecision": false
  },
  "ScheduledFunding": {
    "Amount": 0.1,
    "Frequency": "DAY"
  },
  "CustomId": ""
}

Responses

Status Meaning Description Schema
200 OK Success CardholderDetailsResponse
401 Unauthorized Token expired or does not exist None
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": "PerDay",
      "EnforcedLimit": 0.1,
      "RemainingSpend": 0.1
    }
  ],
  "MerchantCategoryLimits": [
    {
      "MerchantCategoryId": 0,
      "Category": "",
      "Type": "PerDay",
      "EnforcedLimit": 0.1,
      "RemainingSpend": 0.1
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success AccountRemainingLimitsResponse
401 Unauthorized Token expired or does not exist None
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.
- HasReceipt: Whether or not the transaction has receipt attached.
- 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.
- 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.
- 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.1,
      "PaddingAmount": 0.1,
      "AvailableBalance": 0.1,
      "LedgerBalance": 0.1,
      "TransactionType": "",
      "Description": "",
      "TransactionNotes": [
        {
          "NoteId": 0,
          "UserName": "",
          "NoteText": "",
          "NoteDate": ""
        }
      ],
      "HasReceipt": false,
      "ReferencedTranId": 0,
      "ReferencedTransactionTime": "",
      "MerchantName": "",
      "MerchantNameNormalized": "",
      "MerchantUrl": "",
      "MerchantLogoUrl": "",
      "MerchantIconUrl": "",
      "MerchantCity": "",
      "MerchantState": "",
      "MerchantZip": "",
      "MerchantCountry": "",
      "MCCCode": "",
      "AuthIdentityResponseCode": "",
      "MerchantId": "",
      "TerminalId": "",
      "SourceCurrencyCodeDescription": "",
      "SourceCurrencyNumericCode": "",
      "SourceAmount": 0.1,
      "NetworkType": "",
      "NetworkStatus": "",
      "IsCardPresent": false,
      "Message": "",
      "MessageCode": "",
      "MerchantRequestedAmount": 0.1
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success NetworkTransactionDetailsResponse
400 Bad Request The request is invalid None
401 Unauthorized Token expired or does not exist None
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,
  "BusinessAccountNumber": "",
  "BusinessName": "",
  "BusinessAccountStatus": "",
  "BusinessAccountBalance": 0.1,
  "PendingTransferAmount": 0.1,
  "BankAccountList": [
    {
      "ExternalBankAcctId": 0,
      "RoutingNumber": "",
      "BankAccountNumber": "",
      "BankName": "",
      "BankAccountType": "",
      "IsActive": false
    }
  ],
  "CHAccountList": [
    {
      "AccountId": 0,
      "FirstName": "",
      "LastName": "",
      "Email": "",
      "LedgerBalance": 0.1,
      "AvailableBalance": 0.1,
      "AccountStatus": "",
      "IsVirtual": false,
      "CardholderType": "",
      "CustomId": "",
      "GroupId": 0,
      "GroupName": "",
      "CardStatus": "",
      "CardNumber4Digits": "",
      "CardIssueDate": "",
      "CardExpiryDate": ""
    }
  ],
  "CardholderGroups": [
    {
      "Id": 0,
      "Name": ""
    }
  ],
  "OpenCardholdersCount": 0,
  "OpenVendorCardsCount": 0
}

Responses

Status Meaning Description Schema
200 OK Success BusinessDetailsResponse
401 Unauthorized Token expired or does not exist None

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.
- HasReceipt: Whether or not the transaction has receipt attached.
- 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.1,
      "PaddingAmount": 0.1,
      "TransactionType": "Transfer",
      "Description": "",
      "TransactionNotes": [
        {
          "NoteId": 0,
          "UserName": "",
          "NoteText": "",
          "NoteDate": ""
        }
      ],
      "IsPending": false,
      "IsDecline": false,
      "HasReceipt": false,
      "MerchantName": "",
      "MerchantNameNormalized": "",
      "MerchantUrl": "",
      "MerchantLogoUrl": "",
      "MerchantIconUrl": "",
      "MerchantCity": "",
      "MerchantState": "",
      "MerchantZip": "",
      "MerchantCountry": "",
      "MCCCode": "",
      "TransferToOrFromAccountId": 0,
      "AuthIdentityResponseCode": "",
      "MerchantId": "",
      "TerminalId": "",
      "NetworkTransactionId": 0,
      "SourceCurrencyCodeDescription": "",
      "SourceCurrencyNumericCode": "",
      "SourceAmount": 0.1,
      "TransactionTags": {
        "Tags": [
          {
            "FieldId": "",
            "Value": {},
            "Name": ""
          }
        ],
        "State": "Initial",
        "FieldsVersion": ""
      },
      "MetadataApprovalStatus": "",
      "TransactionTypeCategory": ""
    }
  ],
  "Pages": {
    "PageSize": 0,
    "TotalRecords": 0,
    "NumberOfPages": 0,
    "LastTimeRetrieved": ""
  }
}

Responses

Status Meaning Description Schema
200 OK Success TransactionDetailsResponse
400 Bad Request The request is invalid None
401 Unauthorized Token expired or does not exist None
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.
- HasReceipt: Whether or not the transaction has receipt attached.
- 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.1,
      "PaddingAmount": 0.1,
      "TransactionType": "Transfer",
      "Description": "",
      "TransactionNotes": [
        {
          "NoteId": 0,
          "UserName": "",
          "NoteText": "",
          "NoteDate": ""
        }
      ],
      "IsPending": false,
      "IsDecline": false,
      "HasReceipt": false,
      "MerchantName": "",
      "MerchantNameNormalized": "",
      "MerchantUrl": "",
      "MerchantLogoUrl": "",
      "MerchantIconUrl": "",
      "MerchantCity": "",
      "MerchantState": "",
      "MerchantZip": "",
      "MerchantCountry": "",
      "MCCCode": "",
      "TransferToOrFromAccountId": 0,
      "AuthIdentityResponseCode": "",
      "MerchantId": "",
      "TerminalId": "",
      "NetworkTransactionId": 0,
      "SourceCurrencyCodeDescription": "",
      "SourceCurrencyNumericCode": "",
      "SourceAmount": 0.1,
      "TransactionTags": {
        "Tags": [
          {
            "FieldId": "",
            "Value": {},
            "Name": ""
          }
        ],
        "State": "Initial",
        "FieldsVersion": ""
      },
      "MetadataApprovalStatus": "",
      "TransactionTypeCategory": ""
    }
  ],
  "Pages": {
    "PageSize": 0,
    "TotalRecords": 0,
    "NumberOfPages": 0,
    "LastTimeRetrieved": ""
  }
}

Responses

Status Meaning Description Schema
200 OK Success TransactionDetailsResponse
400 Bad Request The request is invalid None
401 Unauthorized Token expired or does not exist None
403 Forbidden - StartDate can not be bigger than EndDate
- Transaction history is available for twelve months None

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.
- HasReceipt: Whether or not the transaction has receipt attached.
- 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.
- 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.
- 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.1,
      "PaddingAmount": 0.1,
      "AvailableBalance": 0.1,
      "LedgerBalance": 0.1,
      "TransactionType": "",
      "Description": "",
      "TransactionNotes": [
        {
          "NoteId": 0,
          "UserName": "",
          "NoteText": "",
          "NoteDate": ""
        }
      ],
      "HasReceipt": false,
      "ReferencedTranId": 0,
      "ReferencedTransactionTime": "",
      "MerchantName": "",
      "MerchantNameNormalized": "",
      "MerchantUrl": "",
      "MerchantLogoUrl": "",
      "MerchantIconUrl": "",
      "MerchantCity": "",
      "MerchantState": "",
      "MerchantZip": "",
      "MerchantCountry": "",
      "MCCCode": "",
      "AuthIdentityResponseCode": "",
      "MerchantId": "",
      "TerminalId": "",
      "SourceCurrencyCodeDescription": "",
      "SourceCurrencyNumericCode": "",
      "SourceAmount": 0.1,
      "NetworkType": "",
      "NetworkStatus": "",
      "IsCardPresent": false,
      "Message": "",
      "MessageCode": "",
      "MerchantRequestedAmount": 0.1
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success NetworkTransactionDetailsResponse
400 Bad Request The request is invalid None
401 Unauthorized Token expired or does not exist None
403 Forbidden - StartDate can not be bigger than EndDate
- Transaction history is available for twelve months. None

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.
- HasReceipt: Whether or not the transaction has receipt attached.
- 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.1,
      "PaddingAmount": 0.1,
      "TransactionType": "Transfer",
      "Description": "",
      "TransactionNotes": [
        {
          "NoteId": 0,
          "UserName": "",
          "NoteText": "",
          "NoteDate": ""
        }
      ],
      "IsPending": false,
      "IsDecline": false,
      "HasReceipt": false,
      "MerchantName": "",
      "MerchantNameNormalized": "",
      "MerchantUrl": "",
      "MerchantLogoUrl": "",
      "MerchantIconUrl": "",
      "MerchantCity": "",
      "MerchantState": "",
      "MerchantZip": "",
      "MerchantCountry": "",
      "MCCCode": "",
      "TransferToOrFromAccountId": 0,
      "AuthIdentityResponseCode": "",
      "MerchantId": "",
      "TerminalId": "",
      "NetworkTransactionId": 0,
      "SourceCurrencyCodeDescription": "",
      "SourceCurrencyNumericCode": "",
      "SourceAmount": 0.1,
      "TransactionTags": {
        "Tags": [
          {
            "FieldId": "",
            "Value": {},
            "Name": ""
          }
        ],
        "State": "Initial",
        "FieldsVersion": ""
      },
      "MetadataApprovalStatus": "",
      "TransactionTypeCategory": ""
    }
  ],
  "Pages": {
    "PageSize": 0,
    "TotalRecords": 0,
    "NumberOfPages": 0,
    "LastTimeRetrieved": ""
  }
}

Responses

Status Meaning Description Schema
200 OK Success TransactionDetailsResponse
400 Bad Request The request is invalid None
401 Unauthorized Token expired or does not exist None
403 Forbidden - StartDate can not be bigger than EndDate
- Transaction history is available for twelve months. None

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": "Image",
      "Size": 0,
      "Link": {
        "related": ""
      },
      "UploadStatus": "NotLoaded",
      "CreatedDateUtc": "",
      "CreatedBy": {
        "AdminId": 0,
        "UserId": 0,
        "PexUserId": 0
      },
      "UpdatedDateUtc": "",
      "UpdatedBy": {
        "AdminId": 0,
        "UserId": 0,
        "PexUserId": 0
      }
    }
  ],
  "ApprovalStatus": "NotReviewed"
}

Responses

Status Meaning Description Schema
200 OK OK GetAttachments
401 Unauthorized Token expired or does not exist None
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": "Image",
    "Size": 0,
    "UploadStatus": "NotLoaded",
    "CreatedDateUtc": "",
    "CreatedBy": {
      "AdminId": 0,
      "UserId": 0,
      "PexUserId": 0
    },
    "UpdatedDateUtc": "",
    "UpdatedBy": {
      "AdminId": 0,
      "UserId": 0,
      "PexUserId": 0
    },
    "DeletedDateUtc": "",
    "DeletedBy": {
      "AdminId": 0,
      "UserId": 0,
      "PexUserId": 0
    }
  }
]

Responses

Status Meaning Description Schema
200 OK OK Inline
401 Unauthorized Token expired or does not exist None
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
»»» PexUserId integer(int64) false none Security 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": "Image",
  "Size": 0,
  "Content": "",
  "UploadStatus": "NotLoaded",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "ApprovalStatus": "NotReviewed"
}

Responses

Status Meaning Description Schema
200 OK OK Attachment
401 Unauthorized Token expired or does not exist None
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": "Image"
}';
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": "Image"
}

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": "Image",
  "Size": 0,
  "Link": {
    "self": ""
  },
  "UploadStatus": "NotLoaded",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK AttachmentWithSelfLink
400 Bad Request BadRequest None
401 Unauthorized Token expired or does not exist 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": "Image",
  "Size": 0,
  "UploadStatus": "NotLoaded",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK DeleteAttachment
401 Unauthorized Token expired or does not exist None
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": "Image"
}';
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": "Image"
}

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

201 Response

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

Responses

Status Meaning Description Schema
201 Created Tag created AttachmentWithSelfLink
400 Bad Request BadRequest None
401 Unauthorized Token expired or does not exist None
404 Not Found NotFound None

Response Headers

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

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": "NotReviewed",
  "Values": {},
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK Tags
401 Unauthorized Token expired or does not exist None
404 Not Found NotFound 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
force query boolean false Whether to force updating tags, ignoring isRequired validation. Default: false.
Authorization header string true token {USERTOKEN}
body body CreateTagValuesRequest true CreateTagValuesRequest object

Example responses

201 Response

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

Responses

Status Meaning Description Schema
201 Created Created Tags
400 Bad Request The request is invalid. None
401 Unauthorized Token expired or does not exist None
404 Not Found Not found 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": "NotReviewed",
  "Values": {},
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK Tags
401 Unauthorized Token expired or does not exist None
404 Not Found Not found 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.1
    }
  ]
}';
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.1
    }
  ]
}

Parameters

Name In Type Required Description
Id path integer(int64) true Transaction Id
force query boolean false Whether to force updating tags, ignoring isRequired validation. Default: false.
Authorization header string true token {USERTOKEN}
body body UpdateAllocationTagValuesRequest true UpdateAllocationTagValuesRequest object

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK OK Tags
400 Bad Request The request is invalid. None
401 Unauthorized Token expired or does not exist None
404 Not Found Not found 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.1
    }
  ]
}';
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.1
    }
  ]
}

Parameters

Name In Type Required Description
Id path integer(int64) true Transaction Id
force query boolean false Whether to force updating tags, ignoring isRequired validation. Default: false.
Authorization header string true token {USERTOKEN}
body body CreateAllocationTagValuesRequest true Create allocation tag value request

Example responses

201 Response

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

Responses

Status Meaning Description Schema
201 Created Created Tags
400 Bad Request The request is invalid. None
401 Unauthorized Token expired or does not exist None
404 Not Found Not found 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": "NotReviewed",
  "Values": {},
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK Tags
400 Bad Request The request is invalid. None
401 Unauthorized Token expired or does not exist None
404 Not Found Not found 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 Transaction Id.
force query boolean false Whether to force updating tags, ignoring isRequired validation. Default: false.
Authorization header string true token {USERTOKEN}
body body UpdateTagValuesRequest true UpdateTagValuesRequest object.

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK OK Tags
400 Bad Request The request is invalid. None
401 Unauthorized Token expired or does not exist None
404 Not Found Not found None
409 Conflict Please update your outdated ConcurrencyKey value. None

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": "Text",
    "Name": "",
    "Description": "",
    "IsEnabled": false,
    "IsDeleted": false,
    "IsRequired": false,
    "Order": 0,
    "ConcurrencyKey": "",
    "CreatedDateUtc": "",
    "CreatedBy": {
      "AdminId": 0,
      "UserId": 0,
      "PexUserId": 0
    },
    "UpdatedDateUtc": "",
    "UpdatedBy": {
      "AdminId": 0,
      "UserId": 0,
      "PexUserId": 0
    },
    "DeletedDateUtc": "",
    "DeletedBy": {
      "AdminId": 0,
      "UserId": 0,
      "PexUserId": 0
    }
  }
]

Responses

Status Meaning Description Schema
200 OK OK Inline
401 Unauthorized Token expired or does not exist None

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
»»» PexUserId integer(int64) false none Security 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": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK Tag
401 Unauthorized Token expired or does not exist None
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": 2147483647,
  "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": 2147483647,
  "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": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 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
401 Unauthorized Token expired or does not exist 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": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "Options": [
    {
      "Name": "",
      "Value": "",
      "Order": 0,
      "IsEnabled": false
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK DropdownTag
400 Bad Request Bad Request. None
401 Unauthorized Token expired or does not exist 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": 2147483647,
  "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": 2147483647,
  "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": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 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
401 Unauthorized Token expired or does not exist 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": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "Options": [
    {
      "Name": "",
      "Value": "",
      "Order": 0,
      "IsEnabled": false
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success DropdownTag
201 Created Created DropdownTag
400 Bad Request Tag is not dropdown type. None
401 Unauthorized Token expired or does not exist 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": 200,
  "ValidationType": "None",
  "Name": "",
  "Description": "",
  "Order": 2147483647,
  "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": 200,
  "ValidationType": "None",
  "Name": "",
  "Description": "",
  "Order": 2147483647,
  "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": "None",
  "Id": "",
  "Type": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  }
}

Responses

Status Meaning Description Schema
201 Created Created TextTag
400 Bad Request The request is invalid. None
401 Unauthorized Token expired or does not exist 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": 200,
  "ValidationType": "None",
  "Name": "",
  "Description": "",
  "Order": 2147483647,
  "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": 200,
  "ValidationType": "None",
  "Name": "",
  "Description": "",
  "Order": 2147483647,
  "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": "None",
  "Id": "",
  "Type": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK TextTag
400 Bad Request Bad Request. None
401 Unauthorized Token expired or does not exist None
404 Not Found Not found 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": "None",
  "Id": "",
  "Type": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK TextTag
400 Bad Request Bad Request. None
404 Not Found Not found 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": 2147483647,
  "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": 2147483647,
  "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": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  }
}

Responses

Status Meaning Description Schema
201 Created Created Tag
400 Bad Request The request is invalid. None
401 Unauthorized Token expired or does not exist 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": 2147483647,
  "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": 2147483647,
  "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": "None",
  "Id": "",
  "Type": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK TextTag
400 Bad Request The request is invalid None
401 Unauthorized Token expired or does not exist None
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": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK Tag
400 Bad Request Bad Request. None
401 Unauthorized Token expired or does not exist 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": 2147483647,
  "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": 2147483647,
  "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": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  }
}

Responses

Status Meaning Description Schema
201 Created Created Tag
400 Bad Request The request is invalid. None
401 Unauthorized Token expired or does not exist 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": 2147483647,
  "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": 2147483647,
  "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": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK Tag
400 Bad Request The request is invalid None
401 Unauthorized Token expired or does not exist None
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": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK Tag
400 Bad Request Bad Request. None
401 Unauthorized Token expired or does not exist None
404 Not Found Not found 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": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "Tags": [
    {
      "TagId": "",
      "Order": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK AllocationTag
401 Unauthorized Token expired or does not exist None

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": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "Tags": [
    {
      "TagId": "",
      "Order": ""
    }
  ]
}

Responses

Status Meaning Description Schema
201 Created Created AllocationTag
400 Bad Request The request is invalid. None
401 Unauthorized Token expired or does not exist 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": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK Tag
401 Unauthorized Token expired or does not exist None
404 Not Found Not found 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
400 Bad Request The request is invalid None
401 Unauthorized Token expired or does not exist None
404 Not Found NotFound None

Get's the linked businesses 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/Business/Linked',
  params: {
  }, headers: headers

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /Business/Linked

Get's the linked businesses for the authenticated user.

Parameters

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

Example responses

200 Response

[
  {
    "InstitutionId": 0,
    "BusinessAcctId": 0,
    "BusinessName": "",
    "MinBusinessBalance": 0.1,
    "CurrentBalance": 0.1
  }
]

Responses

Status Meaning Description Schema
200 OK Success Inline
401 Unauthorized Token expired or does not exist None
403 Forbidden Business is not open None

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [LinkedBusinessResponse] false none none
» LinkedBusinessResponse LinkedBusinessResponse false none none
»» InstitutionId integer(int32) false none The institution id.
»» BusinessAcctId integer(int32) false none The business account id.
»» BusinessName string false none The business account name.
»» MinBusinessBalance number(double) false none The minimum business balance.
»» CurrentBalance number(double) false none The current balance.

Get's the bank accounts for the authenticated user's business.

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /Business/BankAccount

Get's the bank accounts for the authenticated user's business.

Parameters

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

Example responses

200 Response

[
  {
    "BusinessAcctId": 0,
    "RecipientId": 0,
    "AccountNumberMask": "",
    "Name": "",
    "Owner": "",
    "Description": "",
    "IsActive": false
  }
]

Responses

Status Meaning Description Schema
200 OK Success Inline
401 Unauthorized Token expired or does not exist None
403 Forbidden - Business is not open
- Admin does not have permission None

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [ExternalBankResponse] false none [An external bank account.]
» ExternalBankResponse ExternalBankResponse false none An external bank account.
»» BusinessAcctId integer(int32) false none The business id the bank account is for.
»» RecipientId integer(int32) false none The bank transfer recipient id.
»» AccountNumberMask string false none The account number masked.
»» Name string false none The bank account name.
»» Owner string false none The bank account owner.
»» Description string false none The bank account description.
»» IsActive boolean false none Whether the bank account is active.

Initiate transfers between PEX business accounts and/or external bank accounts.

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/Transfer',
  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/Transfer', headers = headers)

print(r.json())

const inputBody = '{
  "Type": "ACH",
  "AccountFrom": {
    "AccountType": "Business",
    "AccountId": 0
  },
  "AccountTo": {
    "AccountType": "Business",
    "AccountId": 0
  },
  "Amount": 0.1
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

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

POST /Business/Transfer

Initiate transfers between PEX business accounts and/or external bank accounts.

Body parameter

{
  "Type": "ACH",
  "AccountFrom": {
    "AccountType": "Business",
    "AccountId": 0
  },
  "AccountTo": {
    "AccountType": "Business",
    "AccountId": 0
  },
  "Amount": 0.1
}

Parameters

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

Example responses

200 Response

{
  "Type": "BusinessToBusiness",
  "TransferType": "ACH",
  "ProcessingDateTime": ""
}

Responses

Status Meaning Description Schema
200 OK Success TransferResponse
400 Bad Request Bad request None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Business is not open
- Admin does not have permission 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.1,
      "Status": "",
      "RequestedDate": "",
      "FundAvailableDate": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success GetOneTimeTransferResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden - Business is not open
- Admin does not have permission None

Return the PEX business profile information

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


const headers = {
  'Accept':'application/json',
  '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}

Example responses

200 Response

{
  "BusinessAcctId": 0,
  "FirstName": "",
  "LastName": "",
  "ProfileAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "Phone": "",
  "PhoneExtension": "",
  "DateOfBirth": "",
  "Email": ""
}

Responses

Status Meaning Description Schema
200 OK Success GetBusinessProfileResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden Business is not open 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
204 No Content No Content None
400 Bad Request Invalid data None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Business is not open
- Admin does not have permission 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": "",
      "UserName": "",
      "ProfileAddress": {
        "ContactName": "",
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": "",
        "Country": ""
      },
      "Phone": "",
      "AltPhone": "",
      "DateOfBirth": "",
      "Email": "",
      "Permissions": {
        "ViewAdministration": false,
        "AddEditTerminateAdministrator": false,
        "RequestDeleteACHTransfer": false,
        "EditBusinessProfile": false,
        "AddEditTerminateCard": false,
        "CreateCardholder": false,
        "ManageCardholder": false,
        "ViewCardUsage": false,
        "RequestCardFunding": false,
        "ModifyTransactionNotes": false
      },
      "Status": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success GetAdminListResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden - Business is not open
- Admin does not have permission None

Create a business administrator

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/Admin',
  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/Admin', headers = headers)

print(r.json())

const inputBody = '{
  "UserName": "",
  "Password": "",
  "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,
    "CreateCardholder": false,
    "ManageCardholder": false,
    "ViewCardUsage": false,
    "RequestCardFunding": false,
    "ModifyTransactionNotes": false
  },
  "PasswordQuestion": "",
  "PasswordAnswer": ""
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

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

POST /Business/Admin

Create a PEX administrator

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

{
  "UserName": "",
  "Password": "",
  "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,
    "CreateCardholder": false,
    "ManageCardholder": false,
    "ViewCardUsage": false,
    "RequestCardFunding": false,
    "ModifyTransactionNotes": false
  },
  "PasswordQuestion": "",
  "PasswordAnswer": ""
}

Parameters

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

Example responses

200 Response

{
  "Admin": {
    "BusinessAdminId": 0,
    "FirstName": "",
    "MiddleName": "",
    "LastName": "",
    "UserName": "",
    "ProfileAddress": {
      "ContactName": "",
      "AddressLine1": "",
      "AddressLine2": "",
      "City": "",
      "State": "",
      "PostalCode": "",
      "Country": ""
    },
    "Phone": "",
    "AltPhone": "",
    "DateOfBirth": "",
    "Email": "",
    "Permissions": {
      "ViewAdministration": false,
      "AddEditTerminateAdministrator": false,
      "RequestDeleteACHTransfer": false,
      "EditBusinessProfile": false,
      "AddEditTerminateCard": false,
      "CreateCardholder": false,
      "ManageCardholder": false,
      "ViewCardUsage": false,
      "RequestCardFunding": false,
      "ModifyTransactionNotes": false
    },
    "Status": ""
  }
}

Responses

Status Meaning Description Schema
200 OK Success UpsertAdminResponse
400 Bad Request Invalid data None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Invalid business admin ID
  • Business is not open
  • Admin does not have permission|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/MyProfile',
  params: {
  }, headers: headers

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /Business/MyProfile

Return the profile and permissions for a current administrator.

Parameters

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

Example responses

200 Response

{
  "Admin": {
    "BusinessAdminId": 0,
    "FirstName": "",
    "MiddleName": "",
    "LastName": "",
    "UserName": "",
    "ProfileAddress": {
      "ContactName": "",
      "AddressLine1": "",
      "AddressLine2": "",
      "City": "",
      "State": "",
      "PostalCode": "",
      "Country": ""
    },
    "Phone": "",
    "AltPhone": "",
    "DateOfBirth": "",
    "Email": "",
    "Permissions": {
      "ViewAdministration": false,
      "AddEditTerminateAdministrator": false,
      "RequestDeleteACHTransfer": false,
      "EditBusinessProfile": false,
      "AddEditTerminateCard": false,
      "CreateCardholder": false,
      "ManageCardholder": false,
      "ViewCardUsage": false,
      "RequestCardFunding": false,
      "ModifyTransactionNotes": false
    },
    "Status": ""
  }
}

Responses

Status Meaning Description Schema
200 OK Success GetAdminResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden Must be admin user 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,
    "CreateCardholder": false,
    "ManageCardholder": false,
    "ViewCardUsage": false,
    "RequestCardFunding": false,
    "ModifyTransactionNotes": false
  },
  "PasswordQuestion": "",
  "PasswordAnswer": ""
}';
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,
    "CreateCardholder": false,
    "ManageCardholder": false,
    "ViewCardUsage": false,
    "RequestCardFunding": false,
    "ModifyTransactionNotes": false
  },
  "PasswordQuestion": "",
  "PasswordAnswer": ""
}

Parameters

Name In Type Required Description
Id path integer(int64) true The business admin id to edit
Authorization header string true token {USERTOKEN}
body body UpsertAdminRequest true Profile and permission data

Example responses

200 Response

{
  "Admin": {
    "BusinessAdminId": 0,
    "FirstName": "",
    "MiddleName": "",
    "LastName": "",
    "UserName": "",
    "ProfileAddress": {
      "ContactName": "",
      "AddressLine1": "",
      "AddressLine2": "",
      "City": "",
      "State": "",
      "PostalCode": "",
      "Country": ""
    },
    "Phone": "",
    "AltPhone": "",
    "DateOfBirth": "",
    "Email": "",
    "Permissions": {
      "ViewAdministration": false,
      "AddEditTerminateAdministrator": false,
      "RequestDeleteACHTransfer": false,
      "EditBusinessProfile": false,
      "AddEditTerminateCard": false,
      "CreateCardholder": false,
      "ManageCardholder": false,
      "ViewCardUsage": false,
      "RequestCardFunding": false,
      "ModifyTransactionNotes": false
    },
    "Status": ""
  }
}

Responses

Status Meaning Description Schema
200 OK Success UpsertAdminResponse
400 Bad Request Invalid data None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Invalid business admin ID
  • Business is not open
  • Admin does not have permission
  • Can not edit this admin|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(int64) true Business admin ID
Authorization header string true token {USERTOKEN}

Responses

Status Meaning Description Schema
204 No Content No Content None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Invalid business admin ID
  • Business Admin Is Deleted
  • Can not delete this admin|None| |404|Not Found|User id is not found|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.1
}

Responses

Status Meaning Description Schema
200 OK Success GetBusinessBalanceResponse
401 Unauthorized Token expired or does not exist None

Return billing information

Code samples

require 'rest-client'
require 'json'

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

result = RestClient.get 'https://coreapi.pexcard.com/v4/Business/Billing',
  params: {
  'Request.month' => 'integer(int32)',
'Request.year' => 'integer(int32)'
}, headers: headers

p JSON.parse(result)

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

r = requests.get('https://coreapi.pexcard.com/v4/Business/Billing', params={
  'Request.month': '1',  'Request.year': '0'
}, headers = headers)

print(r.json())


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

fetch('https://coreapi.pexcard.com/v4/Business/Billing?Request%2Emonth=1&Request%2Eyear=0',
{
  method: 'GET',

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

GET /Business/Billing

For the current month, values for fees and card counts are estimates are based on current plan and usage. Finalized monthly fees and card counts as per your statement will be available at the end of this billing cycle.

Parameters

Name In Type Required Description
Request.month query integer(int32) true Month
Request.year query integer(int32) true Year
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "OpenCardAccounts": 0,
  "MonthlyFee": 0.1,
  "EnrollmentFee": 0.1
}

Responses

Status Meaning Description Schema
200 OK Success BillingResponse
400 Bad Request Month and Year must be in the range '1/2007'- None
401 Unauthorized Token expired or does not exist None
403 Forbidden - 'Admin does not have permission': Admins must have 'Edit business profile' permissions to use this endpoint.
- 'Business is not open': This response will be returned for a business that is not open currently. If a business is currently open but the input date is prior to when the business was opened, the error response will be 404 - Monthly Fee Invoice Does Not Exist (see below).
- 'Invalid Month Year': Dates must be in the range January 2007-present.
None
404 Not Found 'Monthly Fee Invoice Does Not Exist' : This response will be returned if the invoice is not present in the database. It will be returned if a business is currently open but the input date is prior to when the business was opened. None

Return business settings

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /Business/Settings

SupportedCardType values are: - Plastic - Emv (Chip Card) - Virtual - Digital

Parameters

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

Example responses

200 Response

{
  "SupportedCardType": [
    "Undefined"
  ],
  "UseBusinessBalance": false,
  "UseRemoteDecision": false,
  "BlockCardDefunding": false,
  "UseCardholderGroup": false,
  "TagsEnabled": false,
  "AllocationTagsEnabled": false,
  "FundingSource": "Prepaid",
  "CardLimit": 0,
  "VendorLimit": 0,
  "DefaultDailyLimit": 0.1
}

Responses

Status Meaning Description Schema
200 OK Success SettingsResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden - Business is not open
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.1,
    "AvailableBalance": 0.1,
    "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.1,
          "DailySpendLimit": 0.1,
          "WeeklySpendLimit": 0.1,
          "MonthlySpendLimit": 0.1,
          "YearlySpendLimit": 0.1,
          "LifetimeSpendLimit": 0.1
        }
      ],
      "InternationalSpendEnabled": false,
      "IsDailySpendLimitEnabled": false,
      "DailySpendLimit": 0.1,
      "WeeklySpendLimit": 0.1,
      "MonthlySpendLimit": 0.1,
      "YearlySpendLimit": 0.1,
      "LifetimeSpendLimit": 0.1,
      "CardNotPresentUse": false,
      "CardPresence": 0,
      "UsePexAccountBalanceForAuths": false,
      "UseCustomerAuthDecision": false,
      "DaysOfWeekRestrictions": [
        "string"
      ],
      "UsStateRestrictions": [
        "string"
      ]
    },
    "ScheduledFunding": {
      "Amount": 0.1,
      "Frequency": "DAY"
    },
    "CustomId": "",
    "IsVirtual": false
  }
]

Responses

Status Meaning Description Schema
200 OK No cards found Inline
400 Bad Request Invalid ruleset ID None
401 Unauthorized Token expired or does not exist 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.1,
    "WeeklySpendLimit": 0.1,
    "MonthlySpendLimit": 0.1,
    "YearlySpendLimit": 0.1,
    "LifetimeSpendLimit": 0.1,
    "InternationalAllowed": false,
    "CardNotPresentAllowed": false,
    "CardPresence": 0,
    "UsePexAccountBalanceForAuths": false,
    "UseCustomerAuthDecision": false,
    "DaysOfWeekRestrictions": [
      "string"
    ],
    "UsStateRestrictions": [
      "string"
    ],
    "MccRestrictions": false,
    "MerchantCategories": [
      {
        "Id": 0,
        "Name": "",
        "Description": "",
        "TransactionLimit": 0.1,
        "DailySpendLimit": 0.1,
        "WeeklySpendLimit": 0.1,
        "MonthlySpendLimit": 0.1,
        "YearlySpendLimit": 0.1,
        "LifetimeSpendLimit": 0.1
      }
    ]
  }
]

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Invalid ruleset ID None
401 Unauthorized Token expired or does not exist 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.1,
  "WeeklySpendLimit": 0.1,
  "MonthlySpendLimit": 0.1,
  "YearlySpendLimit": 0.1,
  "LifetimeSpendLimit": 0.1,
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "TransactionLimit": 0.1,
      "DailySpendLimit": 0.1,
      "WeeklySpendLimit": 0.1,
      "MonthlySpendLimit": 0.1,
      "YearlySpendLimit": 0.1,
      "LifetimeSpendLimit": 0.1
    }
  ],
  "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.1,
  "WeeklySpendLimit": 0.1,
  "MonthlySpendLimit": 0.1,
  "YearlySpendLimit": 0.1,
  "LifetimeSpendLimit": 0.1,
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "TransactionLimit": 0.1,
      "DailySpendLimit": 0.1,
      "WeeklySpendLimit": 0.1,
      "MonthlySpendLimit": 0.1,
      "YearlySpendLimit": 0.1,
      "LifetimeSpendLimit": 0.1
    }
  ],
  "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.1,
  "WeeklySpendLimit": 0.1,
  "MonthlySpendLimit": 0.1,
  "YearlySpendLimit": 0.1,
  "LifetimeSpendLimit": 0.1,
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false,
  "DaysOfWeekRestrictions": [
    "string"
  ],
  "UsStateRestrictions": [
    "string"
  ],
  "MccRestrictions": false,
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "Description": "",
      "TransactionLimit": 0.1,
      "DailySpendLimit": 0.1,
      "WeeklySpendLimit": 0.1,
      "MonthlySpendLimit": 0.1,
      "YearlySpendLimit": 0.1,
      "LifetimeSpendLimit": 0.1
    }
  ]
}

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
401 Unauthorized Token expired or does not exist 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

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.1,
  "WeeklySpendLimit": 0.1,
  "MonthlySpendLimit": 0.1,
  "YearlySpendLimit": 0.1,
  "LifetimeSpendLimit": 0.1,
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "TransactionLimit": 0.1,
      "DailySpendLimit": 0.1,
      "WeeklySpendLimit": 0.1,
      "MonthlySpendLimit": 0.1,
      "YearlySpendLimit": 0.1,
      "LifetimeSpendLimit": 0.1
    }
  ],
  "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.1,
  "WeeklySpendLimit": 0.1,
  "MonthlySpendLimit": 0.1,
  "YearlySpendLimit": 0.1,
  "LifetimeSpendLimit": 0.1,
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "TransactionLimit": 0.1,
      "DailySpendLimit": 0.1,
      "WeeklySpendLimit": 0.1,
      "MonthlySpendLimit": 0.1,
      "YearlySpendLimit": 0.1,
      "LifetimeSpendLimit": 0.1
    }
  ],
  "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
201 Created Created CreateAdvancedSpendingRulesetResponse
400 Bad Request - The request is invalid
  • This ruleset is configured to use your business balance instead of the card balance. The daily spend limit must be less than or equal to $5,000.00. To allow the cardholder to spend over $5,000.00 per day, please disable the use of the business balance
  • The Name field is required
  • The field Name must be a string with a maximum length of 50
  • Invalid merchant category
  • Merchant spend limit exceeds overall spend limit
  • Merchant categories duplicated
  • Invalid value. Please enter amount greater than 0.00|None| |401|Unauthorized|Token expired or does not exist|None| |403|Forbidden|- This business does not support the Customer Authorization Decision
  • Name already exists|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
401 Unauthorized Token expired or does not exist None
403 Forbidden This spending ruleset is currently assigned to one or more cards. 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.1,
  "WeeklySpendLimit": 0.1,
  "MonthlySpendLimit": 0.1,
  "YearlySpendLimit": 0.1,
  "LifetimeSpendLimit": 0.1,
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false,
  "DaysOfWeekRestrictions": [
    "string"
  ],
  "UsStateRestrictions": [
    "string"
  ],
  "MccRestrictions": false,
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "Description": "",
      "TransactionLimit": 0.1,
      "DailySpendLimit": 0.1,
      "WeeklySpendLimit": 0.1,
      "MonthlySpendLimit": 0.1,
      "YearlySpendLimit": 0.1,
      "LifetimeSpendLimit": 0.1
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK AdvancedSpendingRulesetItemResponse
400 Bad Request Invalid ruleset ID None
401 Unauthorized Token expired or does not exist 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.1,
    "AvailableBalance": 0.1,
    "ProfileAddress": {
      "ContactName": "",
      "AddressLine1": "",
      "AddressLine2": "",
      "City": "",
      "State": "",
      "PostalCode": "",
      "Country": ""
    },
    "Phone": "",
    "ShippingAddress": {
      "ContactName": "",
      "AddressLine1": "",
      "AddressLine2": "",
      "City": "",
      "State": "",
      "PostalCode": "",
      "Country": ""
    },
    "ShippingPhone": "",
    "DateOfBirth": "",
    "Email": "",
    "IsVirtual": false,
    "CardholderType": "TeamMember",
    "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.1,
      "CardNotPresentUse": false,
      "CardPresence": 0,
      "UsePexAccountBalanceForAuths": false,
      "UseCustomerAuthDecision": false
    },
    "ScheduledFunding": {
      "Amount": 0.1,
      "Frequency": "DAY"
    },
    "CustomId": ""
  }
]

Responses

Status Meaning Description Schema
200 OK No cards found Inline
400 Bad Request SpendingRuleset is not in business None
401 Unauthorized Token expired or does not exist None

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
»» CardholderType string false none Identifies whether cardholder type is TeamMember or Vendor
»» 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
CardholderType TeamMember
CardholderType Vendor
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.1,
      "WeeklySpendLimit": 0.1,
      "MonthlySpendLimit": 0.1,
      "YearlySpendLimit": 0.1,
      "LifetimeSpendLimit": 0.1,
      "InternationalAllowed": false,
      "CardNotPresentAllowed": false,
      "CardPresence": 0,
      "UsePexAccountBalanceForAuths": false,
      "UseCustomerAuthDecision": false
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success GetSpendingRulesetsResponse
401 Unauthorized Token expired or does not exist None

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.1,
  "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.1,
  "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
400 Bad Request - This ruleset is configured to use your business balance instead of the card balance. The daily spend limit must be less than or equal to $5,000.00. To allow the cardholder to spend over $5,000.00 per day, please disable the use of the business balance
  • The Name field is required
  • The field Name must be a string with a maximum length of 50|None| |401|Unauthorized|Token expired or does not exist|None| |403|Forbidden|Spending ruleset does not exist in business|None| |406|Not Acceptable|Daily Spend Limit is not valid|None|

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.1,
  "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.1,
  "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

201 Response

{
  "RulesetId": 0
}

Responses

Status Meaning Description Schema
201 Created Created CreateSpendingRulesetResponse
400 Bad Request - This ruleset is configured to use your business balance instead of the card balance. The daily spend limit must be less than or equal to $5,000.00. To allow the cardholder to spend over $5,000.00 per day, please disable the use of the business balance
  • The field CardPresence is invalid
  • The Name field is required
  • The field Name must be a string with a maximum length of 50|None| |401|Unauthorized|Token expired or does not exist|None| |403|Forbidden|Name already exists|None| |406|Not Acceptable|Daily Spend Limit is not valid|None|

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
401 Unauthorized Spending ruleset does not exist in business None

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.1,
    "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 Success GetSpendingRulesetResponse
400 Bad Request The RulesetId field is invalid None
401 Unauthorized Token expired or does not exist None

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": "Continue",
  "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 Success NoteResponse
400 Bad Request - The field NoteText must be a string with a maximum length of 200
  • The NetworkTransactionId field is required
  • The NoteText field is required
  • Please do not include card numbers in your transaction notes|None| |401|Unauthorized|Token expired or does not exist|None| |404|Not Found|Transaction not found|None|

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
400 Bad Request - Please do not include card numbers in your transaction notes
- Note not found None
401 Unauthorized Token expired or does not exist None

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
400 Bad Request Note not found None
401 Unauthorized Token expired or does not exist 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 Success NoteResponse
400 Bad Request - The TransactionId field is required
  • The NoteText field is required
  • The field NoteText must be a string with a maximum length of 200
  • Please do not include card numbers in your transaction notes|None| |401|Unauthorized|Token expired or does not exist|None| |404|Not Found|Transaction not found|None|

Group : Manage groups and assign cards.

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.1,
    "LedgerBalance": 0.1,
    "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 Success Inline
401 Unauthorized Token expired or does not exist None
403 Forbidden GroupId is not in business None

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)

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
400 Bad Request The field Name must be a string with a maximum length of 50 None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Group has already been added
- Group ID is invalid 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
401 Unauthorized Token expired or does not exist None
403 Forbidden Group ID is Invalid None

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 Success GetGroupsResponse
401 Unauthorized Token expired or does not exist 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
400 Bad Request The field Name must be a string with a maximum length of 50 None
401 Unauthorized Token expired or does not exist None
403 Forbidden Group has already been added None

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
401 Unauthorized Token expired or does not exist None
403 Forbidden Admin does not have permission 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.1
    }
  ],
  "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.1
    }
  ],
  "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.1,
      "AccountId": 0,
      "TransactionId": 0,
      "CurrentBalance": 0.1,
      "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
401 Unauthorized Token expired or does not exist None
403 Forbidden Admin does not have permission 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": "DoNotTokenize"
}

Responses

Status Meaning Description Schema
200 OK Success GetBusinessTokenProvisioningModeResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden Must be admin user 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": "DoNotTokenize"
}

Responses

Status Meaning Description Schema
200 OK Success GetCardholderTokenProvisioningModeResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden - Invalid card account ID
  • Must be card account ID
  • This business does not support the Token Provisioning Feature|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": "DoNotTokenize"
}';
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": "DoNotTokenize"
}

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
400 Bad Request The request is invalid. None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Invalid card account ID
  • Must be card account ID
  • This business does not support the Token Provisioning Feature
  • Changes to token provisioning mode are disabled for vendor cardholder|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": "",
      "TokenExpirationDate": "",
      "DeviceName": "",
      "WalletName": "",
      "Status": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success GetIssuedTokensResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden - Invalid card account ID
  • Must be card account ID
  • This business does not support the Token Provisioning Feature|None|

Activation token

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}/Activation',
  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}/Activation', headers = headers)

print(r.json())

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

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

PUT /TokenProvisioning/{id}/Activation

Activation token

Body parameter

{
  "ReferenceId": "",
  "ActivationNote": ""
}

Parameters

Name In Type Required Description
id path integer(int32) true none
Authorization header string true token {USERTOKEN}
body body ActivationRequest true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK Success Inline
400 Bad Request Token activated or was already requested None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Invalid card account ID
  • Must be card account ID
  • This business does not support the Token Provisioning Feature|None| |404|Not Found|ReferenceId does not exist|None|

Response Schema

Status Code 200

IHttpActionResult

Name Type Required Restrictions Description

Partner : Manage partner.

Return a data associated with a partner

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /Partner

This endpoint is used for Partners to retrieve their unique Business ID. This Partner Business ID can then be used as a 1 to 1 relationship between a Partners Business ID and the PEX's Business Account ID. To find the PEX Business Account ID use the GET /Business/Profile endpoint.

Parameters

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

Example responses

200 Response

{
  "PartnerName": "",
  "PartnerBusinessId": ""
}

Responses

Status Meaning Description Schema
200 OK Success GetPartnerResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden Must be admin user None

CallbackSubscription : Manages callback subscriptions.

Returns all the callbacks subscriptions associated with the business.

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

fetch('https://coreapi.pexcard.com/v4/callback-subscription',
{
  method: 'GET',

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

GET /callback-subscription

Returns all the callbacks subscriptions associated with the business, whether they are active or not.

Parameters

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

Example responses

200 Response

[
  {
    "Id": 0,
    "BusinessAccountId": 0,
    "CallbackType": "Card",
    "Status": "Active",
    "Url": "",
    "Username": "",
    "CreatedDate": ""
  }
]

Responses

Status Meaning Description Schema
200 OK Success Inline
401 Unauthorized Token expired or does not exist None
403 Forbidden - Must be admin user
- Admin does not have permission None

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [CallbackSubscriptionResponse] false none [Callback Subscription Response]
» CallbackSubscriptionResponse CallbackSubscriptionResponse false none Callback Subscription Response
»» Id integer(int32) false none Id
»» BusinessAccountId integer(int32) false none Business Account Id
»» CallbackType string false none Callback Type
»» Status string false none Status
»» Url string false none Url
»» Username string false none Username
»» CreatedDate string(date-time) false none Created Date

Enumerated Values

Property Value
CallbackType Card
CallbackType Cardorder
CallbackType CardOrderVirtual
CallbackType CardTokenCreated
CallbackType AuthRealtime
CallbackType PinRealtime
CallbackType DeclineRealtime
CallbackType ReversalRealtime
CallbackType SettlementPostedRealtime
Status Active
Status Inactive

Creates a new callback subscription.

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/callback-subscription',
  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/callback-subscription', headers = headers)

print(r.json())

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

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

POST /callback-subscription

Creates a new callback subscription on the business account. Whenever the process associated with the type runs, it will send a request to the url, if the callback subscription is active.

Body parameter

{
  "CallbackType": "Card",
  "Status": "Active",
  "Url": ""
}

Parameters

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

Example responses

200 Response

{
  "Id": 0,
  "BusinessAccountId": 0,
  "CallbackType": "Card",
  "Status": "Active",
  "Url": "",
  "Username": "",
  "CreatedDate": ""
}

Responses

Status Meaning Description Schema
200 OK Success CallbackSubscriptionResponse
400 Bad Request The request body was not valid None
401 Unauthorized Token expired or does not exist None
403 Forbidden Admin does not have permission None
409 Conflict The callback subscription conflicts with another one. None

Returns the callback subscription.

Code samples

require 'rest-client'
require 'json'

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

result = RestClient.get 'https://coreapi.pexcard.com/v4/callback-subscription/{id}',
  params: {
  }, headers: headers

p JSON.parse(result)

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

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

print(r.json())


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

fetch('https://coreapi.pexcard.com/v4/callback-subscription/{id}',
{
  method: 'GET',

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

GET /callback-subscription/{id}

Returns the callback subscription.

Parameters

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

Example responses

200 Response

{
  "Id": 0,
  "BusinessAccountId": 0,
  "CallbackType": "Card",
  "Status": "Active",
  "Url": "",
  "Username": "",
  "CreatedDate": ""
}

Responses

Status Meaning Description Schema
200 OK Success CallbackSubscriptionResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden - Must be admin user
- Admin does not have permission None
404 Not Found The callback subscription does not exist. None

Updates the callback subscription.

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/callback-subscription/{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/callback-subscription/{id}', headers = headers)

print(r.json())

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

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

PUT /callback-subscription/{id}

Updates the callback subscription. Disabled callbacks can be reactivated by updating the status on the callback.

Body parameter

{
  "CallbackType": "Card",
  "Status": "Active",
  "Url": ""
}

Parameters

Name In Type Required Description
id path integer(int32) true none
Authorization header string true token {USERTOKEN}
body body CallbackSubscriptionUpdateRequest true none

Example responses

200 Response

{
  "Id": 0,
  "BusinessAccountId": 0,
  "CallbackType": "Card",
  "Status": "Active",
  "Url": "",
  "Username": "",
  "CreatedDate": ""
}

Responses

Status Meaning Description Schema
200 OK Success CallbackSubscriptionResponse
400 Bad Request The request body was not recognized. None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Must be admin user
- Admin does not have permission None
404 Not Found The callback subscription does not exist. None
409 Conflict The callback subscription conflicts with another one. None

Credit : Credit business endpoints

Get business invoices

Code samples

require 'rest-client'
require 'json'

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

result = RestClient.get 'https://coreapi.pexcard.com/v4/Invoices',
  params: {
  'StartDate' => '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/Invoices', params={
  'StartDate': '2019-08-24T14:15:22Z'
}, headers = headers)

print(r.json())


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

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

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

GET /Invoices

Parameters

Name In Type Required Description
StartDate query string(date-time) true Start Date
Authorization header string true token {USERTOKEN}

Example responses

200 Response

[
  {
    "InvoiceId": 0,
    "InvoiceAmount": 0.1,
    "Status": "Open",
    "DueDate": ""
  }
]

Responses

Status Meaning Description Schema
200 OK Success Inline
400 Bad Request The request is invalid None
401 Unauthorized Token expired or does not exist None
403 Forbidden Must be admin user None

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [Invoice] false none none
» Invoice Invoice false none none
»» InvoiceId integer(int32) true none none
»» InvoiceAmount number(double) true none none
»» Status string true none none
»» DueDate string(date-time) true none none

Enumerated Values

Property Value
Status Open
Status Closed
Status Cancelled
Status Draft

Get invoice allocations

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /Invoice/{id}/Allocations

Parameters

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

Example responses

200 Response

[
  {
    "InvoiceId": 0,
    "TagName": "",
    "TagValue": "",
    "TotalAmount": 0.1
  }
]

Responses

Status Meaning Description Schema
200 OK Success Inline
401 Unauthorized Token expired or does not exist None
403 Forbidden Must be admin user None
404 Not Found Invoice is not found None

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [InvoiceAllocation] false none none
» InvoiceAllocation InvoiceAllocation false none none
»» InvoiceId integer(int64) false none none
»» TagName string false none none
»» TagValue string false none none
»» TotalAmount number(double) false none none

Get invoice payments

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /Invoice/{id}/Payments

Parameters

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

Example responses

200 Response

[
  {
    "PaymentId": 0,
    "Type": "PEXTransfer",
    "Amount": 0.1
  }
]

Responses

Status Meaning Description Schema
200 OK Success Inline
401 Unauthorized Token expired or does not exist None
403 Forbidden Must be admin user None
404 Not Found Invoice is not found None

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [InvoicePayment] false none none
» InvoicePayment InvoicePayment false none none
»» PaymentId integer(int32) false none none
»» Type string false none none
»» Amount number(double) false none none

Enumerated Values

Property Value
Type PEXTransfer
Type SalesCredit
Type WriteOff
Type Reversal
Type RebateCredit
Type RebateCreditReversal
Type SameDayACH
Type CarryOverCredit

VendorCard : Create and review vendor card orders.

Return details for all vendor cards included in a vendor 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/VendorCard/Order/{orderId}',
  params: {
  }, headers: headers

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /VendorCard/Order/{orderId}

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

Parameters

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

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK Success VendorCardsGetOrderResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden Vendor Card order is not available (may belong to another business) None
404 Not Found Vendor Card order does not exist None

Create vendor 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/VendorCard/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/VendorCard/Order', headers = headers)

print(r.json())

const inputBody = '{
  "VendorCards": [
    {
      "VendorName": "",
      "Phone": "",
      "Email": "",
      "GroupId": 0,
      "RulesetId": 0,
      "AutoActivation": false,
      "FundingType": "InitialFunding",
      "FundCardAmount": 0.1,
      "CardDataWebhookURL": ""
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

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

POST /VendorCard/Order

Create vendor cards for the business. The response to this call is a VendorCardOrderId and NumberOfCardsRequested.

To retrieve card order details (without sensitive data), including the card AcctId, use GET /VendorCard/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.
Vendor name and phone number are required.
non-ASCII characters. Ex: "ñ" not allowed
Vendor name may only include letters, numbers and the following punctuation symbols: , . - & ', and have a maximum length of 15 characters
Email format: name@domain.com
Phone format: 2125551212 or 212-555-1212, 10 digits can not begin with 1

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}.

FundingType: - 'InitialFunding' – Set funds to be transferred to the card upon creation.
- 'AutoCardFunding' – Set funds to be automatically pulled from the business account balance so that no funding is needed ahead of payment.
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".

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

{
  "VendorCards": [
    {
      "VendorName": "",
      "Phone": "",
      "Email": "",
      "GroupId": 0,
      "RulesetId": 0,
      "AutoActivation": false,
      "FundingType": "InitialFunding",
      "FundCardAmount": 0.1,
      "CardDataWebhookURL": ""
    }
  ]
}

Parameters

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

Example responses

200 Response

{
  "VendorCardOrderId": 0,
  "NumberOfCardsRequested": 0
}

Responses

Status Meaning Description Schema
200 OK Success VendorCardsOrderResponse
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| |401|Unauthorized|Token expired or does not exist|None| |403|Forbidden|- The business does not support Vendor 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
  • Card for Vendor Name cannot be added to the specified spend policy because it conflicts with the Card Presence setting
  • Card requests with Auto Card Funding cannot include a RulesetId|None| |405|Method Not Allowed|- Business funding is required. Please contact adminsupport@pexcard.com|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/VendorCard/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/VendorCard/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/VendorCard/Data',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /VendorCard/Data

Request to resend webhook/callback with sensitive card data for a single AcctId. This should only be used if the webhook from POST/VendorCard/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 /VendorCard/Order/{Id}.

Body parameter

{
  "AcctId": 0,
  "CardDataWebhookUrl": ""
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body VendorCardDataRequest 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 Vendor Card Order
- Webhook host request is different than one registered with PEX None
401 Unauthorized Token expired or does not exist 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

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.1,
        "DailySpendLimit": 0.1,
        "WeeklySpendLimit": 0.1,
        "MonthlySpendLimit": 0.1,
        "YearlySpendLimit": 0.1,
        "LifetimeSpendLimit": 0.1
      }
    ],
    "InternationalSpendEnabled": false,
    "IsDailySpendLimitEnabled": false,
    "DailySpendLimit": 0.1,
    "WeeklySpendLimit": 0.1,
    "MonthlySpendLimit": 0.1,
    "YearlySpendLimit": 0.1,
    "LifetimeSpendLimit": 0.1,
    "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.1,
      "DailySpendLimit": 0.1,
      "WeeklySpendLimit": 0.1,
      "MonthlySpendLimit": 0.1,
      "YearlySpendLimit": 0.1,
      "LifetimeSpendLimit": 0.1
    }
  ],
  "InternationalSpendEnabled": false,
  "IsDailySpendLimitEnabled": false,
  "DailySpendLimit": 0.1,
  "WeeklySpendLimit": 0.1,
  "MonthlySpendLimit": 0.1,
  "YearlySpendLimit": 0.1,
  "LifetimeSpendLimit": 0.1,
  "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.1,
  "DailySpendLimit": 0.1,
  "WeeklySpendLimit": 0.1,
  "MonthlySpendLimit": 0.1,
  "YearlySpendLimit": 0.1,
  "LifetimeSpendLimit": 0.1
}

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.1,
      "DailySpendLimit": 0.1,
      "WeeklySpendLimit": 0.1,
      "MonthlySpendLimit": 0.1,
      "YearlySpendLimit": 0.1,
      "LifetimeSpendLimit": 0.1
    }
  ],
  "InternationalSpendEnabled": false,
  "DailySpendLimit": 0.1,
  "WeeklySpendLimit": 0.1,
  "MonthlySpendLimit": 0.1,
  "YearlySpendLimit": 0.1,
  "LifetimeSpendLimit": 0.1,
  "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.1,
  "DailySpendLimit": 0.1,
  "WeeklySpendLimit": 0.1,
  "MonthlySpendLimit": 0.1,
  "YearlySpendLimit": 0.1,
  "LifetimeSpendLimit": 0.1
}

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.1,
  "LedgerBalance": 0.1,
  "TransactionId": 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
TransactionId integer(int64) true none Id of funded transaction

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": "",
      "IsVirtual": false
    }
  ]
}

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": "",
  "IsVirtual": false
}

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)
IsVirtual boolean false none Is virtual

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 true none Phone number
ShippingPhone string false none Shipping Phone number
DateOfBirth string(date-time) true 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,
  "CardholderType": "TeamMember",
  "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
CardholderType string false none Identifies whether cardholder type is TeamMember or Vendor
CustomId string false none User defined Id which can be assigned to Card holder profile (alphanumeric up to 50 characters)

Enumerated Values

Property Value
CardholderType TeamMember
CardholderType Vendor

FundRequest

{
  "Amount": 0.1,
  "NoteText": ""
}

FundRequest

Properties

Name Type Required Restrictions Description
Amount number(double) true none The amount to fund the card account, rounded to 2 decimal places
NoteText string false none Text of note which will be attached to transaction

CreateCardAsyncRequest

{
  "Cards": [
    {
      "Phone": "",
      "ShippingPhone": "",
      "ShippingMethod": "Invalid",
      "DateOfBirth": "",
      "Email": "",
      "GroupId": 0,
      "RulesetId": 0,
      "VirtualCard": false,
      "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": "Invalid",
  "DateOfBirth": "",
  "Email": "",
  "GroupId": 0,
  "RulesetId": 0,
  "VirtualCard": false,
  "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 false none Shipping Phone number
ShippingMethod string false 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
VirtualCard boolean false none Virtual card
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
ShippingMethod PriorityMail

CreateCardAsyncResponse

{
  "CardOrderId": 0
}

CreateCardAsyncResponse

Properties

Name Type Required Restrictions Description
CardOrderId integer(int32) false none Card Order ID

PhysicalEmbossingJobRequest

{
  "ShippingPhone": "",
  "ShippingMethod": "Invalid",
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "Accounts": [
    0
  ]
}

PhysicalEmbossingJobRequest

Properties

Name Type Required Restrictions Description
ShippingPhone string true none Shipping Phone number
ShippingMethod string true none Method for shipping the card
ShippingAddress AddressContact true none none
Accounts [integer] true none Accounts

Enumerated Values

Property Value
ShippingMethod Invalid
ShippingMethod FirstClassMail
ShippingMethod Expedited
ShippingMethod Rush
ShippingMethod PriorityMail

UpdateCardStatusRequest

{
  "Status": "Invalid"
}

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

CardLoadLimitResponse

{
  "AccountId": 0,
  "LifetimeLimit": 0.1,
  "RemainingLimit": 0.1
}

CardLoadLimitResponse

Properties

Name Type Required Restrictions Description
AccountId integer(int32) false none The cardholder account id
LifetimeLimit number(double) false none This value is the maximum amount of dollars that can be loaded onto a Cardholder's Account. Note: a value of zero indicates that there is no limit set for the account.
RemainingLimit number(double) false none The amount of funds that can still be added to an account before exceeding the Lifetime Card Funding Limit(i.e.LifetimeLimit less the total funds added to the account to date). A value of null is returned if the lifetime limit does not exist for the account.

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.1,
    "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.1,
  "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.1,
  "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.1,
  "Frequency": "DAY"
}

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.1,
    "Frequency": "DAY"
  }
}

GetScheduledFundingRulesResponse

Properties

Name Type Required Restrictions Description
ScheduledFunding ScheduledFunding false none Details about scheduled funding

ScheduledFunding

{
  "Amount": 0.1,
  "Frequency": "DAY"
}

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

CardViewTokenCreateRequest

{
  "AcctId": 0
}

CardViewTokenCreateRequest

Properties

Name Type Required Restrictions Description
AcctId integer(int32) true none Account ID

CancellationToken

{
  "IsCancellationRequested": false,
  "CanBeCanceled": false,
  "WaitHandle": {
    "Handle": {},
    "SafeWaitHandle": {
      "IsInvalid": false,
      "IsClosed": false
    }
  }
}

CancellationToken

Properties

Name Type Required Restrictions Description
IsCancellationRequested boolean false read-only none
CanBeCanceled boolean false read-only none
WaitHandle WaitHandle false none none

WaitHandle

{
  "Handle": {},
  "SafeWaitHandle": {
    "IsInvalid": false,
    "IsClosed": false
  }
}

WaitHandle

Properties

Name Type Required Restrictions Description
Handle object false none none
SafeWaitHandle SafeWaitHandle false none none

SafeWaitHandle

{
  "IsInvalid": false,
  "IsClosed": false
}

SafeWaitHandle

Properties

Name Type Required Restrictions Description
IsInvalid boolean false read-only none
IsClosed boolean false read-only none

CardViewTokenCreateResponse

{
  "CardViewToken": ""
}

CardViewTokenCreateResponse

Properties

Name Type Required Restrictions Description
CardViewToken string false none none

CardViewTokenUseRequest

{
  "CardViewToken": ""
}

CardViewTokenUseRequest

Properties

Name Type Required Restrictions Description
CardViewToken string true none none

CardViewTokenUseResponse

{
  "CardNumber": "",
  "ExpirationDate": "",
  "CVV2": ""
}

CardViewTokenUseResponse

Properties

Name Type Required Restrictions Description
CardNumber string false none none
ExpirationDate string(date-time) false none none
CVV2 string false none none

GetAdvancedAccountDetailsResponse

{
  "AccountId": 0,
  "Group": {
    "Id": 0,
    "GroupName": ""
  },
  "AccountStatus": "",
  "LedgerBalance": 0.1,
  "AvailableBalance": 0.1,
  "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.1,
        "DailySpendLimit": 0.1,
        "WeeklySpendLimit": 0.1,
        "MonthlySpendLimit": 0.1,
        "YearlySpendLimit": 0.1,
        "LifetimeSpendLimit": 0.1
      }
    ],
    "InternationalSpendEnabled": false,
    "IsDailySpendLimitEnabled": false,
    "DailySpendLimit": 0.1,
    "WeeklySpendLimit": 0.1,
    "MonthlySpendLimit": 0.1,
    "YearlySpendLimit": 0.1,
    "LifetimeSpendLimit": 0.1,
    "CardNotPresentUse": false,
    "CardPresence": 0,
    "UsePexAccountBalanceForAuths": false,
    "UseCustomerAuthDecision": false,
    "DaysOfWeekRestrictions": [
      "string"
    ],
    "UsStateRestrictions": [
      "string"
    ]
  },
  "ScheduledFunding": {
    "Amount": 0.1,
    "Frequency": "DAY"
  },
  "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": "PerDay",
      "EnforcedLimit": 0.1,
      "RemainingSpend": 0.1
    }
  ],
  "MerchantCategoryLimits": [
    {
      "MerchantCategoryId": 0,
      "Category": "",
      "Type": "PerDay",
      "EnforcedLimit": 0.1,
      "RemainingSpend": 0.1
    }
  ]
}

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": "PerDay",
  "EnforcedLimit": 0.1,
  "RemainingSpend": 0.1
}

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": "PerDay",
  "EnforcedLimit": 0.1,
  "RemainingSpend": 0.1
}

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.1,
      "PaddingAmount": 0.1,
      "AvailableBalance": 0.1,
      "LedgerBalance": 0.1,
      "TransactionType": "",
      "Description": "",
      "TransactionNotes": [
        {
          "NoteId": 0,
          "UserName": "",
          "NoteText": "",
          "NoteDate": ""
        }
      ],
      "HasReceipt": false,
      "ReferencedTranId": 0,
      "ReferencedTransactionTime": "",
      "MerchantName": "",
      "MerchantNameNormalized": "",
      "MerchantUrl": "",
      "MerchantLogoUrl": "",
      "MerchantIconUrl": "",
      "MerchantCity": "",
      "MerchantState": "",
      "MerchantZip": "",
      "MerchantCountry": "",
      "MCCCode": "",
      "AuthIdentityResponseCode": "",
      "MerchantId": "",
      "TerminalId": "",
      "SourceCurrencyCodeDescription": "",
      "SourceCurrencyNumericCode": "",
      "SourceAmount": 0.1,
      "NetworkType": "",
      "NetworkStatus": "",
      "IsCardPresent": false,
      "Message": "",
      "MessageCode": "",
      "MerchantRequestedAmount": 0.1
    }
  ]
}

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.1,
  "PaddingAmount": 0.1,
  "AvailableBalance": 0.1,
  "LedgerBalance": 0.1,
  "TransactionType": "",
  "Description": "",
  "TransactionNotes": [
    {
      "NoteId": 0,
      "UserName": "",
      "NoteText": "",
      "NoteDate": ""
    }
  ],
  "HasReceipt": false,
  "ReferencedTranId": 0,
  "ReferencedTransactionTime": "",
  "MerchantName": "",
  "MerchantNameNormalized": "",
  "MerchantUrl": "",
  "MerchantLogoUrl": "",
  "MerchantIconUrl": "",
  "MerchantCity": "",
  "MerchantState": "",
  "MerchantZip": "",
  "MerchantCountry": "",
  "MCCCode": "",
  "AuthIdentityResponseCode": "",
  "MerchantId": "",
  "TerminalId": "",
  "SourceCurrencyCodeDescription": "",
  "SourceCurrencyNumericCode": "",
  "SourceAmount": 0.1,
  "NetworkType": "",
  "NetworkStatus": "",
  "IsCardPresent": false,
  "Message": "",
  "MessageCode": "",
  "MerchantRequestedAmount": 0.1
}

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
HasReceipt boolean false none Whether or not the transaction has receipt attached
ReferencedTranId integer(int64) false none ID of referenced transaction
ReferencedTransactionTime string(date-time) false none Referenced transaction time
MerchantName string false none Merchant name
MerchantNameNormalized string false none Merchant name normalized
MerchantUrl string false none Merchant website url
MerchantLogoUrl string false none Merchant logo url
MerchantIconUrl string false none Merchant icon url
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
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
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,
  "BusinessAccountNumber": "",
  "BusinessName": "",
  "BusinessAccountStatus": "",
  "BusinessAccountBalance": 0.1,
  "PendingTransferAmount": 0.1,
  "BankAccountList": [
    {
      "ExternalBankAcctId": 0,
      "RoutingNumber": "",
      "BankAccountNumber": "",
      "BankName": "",
      "BankAccountType": "",
      "IsActive": false
    }
  ],
  "CHAccountList": [
    {
      "AccountId": 0,
      "FirstName": "",
      "LastName": "",
      "Email": "",
      "LedgerBalance": 0.1,
      "AvailableBalance": 0.1,
      "AccountStatus": "",
      "IsVirtual": false,
      "CardholderType": "",
      "CustomId": "",
      "GroupId": 0,
      "GroupName": "",
      "CardStatus": "",
      "CardNumber4Digits": "",
      "CardIssueDate": "",
      "CardExpiryDate": ""
    }
  ],
  "CardholderGroups": [
    {
      "Id": 0,
      "Name": ""
    }
  ],
  "OpenCardholdersCount": 0,
  "OpenVendorCardsCount": 0
}

BusinessDetailsResponse

Properties

Name Type Required Restrictions Description
BusinessAccountId integer(int32) true none Unique account id for the business
BusinessAccountNumber string true none Unique account number 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
OpenCardholdersCount integer(int32) false none The number of open team cards this business has.
OpenVendorCardsCount integer(int32) false none The number of open vendor cards this business has.

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": "",
  "Email": "",
  "LedgerBalance": 0.1,
  "AvailableBalance": 0.1,
  "AccountStatus": "",
  "IsVirtual": false,
  "CardholderType": "",
  "CustomId": "",
  "GroupId": 0,
  "GroupName": "",
  "CardStatus": "",
  "CardNumber4Digits": "",
  "CardIssueDate": "",
  "CardExpiryDate": ""
}

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
Email string true none Cardholder email
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
CardholderType string false none Identifies whether cardholder type is TeamMember or Vendor
CustomId string false none User defined Id which can be assigned to Card holder profile (alphanumeric up to 50 characters)
GroupId integer(int32) false none Cardholder's group id.
GroupName string false none Cardholder's group name.
CardStatus string false none Cardholder's active card status (NULL, Active, Inactive, Closed, Blocked).
CardNumber4Digits string false none Cardholder's active card's last 4 digits.
CardIssueDate string(date-time) false none Cardholder's active card's issue date.
CardExpiryDate string(date-time) false none Cardholder's active card's expiry date.

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.1,
  "AvailableBalance": 0.1,
  "ProfileAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "Phone": "",
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "ShippingPhone": "",
  "DateOfBirth": "",
  "Email": "",
  "IsVirtual": false,
  "CardholderType": "TeamMember",
  "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.1,
    "CardNotPresentUse": false,
    "CardPresence": 0,
    "UsePexAccountBalanceForAuths": false,
    "UseCustomerAuthDecision": false
  },
  "ScheduledFunding": {
    "Amount": 0.1,
    "Frequency": "DAY"
  },
  "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
CardholderType string false none Identifies whether cardholder type is TeamMember or Vendor
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)

Enumerated Values

Property Value
CardholderType TeamMember
CardholderType Vendor

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.1,
      "PaddingAmount": 0.1,
      "TransactionType": "Transfer",
      "Description": "",
      "TransactionNotes": [
        {
          "NoteId": 0,
          "UserName": "",
          "NoteText": "",
          "NoteDate": ""
        }
      ],
      "IsPending": false,
      "IsDecline": false,
      "HasReceipt": false,
      "MerchantName": "",
      "MerchantNameNormalized": "",
      "MerchantUrl": "",
      "MerchantLogoUrl": "",
      "MerchantIconUrl": "",
      "MerchantCity": "",
      "MerchantState": "",
      "MerchantZip": "",
      "MerchantCountry": "",
      "MCCCode": "",
      "TransferToOrFromAccountId": 0,
      "AuthIdentityResponseCode": "",
      "MerchantId": "",
      "TerminalId": "",
      "NetworkTransactionId": 0,
      "SourceCurrencyCodeDescription": "",
      "SourceCurrencyNumericCode": "",
      "SourceAmount": 0.1,
      "TransactionTags": {
        "Tags": [
          {
            "FieldId": "",
            "Value": {},
            "Name": ""
          }
        ],
        "State": "Initial",
        "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.1,
  "PaddingAmount": 0.1,
  "TransactionType": "Transfer",
  "Description": "",
  "TransactionNotes": [
    {
      "NoteId": 0,
      "UserName": "",
      "NoteText": "",
      "NoteDate": ""
    }
  ],
  "IsPending": false,
  "IsDecline": false,
  "HasReceipt": false,
  "MerchantName": "",
  "MerchantNameNormalized": "",
  "MerchantUrl": "",
  "MerchantLogoUrl": "",
  "MerchantIconUrl": "",
  "MerchantCity": "",
  "MerchantState": "",
  "MerchantZip": "",
  "MerchantCountry": "",
  "MCCCode": "",
  "TransferToOrFromAccountId": 0,
  "AuthIdentityResponseCode": "",
  "MerchantId": "",
  "TerminalId": "",
  "NetworkTransactionId": 0,
  "SourceCurrencyCodeDescription": "",
  "SourceCurrencyNumericCode": "",
  "SourceAmount": 0.1,
  "TransactionTags": {
    "Tags": [
      {
        "FieldId": "",
        "Value": {},
        "Name": ""
      }
    ],
    "State": "Initial",
    "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
HasReceipt boolean false none Whether or not the transaction has receipt attached
MerchantName string true none Merchant name
MerchantNameNormalized string false none Merchant name normalized
MerchantUrl string false none Merchant website url
MerchantLogoUrl string false none Merchant logo url
MerchantIconUrl string false none Merchant icon url
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": "Initial",
  "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": "Image",
      "Size": 0,
      "Link": {
        "related": ""
      },
      "UploadStatus": "NotLoaded",
      "CreatedDateUtc": "",
      "CreatedBy": {
        "AdminId": 0,
        "UserId": 0,
        "PexUserId": 0
      },
      "UpdatedDateUtc": "",
      "UpdatedBy": {
        "AdminId": 0,
        "UserId": 0,
        "PexUserId": 0
      }
    }
  ],
  "ApprovalStatus": "NotReviewed"
}

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": "Image",
  "Size": 0,
  "Link": {
    "related": ""
  },
  "UploadStatus": "NotLoaded",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 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,
  "PexUserId": 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
PexUserId integer(int64) false none Security User Id of the user who created, updated, or deleted the tag definition

DeleteAttachment

{
  "AttachmentId": "",
  "Type": "Image",
  "Size": 0,
  "UploadStatus": "NotLoaded",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 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": "Image",
  "Size": 0,
  "Content": "",
  "UploadStatus": "NotLoaded",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "ApprovalStatus": "NotReviewed"
}

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": "Image"
}

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": "Image",
  "Size": 0,
  "Link": {
    "self": ""
  },
  "UploadStatus": "NotLoaded",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 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": "NotReviewed",
  "Values": {},
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 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

CreateAllocationTagValuesRequest

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

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.1
}

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.1
    }
  ]
}

UpdateAllocationTagValuesRequest

Properties

Name Type Required Restrictions Description
ConcurrencyKey string false none Concurrent editing token
Values [AllocationTagValue] false none Allocation tag values

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

Tag

{
  "Id": "",
  "Type": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 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": 2147483647,
  "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": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 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": 2147483647,
  "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": 200,
  "ValidationType": "None",
  "Name": "",
  "Description": "",
  "Order": 2147483647,
  "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": "None",
  "Id": "",
  "Type": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 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": 200,
  "ValidationType": "None",
  "Name": "",
  "Description": "",
  "Order": 2147483647,
  "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": 2147483647,
  "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": 2147483647,
  "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": "Text",
  "Name": "",
  "Description": "",
  "IsEnabled": false,
  "IsDeleted": false,
  "IsRequired": false,
  "Order": 0,
  "ConcurrencyKey": "",
  "CreatedDateUtc": "",
  "CreatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "UpdatedDateUtc": "",
  "UpdatedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 0
  },
  "DeletedDateUtc": "",
  "DeletedBy": {
    "AdminId": 0,
    "UserId": 0,
    "PexUserId": 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

LinkedBusinessResponse

{
  "InstitutionId": 0,
  "BusinessAcctId": 0,
  "BusinessName": "",
  "MinBusinessBalance": 0.1,
  "CurrentBalance": 0.1
}

LinkedBusinessResponse

Properties

Name Type Required Restrictions Description
InstitutionId integer(int32) false none The institution id.
BusinessAcctId integer(int32) false none The business account id.
BusinessName string false none The business account name.
MinBusinessBalance number(double) false none The minimum business balance.
CurrentBalance number(double) false none The current balance.

ExternalBankResponse

{
  "BusinessAcctId": 0,
  "RecipientId": 0,
  "AccountNumberMask": "",
  "Name": "",
  "Owner": "",
  "Description": "",
  "IsActive": false
}

ExternalBankResponse

Properties

Name Type Required Restrictions Description
BusinessAcctId integer(int32) false none The business id the bank account is for.
RecipientId integer(int32) false none The bank transfer recipient id.
AccountNumberMask string false none The account number masked.
Name string false none The bank account name.
Owner string false none The bank account owner.
Description string false none The bank account description.
IsActive boolean false none Whether the bank account is active.

TransferDto

{
  "Type": "ACH",
  "AccountFrom": {
    "AccountType": "Business",
    "AccountId": 0
  },
  "AccountTo": {
    "AccountType": "Business",
    "AccountId": 0
  },
  "Amount": 0.1
}

TransferDto

Properties

Name Type Required Restrictions Description
Type string false none For tranfers with banks only: ACH, SameDayACH.
AccountFrom TransferAccountDto true none none
AccountTo TransferAccountDto false none none
Amount number(double) true none The transfer amount (positive).

Enumerated Values

Property Value
Type ACH
Type SameDayACH

TransferAccountDto

{
  "AccountType": "Business",
  "AccountId": 0
}

TransferAccountDto

Properties

Name Type Required Restrictions Description
AccountType string true none Business, Bank.
AccountId integer(int32) true none The Bank account's RecipientId or the business's BusinessAcctId;

Enumerated Values

Property Value
AccountType Business
AccountType Bank

TransferResponse

{
  "Type": "BusinessToBusiness",
  "TransferType": "ACH",
  "ProcessingDateTime": ""
}

TransferResponse

Properties

Name Type Required Restrictions Description
Type string false none The type of transfer processed: BusinessToBusiness, BankToBusiness, BusinessToBank.
TransferType string false none The bank transfer type: ACH, SameDayACH.
ProcessingDateTime string(date-time) false none The time the funds will be available.

Enumerated Values

Property Value
Type BusinessToBusiness
Type BankToBusiness
Type BusinessToBank
TransferType ACH
TransferType SameDayACH

GetOneTimeTransferResponse

{
  "OneTimeTransferDetails": [
    {
      "TransferRequestId": 0,
      "BankInformation": {
        "ExternalBankAcctId": 0,
        "RoutingNumber": "",
        "BankAccountNumber": "",
        "BankName": "",
        "BankAccountType": "",
        "IsActive": false
      },
      "Amount": 0.1,
      "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.1,
  "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

CreateAdminRequest

{
  "UserName": "",
  "Password": "",
  "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,
    "CreateCardholder": false,
    "ManageCardholder": false,
    "ViewCardUsage": false,
    "RequestCardFunding": false,
    "ModifyTransactionNotes": false
  },
  "PasswordQuestion": "",
  "PasswordAnswer": ""
}

CreateAdminRequest

Properties

Name Type Required Restrictions Description
UserName string false none Admin username
Password string false none none
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
PasswordQuestion string false none none
PasswordAnswer string false none none

AdminPermissions

{
  "ViewAdministration": false,
  "AddEditTerminateAdministrator": false,
  "RequestDeleteACHTransfer": false,
  "EditBusinessProfile": false,
  "AddEditTerminateCard": false,
  "CreateCardholder": false,
  "ManageCardholder": false,
  "ViewCardUsage": false,
  "RequestCardFunding": false,
  "ModifyTransactionNotes": 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
CreateCardholder boolean false none Whether or not admin can create a card
ManageCardholder boolean false none Whether or not admin can edit, or terminate a card
ViewCardUsage boolean false none Whether or not view card usage
RequestCardFunding boolean true none Whether or not admin can create a card funding request
ModifyTransactionNotes boolean true none Whether or not admin can modify transaction notes

UpsertAdminResponse

{
  "Admin": {
    "BusinessAdminId": 0,
    "FirstName": "",
    "MiddleName": "",
    "LastName": "",
    "UserName": "",
    "ProfileAddress": {
      "ContactName": "",
      "AddressLine1": "",
      "AddressLine2": "",
      "City": "",
      "State": "",
      "PostalCode": "",
      "Country": ""
    },
    "Phone": "",
    "AltPhone": "",
    "DateOfBirth": "",
    "Email": "",
    "Permissions": {
      "ViewAdministration": false,
      "AddEditTerminateAdministrator": false,
      "RequestDeleteACHTransfer": false,
      "EditBusinessProfile": false,
      "AddEditTerminateCard": false,
      "CreateCardholder": false,
      "ManageCardholder": false,
      "ViewCardUsage": false,
      "RequestCardFunding": false,
      "ModifyTransactionNotes": false
    },
    "Status": ""
  }
}

UpsertAdminResponse

Properties

Name Type Required Restrictions Description
Admin BusinessAdmin true none Details about the business admin

BusinessAdmin

{
  "BusinessAdminId": 0,
  "FirstName": "",
  "MiddleName": "",
  "LastName": "",
  "UserName": "",
  "ProfileAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "Phone": "",
  "AltPhone": "",
  "DateOfBirth": "",
  "Email": "",
  "Permissions": {
    "ViewAdministration": false,
    "AddEditTerminateAdministrator": false,
    "RequestDeleteACHTransfer": false,
    "EditBusinessProfile": false,
    "AddEditTerminateCard": false,
    "CreateCardholder": false,
    "ManageCardholder": false,
    "ViewCardUsage": false,
    "RequestCardFunding": false,
    "ModifyTransactionNotes": false
  },
  "Status": ""
}

BusinessAdmin

Properties

Name Type Required Restrictions Description
BusinessAdminId integer(int64) true none Unique business admin id
FirstName string true none First name
MiddleName string false none Middle name
LastName string true none Last name
UserName string false none Admin username
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

GetAdminListResponse

{
  "BusinessAdmins": [
    {
      "BusinessAdminId": 0,
      "FirstName": "",
      "MiddleName": "",
      "LastName": "",
      "UserName": "",
      "ProfileAddress": {
        "ContactName": "",
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": "",
        "Country": ""
      },
      "Phone": "",
      "AltPhone": "",
      "DateOfBirth": "",
      "Email": "",
      "Permissions": {
        "ViewAdministration": false,
        "AddEditTerminateAdministrator": false,
        "RequestDeleteACHTransfer": false,
        "EditBusinessProfile": false,
        "AddEditTerminateCard": false,
        "CreateCardholder": false,
        "ManageCardholder": false,
        "ViewCardUsage": false,
        "RequestCardFunding": false,
        "ModifyTransactionNotes": false
      },
      "Status": ""
    }
  ]
}

GetAdminListResponse

Properties

Name Type Required Restrictions Description
BusinessAdmins [BusinessAdmin] true none List of details about business admins

UpsertAdminRequest

{
  "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,
    "CreateCardholder": false,
    "ManageCardholder": false,
    "ViewCardUsage": false,
    "RequestCardFunding": false,
    "ModifyTransactionNotes": false
  },
  "PasswordQuestion": "",
  "PasswordAnswer": ""
}

UpsertAdminRequest

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
PasswordQuestion string false none none
PasswordAnswer string false none none

GetAdminResponse

{
  "Admin": {
    "BusinessAdminId": 0,
    "FirstName": "",
    "MiddleName": "",
    "LastName": "",
    "UserName": "",
    "ProfileAddress": {
      "ContactName": "",
      "AddressLine1": "",
      "AddressLine2": "",
      "City": "",
      "State": "",
      "PostalCode": "",
      "Country": ""
    },
    "Phone": "",
    "AltPhone": "",
    "DateOfBirth": "",
    "Email": "",
    "Permissions": {
      "ViewAdministration": false,
      "AddEditTerminateAdministrator": false,
      "RequestDeleteACHTransfer": false,
      "EditBusinessProfile": false,
      "AddEditTerminateCard": false,
      "CreateCardholder": false,
      "ManageCardholder": false,
      "ViewCardUsage": false,
      "RequestCardFunding": false,
      "ModifyTransactionNotes": false
    },
    "Status": ""
  }
}

GetAdminResponse

Properties

Name Type Required Restrictions Description
Admin BusinessAdmin true none Details about the business admin

GetBusinessBalanceResponse

{
  "BusinessAccountId": 0,
  "BusinessAccountBalance": 0.1
}

GetBusinessBalanceResponse

Properties

Name Type Required Restrictions Description
BusinessAccountId integer(int32) false none Business account id
BusinessAccountBalance number(double) false none Business account balance

BillingRequest

{
  "Month": 1,
  "Year": 0
}

BillingRequest

Properties

Name Type Required Restrictions Description
Month integer(int32) true none Month
Year integer(int32) true none Year

BillingResponse

{
  "OpenCardAccounts": 0,
  "MonthlyFee": 0.1,
  "EnrollmentFee": 0.1
}

BillingResponse

Properties

Name Type Required Restrictions Description
OpenCardAccounts integer(int32) false none Open card accounts
MonthlyFee number(double) false none Monthly Fee
EnrollmentFee number(double) false none Enrollement Fee

SettingsResponse

{
  "SupportedCardType": [
    "Undefined"
  ],
  "UseBusinessBalance": false,
  "UseRemoteDecision": false,
  "BlockCardDefunding": false,
  "UseCardholderGroup": false,
  "TagsEnabled": false,
  "AllocationTagsEnabled": false,
  "FundingSource": "Prepaid",
  "CardLimit": 0,
  "VendorLimit": 0,
  "DefaultDailyLimit": 0.1
}

SettingsResponse

Properties

Name Type Required Restrictions Description
SupportedCardType [string] false none Supported Card Types
UseBusinessBalance boolean false none Use Business Balance
UseRemoteDecision boolean false none Use Remote Decision
BlockCardDefunding boolean false none Block Card Defunding
UseCardholderGroup boolean false none Use cardholder groups.
TagsEnabled boolean false none Use Tags.
AllocationTagsEnabled boolean false read-only Allocation Tags Enabled.
FundingSource string false none Source of funds (prepaid or credit)
CardLimit integer(int32) false none The (optional) maximum number of team cards this business can have.
VendorLimit integer(int32) false none The (optional) maximum number of vendor cards this business can have.
DefaultDailyLimit number(double) false read-only The (optional) default daily funding limit of auto funding.

Enumerated Values

Property Value
FundingSource Prepaid
FundingSource Credit

AdvancedCardholderDetailsResponse

{
  "AccountId": 0,
  "Group": {
    "Id": 0,
    "GroupName": ""
  },
  "AccountStatus": "",
  "LedgerBalance": 0.1,
  "AvailableBalance": 0.1,
  "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.1,
        "DailySpendLimit": 0.1,
        "WeeklySpendLimit": 0.1,
        "MonthlySpendLimit": 0.1,
        "YearlySpendLimit": 0.1,
        "LifetimeSpendLimit": 0.1
      }
    ],
    "InternationalSpendEnabled": false,
    "IsDailySpendLimitEnabled": false,
    "DailySpendLimit": 0.1,
    "WeeklySpendLimit": 0.1,
    "MonthlySpendLimit": 0.1,
    "YearlySpendLimit": 0.1,
    "LifetimeSpendLimit": 0.1,
    "CardNotPresentUse": false,
    "CardPresence": 0,
    "UsePexAccountBalanceForAuths": false,
    "UseCustomerAuthDecision": false,
    "DaysOfWeekRestrictions": [
      "string"
    ],
    "UsStateRestrictions": [
      "string"
    ]
  },
  "ScheduledFunding": {
    "Amount": 0.1,
    "Frequency": "DAY"
  },
  "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.1,
  "WeeklySpendLimit": 0.1,
  "MonthlySpendLimit": 0.1,
  "YearlySpendLimit": 0.1,
  "LifetimeSpendLimit": 0.1,
  "InternationalAllowed": false,
  "CardNotPresentAllowed": false,
  "CardPresence": 0,
  "UsePexAccountBalanceForAuths": false,
  "UseCustomerAuthDecision": false,
  "DaysOfWeekRestrictions": [
    "string"
  ],
  "UsStateRestrictions": [
    "string"
  ],
  "MccRestrictions": false,
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "Description": "",
      "TransactionLimit": 0.1,
      "DailySpendLimit": 0.1,
      "WeeklySpendLimit": 0.1,
      "MonthlySpendLimit": 0.1,
      "YearlySpendLimit": 0.1,
      "LifetimeSpendLimit": 0.1
    }
  ]
}

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.1,
  "DailySpendLimit": 0.1,
  "WeeklySpendLimit": 0.1,
  "MonthlySpendLimit": 0.1,
  "YearlySpendLimit": 0.1,
  "LifetimeSpendLimit": 0.1
}

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.1,
  "WeeklySpendLimit": 0.1,
  "MonthlySpendLimit": 0.1,
  "YearlySpendLimit": 0.1,
  "LifetimeSpendLimit": 0.1,
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "TransactionLimit": 0.1,
      "DailySpendLimit": 0.1,
      "WeeklySpendLimit": 0.1,
      "MonthlySpendLimit": 0.1,
      "YearlySpendLimit": 0.1,
      "LifetimeSpendLimit": 0.1
    }
  ],
  "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.1,
  "DailySpendLimit": 0.1,
  "WeeklySpendLimit": 0.1,
  "MonthlySpendLimit": 0.1,
  "YearlySpendLimit": 0.1,
  "LifetimeSpendLimit": 0.1
}

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.1,
  "WeeklySpendLimit": 0.1,
  "MonthlySpendLimit": 0.1,
  "YearlySpendLimit": 0.1,
  "LifetimeSpendLimit": 0.1,
  "MerchantCategories": [
    {
      "Id": 0,
      "Name": "",
      "TransactionLimit": 0.1,
      "DailySpendLimit": 0.1,
      "WeeklySpendLimit": 0.1,
      "MonthlySpendLimit": 0.1,
      "YearlySpendLimit": 0.1,
      "LifetimeSpendLimit": 0.1
    }
  ],
  "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.1,
      "WeeklySpendLimit": 0.1,
      "MonthlySpendLimit": 0.1,
      "YearlySpendLimit": 0.1,
      "LifetimeSpendLimit": 0.1,
      "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.1,
  "WeeklySpendLimit": 0.1,
  "MonthlySpendLimit": 0.1,
  "YearlySpendLimit": 0.1,
  "LifetimeSpendLimit": 0.1,
  "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.1,
  "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.1,
  "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.1,
    "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.1,
  "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": "Continue",
  "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

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

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

CardHolderDetailsResponse

{
  "FirstName": "",
  "MiddleName": "",
  "LastName": "",
  "AccountId": 0,
  "AccountNumber": "",
  "AvailableBalance": 0.1,
  "LedgerBalance": 0.1,
  "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

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

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

RemoveGroupResponse

{
  "GroupId": 0
}

RemoveGroupResponse

Properties

Name Type Required Restrictions Description
GroupId integer(int32) true none The group ID that was removed

GetGroupsResponse

{
  "Groups": [
    {
      "Id": 0,
      "Name": ""
    }
  ]
}

GetGroupsResponse

Properties

Name Type Required Restrictions Description
Groups [Group] true none The list of groups

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

BulkResponse

{
  "TotalNumberOfCards": 0
}

BulkResponse

Properties

Name Type Required Restrictions Description
TotalNumberOfCards integer(int32) false none Total number of cards

FundMultipleCardsRequest

{
  "Cards": [
    {
      "AccountId": 0,
      "Amount": 0.1
    }
  ],
  "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.1
}

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.1,
      "AccountId": 0,
      "TransactionId": 0,
      "CurrentBalance": 0.1,
      "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.1,
  "AccountId": 0,
  "TransactionId": 0,
  "CurrentBalance": 0.1,
  "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

GetBusinessTokenProvisioningModeResponse

{
  "TokenProvisioningMode": "DoNotTokenize"
}

GetBusinessTokenProvisioningModeResponse

Properties

Name Type Required Restrictions Description
TokenProvisioningMode string false none Business Token Provisioning Mode

Enumerated Values

Property Value
TokenProvisioningMode DoNotTokenize
TokenProvisioningMode TokenizeStepUpIfNeeded

GetCardholderTokenProvisioningModeResponse

{
  "TokenProvisioningMode": "DoNotTokenize"
}

GetCardholderTokenProvisioningModeResponse

Properties

Name Type Required Restrictions Description
TokenProvisioningMode string false none Cardholder Token Provisioning Mode

Enumerated Values

Property Value
TokenProvisioningMode DoNotTokenize
TokenProvisioningMode TokenizeStepUpIfNeeded

ChangeCardholderTokenProvisioningModeRequest

{
  "TokenProvisioningMode": "DoNotTokenize"
}

ChangeCardholderTokenProvisioningModeRequest

Properties

Name Type Required Restrictions Description
TokenProvisioningMode string false none Cardholder Token Provisioning Mode

Enumerated Values

Property Value
TokenProvisioningMode DoNotTokenize
TokenProvisioningMode TokenizeStepUpIfNeeded

GetIssuedTokensResponse

{
  "TokenList": [
    {
      "ReferenceId": "",
      "AccountId": 0,
      "CardId": 0,
      "Last4CardNumber": "",
      "Last4TokenNumber": "",
      "TokenExpirationDate": "",
      "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": "",
  "TokenExpirationDate": "",
  "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
TokenExpirationDate string(date-time) 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

ActivationRequest

{
  "ReferenceId": "",
  "ActivationNote": ""
}

ActivationRequest

Properties

Name Type Required Restrictions Description
ReferenceId string true none Unique id for the token
ActivationNote string false none Activation note

GetPartnerResponse

{
  "PartnerName": "",
  "PartnerBusinessId": ""
}

GetPartnerResponse

Properties

Name Type Required Restrictions Description
PartnerName string false none Partner name
PartnerBusinessId string false none Unique partner business id

CallbackSubscriptionInsertRequest

{
  "CallbackType": "Card",
  "Status": "Active",
  "Url": ""
}

CallbackSubscriptionInsertRequest

Properties

Name Type Required Restrictions Description
CallbackType string false none Callback Type
Status string false none Status
Url string true none Url

Enumerated Values

Property Value
CallbackType Card
CallbackType Cardorder
CallbackType CardOrderVirtual
CallbackType CardTokenCreated
CallbackType AuthRealtime
CallbackType PinRealtime
CallbackType DeclineRealtime
CallbackType ReversalRealtime
CallbackType SettlementPostedRealtime
Status Active
Status Inactive

CallbackSubscriptionResponse

{
  "Id": 0,
  "BusinessAccountId": 0,
  "CallbackType": "Card",
  "Status": "Active",
  "Url": "",
  "Username": "",
  "CreatedDate": ""
}

CallbackSubscriptionResponse

Properties

Name Type Required Restrictions Description
Id integer(int32) false none Id
BusinessAccountId integer(int32) false none Business Account Id
CallbackType string false none Callback Type
Status string false none Status
Url string false none Url
Username string false none Username
CreatedDate string(date-time) false none Created Date

Enumerated Values

Property Value
CallbackType Card
CallbackType Cardorder
CallbackType CardOrderVirtual
CallbackType CardTokenCreated
CallbackType AuthRealtime
CallbackType PinRealtime
CallbackType DeclineRealtime
CallbackType ReversalRealtime
CallbackType SettlementPostedRealtime
Status Active
Status Inactive

CallbackSubscriptionUpdateRequest

{
  "CallbackType": "Card",
  "Status": "Active",
  "Url": ""
}

CallbackSubscriptionUpdateRequest

Properties

Name Type Required Restrictions Description
CallbackType string false none Callback Type
Status string false none Status
Url string false none Url

Enumerated Values

Property Value
CallbackType Card
CallbackType Cardorder
CallbackType CardOrderVirtual
CallbackType CardTokenCreated
CallbackType AuthRealtime
CallbackType PinRealtime
CallbackType DeclineRealtime
CallbackType ReversalRealtime
CallbackType SettlementPostedRealtime
Status Active
Status Inactive

Invoice

{
  "InvoiceId": 0,
  "InvoiceAmount": 0.1,
  "Status": "Open",
  "DueDate": ""
}

Invoice

Properties

Name Type Required Restrictions Description
InvoiceId integer(int32) true none none
InvoiceAmount number(double) true none none
Status string true none none
DueDate string(date-time) true none none

Enumerated Values

Property Value
Status Open
Status Closed
Status Cancelled
Status Draft

InvoiceAllocation

{
  "InvoiceId": 0,
  "TagName": "",
  "TagValue": "",
  "TotalAmount": 0.1
}

InvoiceAllocation

Properties

Name Type Required Restrictions Description
InvoiceId integer(int64) false none none
TagName string false none none
TagValue string false none none
TotalAmount number(double) false none none

InvoicePayment

{
  "PaymentId": 0,
  "Type": "PEXTransfer",
  "Amount": 0.1
}

InvoicePayment

Properties

Name Type Required Restrictions Description
PaymentId integer(int32) false none none
Type string false none none
Amount number(double) false none none

Enumerated Values

Property Value
Type PEXTransfer
Type SalesCredit
Type WriteOff
Type Reversal
Type RebateCredit
Type RebateCreditReversal
Type SameDayACH
Type CarryOverCredit

VendorCardsGetOrderResponse

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

VendorCardsGetOrderResponse

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 [VendorCardGetOrderResponse] false none Virtual Cards

VendorCardGetOrderResponse

{
  "RequestId": 0,
  "AcctId": 0,
  "AccountNumber": "",
  "VendorName": "",
  "DateOfBirth": "",
  "Phone": "",
  "Email": "",
  "HomeAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": "",
    "Country": ""
  },
  "GroupId": 0,
  "SpendingRulesetsId": 0,
  "AutoActivation": false,
  "FundCardAmount": 0.1,
  "CardDataWebhookURL": "",
  "Status": "",
  "Errors": [
    "string"
  ],
  "ErrorMessage": ""
}

VendorCardGetOrderResponse

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
VendorName 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

VendorCardsOrderRequest

{
  "VendorCards": [
    {
      "VendorName": "",
      "Phone": "",
      "Email": "",
      "GroupId": 0,
      "RulesetId": 0,
      "AutoActivation": false,
      "FundingType": "InitialFunding",
      "FundCardAmount": 0.1,
      "CardDataWebhookURL": ""
    }
  ]
}

VendorCardsOrderRequest

Properties

Name Type Required Restrictions Description
VendorCards [VendorCardOrderItem] true none Vendor Cards requests

VendorCardOrderItem

{
  "VendorName": "",
  "Phone": "",
  "Email": "",
  "GroupId": 0,
  "RulesetId": 0,
  "AutoActivation": false,
  "FundingType": "InitialFunding",
  "FundCardAmount": 0.1,
  "CardDataWebhookURL": ""
}

VendorCardOrderItem

Properties

Name Type Required Restrictions Description
VendorName string true none Vendor Name
Phone string true none Phone number
Email string false none Cardholder email address
GroupId integer(int32) false none Cardholder group id
RulesetId integer(int32) false none Cardholder ruleset id
AutoActivation boolean false none Auto Activation true/false
FundingType string false none Funding Type
FundCardAmount number(double) false none Fund Card Amount
CardDataWebhookURL string false none Card Data Webhook URL

Enumerated Values

Property Value
FundingType InitialFunding
FundingType AutoCardFunding

VendorCardsOrderResponse

{
  "VendorCardOrderId": 0,
  "NumberOfCardsRequested": 0
}

VendorCardsOrderResponse

Properties

Name Type Required Restrictions Description
VendorCardOrderId integer(int32) false none Vendor Card Order Id
NumberOfCardsRequested integer(int32) false none Number Of Cards Requested

VendorCardDataRequest

{
  "AcctId": 0,
  "CardDataWebhookUrl": ""
}

VendorCardDataRequest

Properties

Name Type Required Restrictions Description
AcctId integer(int32) false none Cardholder Account Id
CardDataWebhookUrl string true none Card Data Webhook URL