NAV

API Reference v2025.12.10.3

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.

Return basic token details for the authenticated user and app.

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /Token/Current

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

Once the token expires, it cannot be 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 token {USERTOKEN}

Example responses

200 Response

{
  "AppId": "",
  "BusinessAccountId": 0,
  "BusinessAccountName": "",
  "CardholderAccountId": 0,
  "UserType": "Cardholder",
  "Username": "",
  "Token": "",
  "TokenExpiration": ""
}

Responses

Status Meaning Description Schema
200 OK Success Models.Token.TokenData
400 Bad Request Invalid token format None
401 Unauthorized Token expired or does not exist None

Return a list of basic tokens details for the authenticated user and app.

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 token {USERTOKEN}

Example responses

202 Response

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

Responses

Status Meaning Description Schema
202 Accepted Accepted Models.Token.GetAllTokensResponse
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": "",
  "UserAgentString": ""
}';
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": "",
  "UserAgentString": ""
}

Parameters

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

Example responses

201 Response

{
  "Token": ""
}

Responses

Status Meaning Description Schema
201 Created Created Models.Token.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

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 Models.Token.RenewTokenResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden Cannot renew token None

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

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 Models.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 Models.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 Models.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": ""
      },
      "ShippingAddress": {
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": ""
      },
      "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 Models.Cards.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 Models.Cards.Response.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,
  "UserId": 0,
  "AccountStatus": "",
  "FirstName": "",
  "MiddleName": "",
  "LastName": "",
  "CardholderGroupId": 0,
  "SpendRulesetId": 0,
  "ProfileAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "Phone": "",
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "ShippingPhone": "",
  "DateOfBirth": "",
  "UserName": "",
  "Email": "",
  "IsVirtual": false,
  "CardholderType": "TeamMember",
  "CustomId": ""
}

Responses

Status Meaning Description Schema
200 OK Success Models.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 Models.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 Models.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 Models.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": "",
      "InternationalAllowed": false,
      "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": "",
      "InternationalAllowed": false,
      "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 Models.Cards.CreateCardAsyncRequest true Profile and shipping data

Example responses

201 Response

{
  "CardOrderId": 0
}

Responses

Status Meaning Description Schema
201 Created Created Models.Cards.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 Models.Cards.Request.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

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

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 Models.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 Models.Cards.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 Models.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 Models.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 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 Models.Cards.Response.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
- Educational Services: Schools, training programs
- Automotive dealers: Vehicle dealerships (car, RV, motorcycle, boat, recreational)
- 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 Models.Cards.Request.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

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

IHttpActionResult

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 Models.SetCardholderRulesetRequest true Ruleset ID and Account ID

Example responses

200 Response

{
  "AccountId": 0
}

Responses

Status Meaning Description Schema
200 OK Success Models.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 Models.CardViewTokenCreateRequest true none

Example responses

200 Response

{
  "CardViewToken": ""
}

Responses

Status Meaning Description Schema
200 OK Success Models.CardViewTokenCreateResponse
400 Bad Request The request is invalid None
401 Unauthorized Token expired or does not exist 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 Models.CardViewTokenUseRequest true none

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK Success Models.CardViewTokenUseResponse
400 Bad Request CardViewToken is missing None
401 Unauthorized Token expired or does not exist 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": ""
  },
  "Phone": "",
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "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 Models.Details.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 Models.Details.Response.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,
          "NoteText": "",
          "UserName": "",
          "UserFirstName": "",
          "UserMiddleName": "",
          "UserLastName": "",
          "NoteDate": "",
          "UpdatedUserName": "",
          "UpdatedUserFirstName": "",
          "UpdatedUserMiddleName": "",
          "UpdatedUserLastName": "",
          "UpdatedDate": "",
          "SystemGenerated": false
        }
      ],
      "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 Models.Transaction.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 Models.Details.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,
          "NoteText": "",
          "UserName": "",
          "UserFirstName": "",
          "UserMiddleName": "",
          "UserLastName": "",
          "NoteDate": "",
          "UpdatedUserName": "",
          "UpdatedUserFirstName": "",
          "UpdatedUserMiddleName": "",
          "UpdatedUserLastName": "",
          "UpdatedDate": "",
          "SystemGenerated": false
        }
      ],
      "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 Models.Transaction.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,
          "NoteText": "",
          "UserName": "",
          "UserFirstName": "",
          "UserMiddleName": "",
          "UserLastName": "",
          "NoteDate": "",
          "UpdatedUserName": "",
          "UpdatedUserFirstName": "",
          "UpdatedUserMiddleName": "",
          "UpdatedUserLastName": "",
          "UpdatedDate": "",
          "SystemGenerated": false
        }
      ],
      "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 Models.Transaction.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,
          "NoteText": "",
          "UserName": "",
          "UserFirstName": "",
          "UserMiddleName": "",
          "UserLastName": "",
          "NoteDate": "",
          "UpdatedUserName": "",
          "UpdatedUserFirstName": "",
          "UpdatedUserMiddleName": "",
          "UpdatedUserLastName": "",
          "UpdatedDate": "",
          "SystemGenerated": false
        }
      ],
      "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 Models.Transaction.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,
          "NoteText": "",
          "UserName": "",
          "UserFirstName": "",
          "UserMiddleName": "",
          "UserLastName": "",
          "NoteDate": "",
          "UpdatedUserName": "",
          "UpdatedUserFirstName": "",
          "UpdatedUserMiddleName": "",
          "UpdatedUserLastName": "",
          "UpdatedDate": "",
          "SystemGenerated": false
        }
      ],
      "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 Models.Transaction.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 all business 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/Transactions/Business/Transactions',
  params: {
  }, headers: headers

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /Transactions/Business/Transactions

Returns all business transactions for the authenticated business.

This endpoint provides access to business transactions like: - Business fundings and transfers - Business rebates - Business fees

Use query parameters to filter results by date range, amount range, and control pagination/sorting.

Note: Only users with Admin role can access this endpoint.

Parameters

Name In Type Required Description
OnlyCategoryIds query array[integer] false Filter to only include transactions in these category IDs.
NotCategoryIds query array[integer] false Filter to exclude transactions in these category IDs.
MinDate query string(date-time) false Filter transactions with transaction time greater than or equal to this date (eastern time).
MaxDate query string(date-time) false Filter transactions with transaction time less than or equal to this date (eastern time).
OnDate query string(date-time) false Filter transactions that occurred on this specific date (eastern time). Cannot be used with MinDate or MaxDate.
MinAmount query number(double) false Filter transactions with amount greater than or equal to this value.
MaxAmount query number(double) false Filter transactions with amount less than or equal to this value.
EqualsAmount query number(double) false Filter transactions with amount exactly equal to this value. Cannot be used with MinAmount or MaxAmount.
SortBy query string false Property to sort results by. Default is TransactionTime.
OrderBy query string false Sort order direction. Default is Desc (descending).
PageIndex query integer(int32) false Page number to retrieve (1-based). Default is 1. Range: 1 to 2,147,483,647.
PageSize query integer(int32) false Number of results per page. Default is 100. Range: 1 to 1,000.
Authorization header string true token {USERTOKEN}

Enumerated Values

Parameter Value
SortBy TransactionTime
SortBy Amount
SortBy Description
OrderBy Asc
OrderBy Desc

Example responses

200 Response

{
  "Results": [
    {
      "BusinessId": 0,
      "CardholderId": 0,
      "TransactionId": 0,
      "NetworkTransactionId": 0,
      "AuthTransactionId": 0,
      "RelationshipId": 0,
      "TransactionTime": "",
      "TransactionAuthTime": "",
      "TransactionHoldTime": "",
      "IsPending": false,
      "Description": "",
      "Amount": 0.1,
      "CurrencyDesc": "",
      "CurrencyCode": "",
      "SourceAmount": 0.1,
      "SourceCurrencyDesc": "",
      "SourceCurrencyCode": "",
      "Category": {
        "CategoryId": 0,
        "CategoryName": ""
      },
      "Merchant": {
        "Id": 0,
        "Name": "",
        "NameNormalized": "",
        "MccCode": "",
        "City": "",
        "State": "",
        "Country": "",
        "Zip": "",
        "WebsiteUrl": "",
        "LogoUrl": "",
        "IconUrl": ""
      },
      "Account": {
        "Type": "Business",
        "Id": 0
      },
      "Approval": "",
      "HasAttachments": false,
      "Notes": [
        {
          "Id": 0,
          "Content": "",
          "SystemGenerated": false,
          "Created": {
            "Username": "",
            "FirstName": "",
            "MiddleName": "",
            "LastName": "",
            "Email": "",
            "Time": ""
          },
          "Updated": {
            "Username": "",
            "FirstName": "",
            "MiddleName": "",
            "LastName": "",
            "Email": "",
            "Time": ""
          }
        }
      ],
      "Tags": [
        {
          "Id": "",
          "Name": "",
          "Value": ""
        }
      ]
    }
  ],
  "Pagination": {
    "SortBy": {},
    "OrderBy": {},
    "PageIndex": 0,
    "PageSize": 0,
    "ResultsCount": 0,
    "TotalCount": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK ExternalAPI.Services.Paginated_ExternalAPI.Services.TransactionResult_
401 Unauthorized Token expired or does not exist None
403 Forbidden Forbidden - Admin role required None

Retrieve a specific business transaction by ID for the business.

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /Transactions/Business/Transactions/{transactionId}

Returns a single business transaction within the authenticated business.

Use this endpoint to retrieve complete details of any business transaction by its unique transaction ID.

Note: Only users with Admin role can access this endpoint.

Parameters

Name In Type Required Description
TransactionId path integer(int64) true The unique transaction ID
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "BusinessId": 0,
  "CardholderId": 0,
  "TransactionId": 0,
  "NetworkTransactionId": 0,
  "AuthTransactionId": 0,
  "RelationshipId": 0,
  "TransactionTime": "",
  "TransactionAuthTime": "",
  "TransactionHoldTime": "",
  "IsPending": false,
  "Description": "",
  "Amount": 0.1,
  "CurrencyDesc": "",
  "CurrencyCode": "",
  "SourceAmount": 0.1,
  "SourceCurrencyDesc": "",
  "SourceCurrencyCode": "",
  "Category": {
    "CategoryId": 0,
    "CategoryName": ""
  },
  "Merchant": {
    "Id": 0,
    "Name": "",
    "NameNormalized": "",
    "MccCode": "",
    "City": "",
    "State": "",
    "Country": "",
    "Zip": "",
    "WebsiteUrl": "",
    "LogoUrl": "",
    "IconUrl": ""
  },
  "Account": {
    "Type": "Business",
    "Id": 0
  },
  "Approval": "",
  "HasAttachments": false,
  "Notes": [
    {
      "Id": 0,
      "Content": "",
      "SystemGenerated": false,
      "Created": {
        "Username": "",
        "FirstName": "",
        "MiddleName": "",
        "LastName": "",
        "Email": "",
        "Time": ""
      },
      "Updated": {
        "Username": "",
        "FirstName": "",
        "MiddleName": "",
        "LastName": "",
        "Email": "",
        "Time": ""
      }
    }
  ],
  "Tags": [
    {
      "Id": "",
      "Name": "",
      "Value": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK ExternalAPI.Services.TransactionResult
401 Unauthorized Token expired or does not exist None
403 Forbidden Forbidden - Admin role required None
404 Not Found Transaction not found None

Retrieve all non-purchase transactions for cardholders.

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /Transactions/Cardholder/Transactions

Returns all non-purchase transactions for cardholders.

This endpoint provides access to cardholder non-purchase transactions like: - Funding and transfer transactions - Fee transactions (ISA, Currency Conversion, etc)

Use query parameters to filter results by date range, amount range, and control pagination/sorting.

Note: Cardholder can only access their own transactions. Admins can view any cardholder's transactions.

Parameters

Name In Type Required Description
OnlyCategoryIds query array[integer] false Filter to only include transactions in these category IDs.
NotCategoryIds query array[integer] false Filter to exclude transactions in these category IDs.
MinDate query string(date-time) false Filter transactions with transaction time greater than or equal to this date (eastern time).
MaxDate query string(date-time) false Filter transactions with transaction time less than or equal to this date (eastern time).
OnDate query string(date-time) false Filter transactions that occurred on this specific date (eastern time). Cannot be used with MinDate or MaxDate.
MinAmount query number(double) false Filter transactions with amount greater than or equal to this value.
MaxAmount query number(double) false Filter transactions with amount less than or equal to this value.
EqualsAmount query number(double) false Filter transactions with amount exactly equal to this value. Cannot be used with MinAmount or MaxAmount.
SortBy query string false Property to sort results by. Default is TransactionTime.
OrderBy query string false Sort order direction. Default is Desc (descending).
PageIndex query integer(int32) false Page number to retrieve (1-based). Default is 1. Range: 1 to 2,147,483,647.
PageSize query integer(int32) false Number of results per page. Default is 100. Range: 1 to 1,000.
Authorization header string true token {USERTOKEN}

Enumerated Values

Parameter Value
SortBy TransactionTime
SortBy Amount
SortBy Description
OrderBy Asc
OrderBy Desc

Example responses

200 Response

{
  "Results": [
    {
      "BusinessId": 0,
      "CardholderId": 0,
      "TransactionId": 0,
      "NetworkTransactionId": 0,
      "AuthTransactionId": 0,
      "RelationshipId": 0,
      "TransactionTime": "",
      "TransactionAuthTime": "",
      "TransactionHoldTime": "",
      "IsPending": false,
      "Description": "",
      "Amount": 0.1,
      "CurrencyDesc": "",
      "CurrencyCode": "",
      "SourceAmount": 0.1,
      "SourceCurrencyDesc": "",
      "SourceCurrencyCode": "",
      "Category": {
        "CategoryId": 0,
        "CategoryName": ""
      },
      "Merchant": {
        "Id": 0,
        "Name": "",
        "NameNormalized": "",
        "MccCode": "",
        "City": "",
        "State": "",
        "Country": "",
        "Zip": "",
        "WebsiteUrl": "",
        "LogoUrl": "",
        "IconUrl": ""
      },
      "Account": {
        "Type": "Business",
        "Id": 0
      },
      "Approval": "",
      "HasAttachments": false,
      "Notes": [
        {
          "Id": 0,
          "Content": "",
          "SystemGenerated": false,
          "Created": {
            "Username": "",
            "FirstName": "",
            "MiddleName": "",
            "LastName": "",
            "Email": "",
            "Time": ""
          },
          "Updated": {
            "Username": "",
            "FirstName": "",
            "MiddleName": "",
            "LastName": "",
            "Email": "",
            "Time": ""
          }
        }
      ],
      "Tags": [
        {
          "Id": "",
          "Name": "",
          "Value": ""
        }
      ]
    }
  ],
  "Pagination": {
    "SortBy": {},
    "OrderBy": {},
    "PageIndex": 0,
    "PageSize": 0,
    "ResultsCount": 0,
    "TotalCount": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK ExternalAPI.Services.Paginated_ExternalAPI.Services.TransactionResult_
401 Unauthorized Token expired or does not exist None
403 Forbidden Forbidden - Access denied to cardholder's transactions None

Retrieve all non-purchase transactions for a specific cardholder.

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /Transactions/Cardholder/{cardholderAccountId}/Transactions

Returns all non-purchase transactions for a specific cardholder.

This endpoint provides access to cardholder non-purchase transactions like: - Funding and transfer transactions - Fee transactions (ISA, Currency Conversion, etc)

Use query parameters to filter results by date range, amount range, and control pagination/sorting.

Note: Cardholder can only access their own transactions. Admins can view any cardholder's transactions.

Parameters

Name In Type Required Description
CardholderAccountId path integer(int32) true The cardholder account ID
OnlyCategoryIds query array[integer] false Filter to only include transactions in these category IDs.
NotCategoryIds query array[integer] false Filter to exclude transactions in these category IDs.
MinDate query string(date-time) false Filter transactions with transaction time greater than or equal to this date (eastern time).
MaxDate query string(date-time) false Filter transactions with transaction time less than or equal to this date (eastern time).
OnDate query string(date-time) false Filter transactions that occurred on this specific date (eastern time). Cannot be used with MinDate or MaxDate.
MinAmount query number(double) false Filter transactions with amount greater than or equal to this value.
MaxAmount query number(double) false Filter transactions with amount less than or equal to this value.
EqualsAmount query number(double) false Filter transactions with amount exactly equal to this value. Cannot be used with MinAmount or MaxAmount.
SortBy query string false Property to sort results by. Default is TransactionTime.
OrderBy query string false Sort order direction. Default is Desc (descending).
PageIndex query integer(int32) false Page number to retrieve (1-based). Default is 1. Range: 1 to 2,147,483,647.
PageSize query integer(int32) false Number of results per page. Default is 100. Range: 1 to 1,000.
Authorization header string true token {USERTOKEN}

Enumerated Values

Parameter Value
SortBy TransactionTime
SortBy Amount
SortBy Description
OrderBy Asc
OrderBy Desc

Example responses

200 Response

{
  "Results": [
    {
      "BusinessId": 0,
      "CardholderId": 0,
      "TransactionId": 0,
      "NetworkTransactionId": 0,
      "AuthTransactionId": 0,
      "RelationshipId": 0,
      "TransactionTime": "",
      "TransactionAuthTime": "",
      "TransactionHoldTime": "",
      "IsPending": false,
      "Description": "",
      "Amount": 0.1,
      "CurrencyDesc": "",
      "CurrencyCode": "",
      "SourceAmount": 0.1,
      "SourceCurrencyDesc": "",
      "SourceCurrencyCode": "",
      "Category": {
        "CategoryId": 0,
        "CategoryName": ""
      },
      "Merchant": {
        "Id": 0,
        "Name": "",
        "NameNormalized": "",
        "MccCode": "",
        "City": "",
        "State": "",
        "Country": "",
        "Zip": "",
        "WebsiteUrl": "",
        "LogoUrl": "",
        "IconUrl": ""
      },
      "Account": {
        "Type": "Business",
        "Id": 0
      },
      "Approval": "",
      "HasAttachments": false,
      "Notes": [
        {
          "Id": 0,
          "Content": "",
          "SystemGenerated": false,
          "Created": {
            "Username": "",
            "FirstName": "",
            "MiddleName": "",
            "LastName": "",
            "Email": "",
            "Time": ""
          },
          "Updated": {
            "Username": "",
            "FirstName": "",
            "MiddleName": "",
            "LastName": "",
            "Email": "",
            "Time": ""
          }
        }
      ],
      "Tags": [
        {
          "Id": "",
          "Name": "",
          "Value": ""
        }
      ]
    }
  ],
  "Pagination": {
    "SortBy": {},
    "OrderBy": {},
    "PageIndex": 0,
    "PageSize": 0,
    "ResultsCount": 0,
    "TotalCount": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK ExternalAPI.Services.Paginated_ExternalAPI.Services.TransactionResult_
401 Unauthorized Token expired or does not exist None
403 Forbidden Forbidden - Access denied to cardholder's transactions None

Retrieve a specific non-purchase transaction by ID.

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /Transactions/Cardholder/Transactions/{transactionId}

Returns a single non-purchase transaction.

Use this endpoint to retrieve complete details of a non-purchase transaction by its unique transaction ID.

Note: Cardholder can only access their own transactions. Admins can view any cardholder's transactions.

Parameters

Name In Type Required Description
TransactionId path integer(int64) true The unique transaction ID
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "BusinessId": 0,
  "CardholderId": 0,
  "TransactionId": 0,
  "NetworkTransactionId": 0,
  "AuthTransactionId": 0,
  "RelationshipId": 0,
  "TransactionTime": "",
  "TransactionAuthTime": "",
  "TransactionHoldTime": "",
  "IsPending": false,
  "Description": "",
  "Amount": 0.1,
  "CurrencyDesc": "",
  "CurrencyCode": "",
  "SourceAmount": 0.1,
  "SourceCurrencyDesc": "",
  "SourceCurrencyCode": "",
  "Category": {
    "CategoryId": 0,
    "CategoryName": ""
  },
  "Merchant": {
    "Id": 0,
    "Name": "",
    "NameNormalized": "",
    "MccCode": "",
    "City": "",
    "State": "",
    "Country": "",
    "Zip": "",
    "WebsiteUrl": "",
    "LogoUrl": "",
    "IconUrl": ""
  },
  "Account": {
    "Type": "Business",
    "Id": 0
  },
  "Approval": "",
  "HasAttachments": false,
  "Notes": [
    {
      "Id": 0,
      "Content": "",
      "SystemGenerated": false,
      "Created": {
        "Username": "",
        "FirstName": "",
        "MiddleName": "",
        "LastName": "",
        "Email": "",
        "Time": ""
      },
      "Updated": {
        "Username": "",
        "FirstName": "",
        "MiddleName": "",
        "LastName": "",
        "Email": "",
        "Time": ""
      }
    }
  ],
  "Tags": [
    {
      "Id": "",
      "Name": "",
      "Value": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK ExternalAPI.Services.TransactionResult
401 Unauthorized Token expired or does not exist None
403 Forbidden Forbidden - Access denied to cardholder's transactions None
404 Not Found Transaction not found None

Retrieve a specific non-purchase transaction by ID for a specific cardholder.

Code samples

require 'rest-client'
require 'json'

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

result = RestClient.get 'https://coreapi.pexcard.com/v4/Transactions/Cardholder/{cardholderAccountId}/Transactions/{transactionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

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

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

print(r.json())


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

fetch('https://coreapi.pexcard.com/v4/Transactions/Cardholder/{cardholderAccountId}/Transactions/{transactionId}',
{
  method: 'GET',

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

GET /Transactions/Cardholder/{cardholderAccountId}/Transactions/{transactionId}

Returns a single non-purchase transaction belonging to a specific cardholder.

Use this endpoint to retrieve complete details of a non-purchase transaction by its unique transaction ID for a specific cardholder.

Note: Cardholder can only access their own transactions. Admins can view any cardholder's transactions.

Parameters

Name In Type Required Description
CardholderAccountId path integer(int32) true The cardholder account ID
TransactionId path integer(int64) true The unique transaction ID
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "BusinessId": 0,
  "CardholderId": 0,
  "TransactionId": 0,
  "NetworkTransactionId": 0,
  "AuthTransactionId": 0,
  "RelationshipId": 0,
  "TransactionTime": "",
  "TransactionAuthTime": "",
  "TransactionHoldTime": "",
  "IsPending": false,
  "Description": "",
  "Amount": 0.1,
  "CurrencyDesc": "",
  "CurrencyCode": "",
  "SourceAmount": 0.1,
  "SourceCurrencyDesc": "",
  "SourceCurrencyCode": "",
  "Category": {
    "CategoryId": 0,
    "CategoryName": ""
  },
  "Merchant": {
    "Id": 0,
    "Name": "",
    "NameNormalized": "",
    "MccCode": "",
    "City": "",
    "State": "",
    "Country": "",
    "Zip": "",
    "WebsiteUrl": "",
    "LogoUrl": "",
    "IconUrl": ""
  },
  "Account": {
    "Type": "Business",
    "Id": 0
  },
  "Approval": "",
  "HasAttachments": false,
  "Notes": [
    {
      "Id": 0,
      "Content": "",
      "SystemGenerated": false,
      "Created": {
        "Username": "",
        "FirstName": "",
        "MiddleName": "",
        "LastName": "",
        "Email": "",
        "Time": ""
      },
      "Updated": {
        "Username": "",
        "FirstName": "",
        "MiddleName": "",
        "LastName": "",
        "Email": "",
        "Time": ""
      }
    }
  ],
  "Tags": [
    {
      "Id": "",
      "Name": "",
      "Value": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK ExternalAPI.Services.TransactionResult
401 Unauthorized Token expired or does not exist None
403 Forbidden Forbidden - Access denied to cardholder's transactions None
404 Not Found Transaction not found None

Retrieve purchase transactions for cardholders.

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

fetch('https://coreapi.pexcard.com/v4/Transactions/Cardholder/Purchases',
{
  method: 'GET',

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

GET /Transactions/Cardholder/Purchases

Returns only purchase transactions for cardholders.

  • Purchases only: Excludes transfers, fees, adjustments, and other non-purchase transaction types
  • Settlements: If a purchase has settled, only the settlement will be returned.

This is the primary endpoint for retrieving a cardholder's spending history.

Use query parameters to filter results by date range, amount range, and control pagination/sorting.

Note: Cardholders can only access their own purchases. Admins require ViewCardTransactions or ViewCardUsage permission.

Parameters

Name In Type Required Description
Pending query boolean false Filters pending purchases. Exclude this parameter to include pending, false to exclude, true to filter to only pending.
Search query string false Filter transactions with this search query in the description/merchant name.
Approval query array[string] false Filter to only include transactions with these approval/review status values.
MinDate query string(date-time) false Filter transactions with transaction time greater than or equal to this date (eastern time).
MaxDate query string(date-time) false Filter transactions with transaction time less than or equal to this date (eastern time).
OnDate query string(date-time) false Filter transactions that occurred on this specific date (eastern time). Cannot be used with MinDate or MaxDate.
MinAmount query number(double) false Filter transactions with amount greater than or equal to this value.
MaxAmount query number(double) false Filter transactions with amount less than or equal to this value.
EqualsAmount query number(double) false Filter transactions with amount exactly equal to this value. Cannot be used with MinAmount or MaxAmount.
SortBy query string false Property to sort results by. Default is TransactionTime.
OrderBy query string false Sort order direction. Default is Desc (descending).
PageIndex query integer(int32) false Page number to retrieve (1-based). Default is 1. Range: 1 to 2,147,483,647.
PageSize query integer(int32) false Number of results per page. Default is 100. Range: 1 to 1,000.
Authorization header string true token {USERTOKEN}

Enumerated Values

Parameter Value
Approval NotReviewed
Approval Ignored
Approval Approved
Approval Rejected
Approval NoReceipt
SortBy TransactionTime
SortBy Amount
SortBy Description
OrderBy Asc
OrderBy Desc

Example responses

200 Response

{
  "Results": [
    {
      "BusinessId": 0,
      "CardholderId": 0,
      "TransactionId": 0,
      "NetworkTransactionId": 0,
      "AuthTransactionId": 0,
      "RelationshipId": 0,
      "TransactionTime": "",
      "TransactionAuthTime": "",
      "TransactionHoldTime": "",
      "IsPending": false,
      "Description": "",
      "Amount": 0.1,
      "CurrencyDesc": "",
      "CurrencyCode": "",
      "SourceAmount": 0.1,
      "SourceCurrencyDesc": "",
      "SourceCurrencyCode": "",
      "Category": {
        "CategoryId": 0,
        "CategoryName": ""
      },
      "Merchant": {
        "Id": 0,
        "Name": "",
        "NameNormalized": "",
        "MccCode": "",
        "City": "",
        "State": "",
        "Country": "",
        "Zip": "",
        "WebsiteUrl": "",
        "LogoUrl": "",
        "IconUrl": ""
      },
      "Account": {
        "Type": "Business",
        "Id": 0
      },
      "Approval": "",
      "HasAttachments": false,
      "Notes": [
        {
          "Id": 0,
          "Content": "",
          "SystemGenerated": false,
          "Created": {
            "Username": "",
            "FirstName": "",
            "MiddleName": "",
            "LastName": "",
            "Email": "",
            "Time": ""
          },
          "Updated": {
            "Username": "",
            "FirstName": "",
            "MiddleName": "",
            "LastName": "",
            "Email": "",
            "Time": ""
          }
        }
      ],
      "Tags": [
        {
          "Id": "",
          "Name": "",
          "Value": ""
        }
      ]
    }
  ],
  "Pagination": {
    "SortBy": {},
    "OrderBy": {},
    "PageIndex": 0,
    "PageSize": 0,
    "ResultsCount": 0,
    "TotalCount": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK ExternalAPI.Services.Paginated_ExternalAPI.Services.TransactionResult_
401 Unauthorized Token expired or does not exist None
403 Forbidden Forbidden - Access denied or missing required permissions None

Retrieve purchase transactions for a specific cardholder.

Code samples

require 'rest-client'
require 'json'

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

result = RestClient.get 'https://coreapi.pexcard.com/v4/Transactions/Cardholder/{cardholderAccountId}/Purchases',
  params: {
  }, headers: headers

p JSON.parse(result)

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

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

print(r.json())


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

fetch('https://coreapi.pexcard.com/v4/Transactions/Cardholder/{cardholderAccountId}/Purchases',
{
  method: 'GET',

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

GET /Transactions/Cardholder/{cardholderAccountId}/Purchases

Returns only purchase transactions for a specific cardholder.

  • Purchases only: Excludes transfers, fees, adjustments, and other non-purchase transaction types
  • Settlements: If a purchase has settled, only the settlement will be returned.

This is the primary endpoint for retrieving a cardholder's spending history.

Use query parameters to filter results by date range, amount range, and control pagination/sorting.

Note: Cardholders can only access their own purchases. Admins require ViewCardTransactions or ViewCardUsage permission.

Parameters

Name In Type Required Description
CardholderAccountId path integer(int32) true The cardholder account ID
Pending query boolean false Filters pending purchases. Exclude this parameter to include pending, false to exclude, true to filter to only pending.
Search query string false Filter transactions with this search query in the description/merchant name.
Approval query array[string] false Filter to only include transactions with these approval/review status values.
MinDate query string(date-time) false Filter transactions with transaction time greater than or equal to this date (eastern time).
MaxDate query string(date-time) false Filter transactions with transaction time less than or equal to this date (eastern time).
OnDate query string(date-time) false Filter transactions that occurred on this specific date (eastern time). Cannot be used with MinDate or MaxDate.
MinAmount query number(double) false Filter transactions with amount greater than or equal to this value.
MaxAmount query number(double) false Filter transactions with amount less than or equal to this value.
EqualsAmount query number(double) false Filter transactions with amount exactly equal to this value. Cannot be used with MinAmount or MaxAmount.
SortBy query string false Property to sort results by. Default is TransactionTime.
OrderBy query string false Sort order direction. Default is Desc (descending).
PageIndex query integer(int32) false Page number to retrieve (1-based). Default is 1. Range: 1 to 2,147,483,647.
PageSize query integer(int32) false Number of results per page. Default is 100. Range: 1 to 1,000.
Authorization header string true token {USERTOKEN}

Enumerated Values

Parameter Value
Approval NotReviewed
Approval Ignored
Approval Approved
Approval Rejected
Approval NoReceipt
SortBy TransactionTime
SortBy Amount
SortBy Description
OrderBy Asc
OrderBy Desc

Example responses

200 Response

{
  "Results": [
    {
      "BusinessId": 0,
      "CardholderId": 0,
      "TransactionId": 0,
      "NetworkTransactionId": 0,
      "AuthTransactionId": 0,
      "RelationshipId": 0,
      "TransactionTime": "",
      "TransactionAuthTime": "",
      "TransactionHoldTime": "",
      "IsPending": false,
      "Description": "",
      "Amount": 0.1,
      "CurrencyDesc": "",
      "CurrencyCode": "",
      "SourceAmount": 0.1,
      "SourceCurrencyDesc": "",
      "SourceCurrencyCode": "",
      "Category": {
        "CategoryId": 0,
        "CategoryName": ""
      },
      "Merchant": {
        "Id": 0,
        "Name": "",
        "NameNormalized": "",
        "MccCode": "",
        "City": "",
        "State": "",
        "Country": "",
        "Zip": "",
        "WebsiteUrl": "",
        "LogoUrl": "",
        "IconUrl": ""
      },
      "Account": {
        "Type": "Business",
        "Id": 0
      },
      "Approval": "",
      "HasAttachments": false,
      "Notes": [
        {
          "Id": 0,
          "Content": "",
          "SystemGenerated": false,
          "Created": {
            "Username": "",
            "FirstName": "",
            "MiddleName": "",
            "LastName": "",
            "Email": "",
            "Time": ""
          },
          "Updated": {
            "Username": "",
            "FirstName": "",
            "MiddleName": "",
            "LastName": "",
            "Email": "",
            "Time": ""
          }
        }
      ],
      "Tags": [
        {
          "Id": "",
          "Name": "",
          "Value": ""
        }
      ]
    }
  ],
  "Pagination": {
    "SortBy": {},
    "OrderBy": {},
    "PageIndex": 0,
    "PageSize": 0,
    "ResultsCount": 0,
    "TotalCount": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK ExternalAPI.Services.Paginated_ExternalAPI.Services.TransactionResult_
401 Unauthorized Token expired or does not exist None
403 Forbidden Forbidden - Access denied or missing required permissions None

Retrieve a specific purchase transaction by ID for cardholders.

Code samples

require 'rest-client'
require 'json'

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

result = RestClient.get 'https://coreapi.pexcard.com/v4/Transactions/Cardholder/Purchases/{transactionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

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

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

print(r.json())


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

fetch('https://coreapi.pexcard.com/v4/Transactions/Cardholder/Purchases/{transactionId}',
{
  method: 'GET',

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

GET /Transactions/Cardholder/Purchases/{transactionId}

Returns a single purchase transaction by its unique transaction ID.

  • Purchases only: Excludes transfers, fees, adjustments, and other non-purchase transaction types
  • Settlements: If a purchase has settled, only the settlement can be queried for by its id.

Note: Cardholders can only access their own purchases. Admins require ViewCardTransactions or ViewCardUsage permission.

Parameters

Name In Type Required Description
TransactionId path integer(int64) true The unique transaction ID
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "BusinessId": 0,
  "CardholderId": 0,
  "TransactionId": 0,
  "NetworkTransactionId": 0,
  "AuthTransactionId": 0,
  "RelationshipId": 0,
  "TransactionTime": "",
  "TransactionAuthTime": "",
  "TransactionHoldTime": "",
  "IsPending": false,
  "Description": "",
  "Amount": 0.1,
  "CurrencyDesc": "",
  "CurrencyCode": "",
  "SourceAmount": 0.1,
  "SourceCurrencyDesc": "",
  "SourceCurrencyCode": "",
  "Category": {
    "CategoryId": 0,
    "CategoryName": ""
  },
  "Merchant": {
    "Id": 0,
    "Name": "",
    "NameNormalized": "",
    "MccCode": "",
    "City": "",
    "State": "",
    "Country": "",
    "Zip": "",
    "WebsiteUrl": "",
    "LogoUrl": "",
    "IconUrl": ""
  },
  "Account": {
    "Type": "Business",
    "Id": 0
  },
  "Approval": "",
  "HasAttachments": false,
  "Notes": [
    {
      "Id": 0,
      "Content": "",
      "SystemGenerated": false,
      "Created": {
        "Username": "",
        "FirstName": "",
        "MiddleName": "",
        "LastName": "",
        "Email": "",
        "Time": ""
      },
      "Updated": {
        "Username": "",
        "FirstName": "",
        "MiddleName": "",
        "LastName": "",
        "Email": "",
        "Time": ""
      }
    }
  ],
  "Tags": [
    {
      "Id": "",
      "Name": "",
      "Value": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK ExternalAPI.Services.TransactionResult
401 Unauthorized Token expired or does not exist None
403 Forbidden Forbidden - Access denied or missing required permissions None
404 Not Found Transaction not found or not a purchase transaction None

Retrieve a specific purchase transaction by ID for a cardholder.

Code samples

require 'rest-client'
require 'json'

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

result = RestClient.get 'https://coreapi.pexcard.com/v4/Transactions/Cardholder/{cardholderAccountId}/Purchases/{transactionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.get('https://coreapi.pexcard.com/v4/Transactions/Cardholder/{cardholderAccountId}/Purchases/{transactionId}', headers = headers)

print(r.json())


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

fetch('https://coreapi.pexcard.com/v4/Transactions/Cardholder/{cardholderAccountId}/Purchases/{transactionId}',
{
  method: 'GET',

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

GET /Transactions/Cardholder/{cardholderAccountId}/Purchases/{transactionId}

Returns a single purchase transaction by its unique transaction ID.

  • Purchases only: Excludes transfers, fees, adjustments, and other non-purchase transaction types
  • Settlements: If a purchase has settled, only the settlement can be queried for by its id.

Note: Cardholders can only access their own purchases. Admins require ViewCardTransactions or ViewCardUsage permission.

Parameters

Name In Type Required Description
CardholderAccountId path integer(int32) true The cardholder account ID
TransactionId path integer(int64) true The unique transaction ID
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "BusinessId": 0,
  "CardholderId": 0,
  "TransactionId": 0,
  "NetworkTransactionId": 0,
  "AuthTransactionId": 0,
  "RelationshipId": 0,
  "TransactionTime": "",
  "TransactionAuthTime": "",
  "TransactionHoldTime": "",
  "IsPending": false,
  "Description": "",
  "Amount": 0.1,
  "CurrencyDesc": "",
  "CurrencyCode": "",
  "SourceAmount": 0.1,
  "SourceCurrencyDesc": "",
  "SourceCurrencyCode": "",
  "Category": {
    "CategoryId": 0,
    "CategoryName": ""
  },
  "Merchant": {
    "Id": 0,
    "Name": "",
    "NameNormalized": "",
    "MccCode": "",
    "City": "",
    "State": "",
    "Country": "",
    "Zip": "",
    "WebsiteUrl": "",
    "LogoUrl": "",
    "IconUrl": ""
  },
  "Account": {
    "Type": "Business",
    "Id": 0
  },
  "Approval": "",
  "HasAttachments": false,
  "Notes": [
    {
      "Id": 0,
      "Content": "",
      "SystemGenerated": false,
      "Created": {
        "Username": "",
        "FirstName": "",
        "MiddleName": "",
        "LastName": "",
        "Email": "",
        "Time": ""
      },
      "Updated": {
        "Username": "",
        "FirstName": "",
        "MiddleName": "",
        "LastName": "",
        "Email": "",
        "Time": ""
      }
    }
  ],
  "Tags": [
    {
      "Id": "",
      "Name": "",
      "Value": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK ExternalAPI.Services.TransactionResult
401 Unauthorized Token expired or does not exist None
403 Forbidden Forbidden - Access denied or missing required permissions None
404 Not Found Transaction not found or not a purchase transaction None

Retrieve declined purchase transactions for cardholders.

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

fetch('https://coreapi.pexcard.com/v4/Transactions/Cardholder/Declines',
{
  method: 'GET',

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

GET /Transactions/Cardholder/Declines

Returns only declined purchase transactions for cardholders.

  • Declines only: Returns only transactions that were declined/rejected by the card network

Use query parameters to filter results by date range, amount range, and control pagination/sorting.

Note: Cardholders can only access their own declines. Admins require ViewCardTransactions or ViewCardUsage permission.

Parameters

Name In Type Required Description
Search query string false Filter transactions with this search query in the description/merchant name.
MinDate query string(date-time) false Filter transactions with transaction time greater than or equal to this date (eastern time).
MaxDate query string(date-time) false Filter transactions with transaction time less than or equal to this date (eastern time).
OnDate query string(date-time) false Filter transactions that occurred on this specific date (eastern time). Cannot be used with MinDate or MaxDate.
MinAmount query number(double) false Filter transactions with amount greater than or equal to this value.
MaxAmount query number(double) false Filter transactions with amount less than or equal to this value.
EqualsAmount query number(double) false Filter transactions with amount exactly equal to this value. Cannot be used with MinAmount or MaxAmount.
SortBy query string false Property to sort results by. Default is TransactionTime.
OrderBy query string false Sort order direction. Default is Desc (descending).
PageIndex query integer(int32) false Page number to retrieve (1-based). Default is 1. Range: 1 to 2,147,483,647.
PageSize query integer(int32) false Number of results per page. Default is 100. Range: 1 to 1,000.
Authorization header string true token {USERTOKEN}

Enumerated Values

Parameter Value
SortBy TransactionTime
SortBy Amount
SortBy Description
OrderBy Asc
OrderBy Desc

Example responses

200 Response

{
  "Results": [
    {
      "BusinessId": 0,
      "CardholderId": 0,
      "TransactionId": 0,
      "NetworkTransactionId": 0,
      "AuthTransactionId": 0,
      "RelationshipId": 0,
      "TransactionTime": "",
      "TransactionAuthTime": "",
      "TransactionHoldTime": "",
      "IsPending": false,
      "Description": "",
      "Amount": 0.1,
      "CurrencyDesc": "",
      "CurrencyCode": "",
      "SourceAmount": 0.1,
      "SourceCurrencyDesc": "",
      "SourceCurrencyCode": "",
      "Category": {
        "CategoryId": 0,
        "CategoryName": ""
      },
      "Merchant": {
        "Id": 0,
        "Name": "",
        "NameNormalized": "",
        "MccCode": "",
        "City": "",
        "State": "",
        "Country": "",
        "Zip": "",
        "WebsiteUrl": "",
        "LogoUrl": "",
        "IconUrl": ""
      },
      "Account": {
        "Type": "Business",
        "Id": 0
      },
      "Approval": "",
      "HasAttachments": false,
      "Notes": [
        {
          "Id": 0,
          "Content": "",
          "SystemGenerated": false,
          "Created": {
            "Username": "",
            "FirstName": "",
            "MiddleName": "",
            "LastName": "",
            "Email": "",
            "Time": ""
          },
          "Updated": {
            "Username": "",
            "FirstName": "",
            "MiddleName": "",
            "LastName": "",
            "Email": "",
            "Time": ""
          }
        }
      ],
      "Tags": [
        {
          "Id": "",
          "Name": "",
          "Value": ""
        }
      ]
    }
  ],
  "Pagination": {
    "SortBy": {},
    "OrderBy": {},
    "PageIndex": 0,
    "PageSize": 0,
    "ResultsCount": 0,
    "TotalCount": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK ExternalAPI.Services.Paginated_ExternalAPI.Services.TransactionResult_
401 Unauthorized Token expired or does not exist None
403 Forbidden Forbidden - Access denied or missing required permissions None

Retrieve declined purchase transactions for a specific cardholder.

Code samples

require 'rest-client'
require 'json'

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

result = RestClient.get 'https://coreapi.pexcard.com/v4/Transactions/Cardholder/{cardholderAccountId}/Declines',
  params: {
  }, headers: headers

p JSON.parse(result)

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

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

print(r.json())


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

fetch('https://coreapi.pexcard.com/v4/Transactions/Cardholder/{cardholderAccountId}/Declines',
{
  method: 'GET',

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

GET /Transactions/Cardholder/{cardholderAccountId}/Declines

Returns only declined purchase transactions for a specific cardholder.

  • Declines only: Returns only transactions that were declined/rejected by the card network

Use query parameters to filter results by date range, amount range, and control pagination/sorting.

Note: Cardholders can only access their own declines. Admins require ViewCardTransactions or ViewCardUsage permission.

Parameters

Name In Type Required Description
CardholderAccountId path integer(int32) true The cardholder account ID
Search query string false Filter transactions with this search query in the description/merchant name.
MinDate query string(date-time) false Filter transactions with transaction time greater than or equal to this date (eastern time).
MaxDate query string(date-time) false Filter transactions with transaction time less than or equal to this date (eastern time).
OnDate query string(date-time) false Filter transactions that occurred on this specific date (eastern time). Cannot be used with MinDate or MaxDate.
MinAmount query number(double) false Filter transactions with amount greater than or equal to this value.
MaxAmount query number(double) false Filter transactions with amount less than or equal to this value.
EqualsAmount query number(double) false Filter transactions with amount exactly equal to this value. Cannot be used with MinAmount or MaxAmount.
SortBy query string false Property to sort results by. Default is TransactionTime.
OrderBy query string false Sort order direction. Default is Desc (descending).
PageIndex query integer(int32) false Page number to retrieve (1-based). Default is 1. Range: 1 to 2,147,483,647.
PageSize query integer(int32) false Number of results per page. Default is 100. Range: 1 to 1,000.
Authorization header string true token {USERTOKEN}

Enumerated Values

Parameter Value
SortBy TransactionTime
SortBy Amount
SortBy Description
OrderBy Asc
OrderBy Desc

Example responses

200 Response

{
  "Results": [
    {
      "BusinessId": 0,
      "CardholderId": 0,
      "TransactionId": 0,
      "NetworkTransactionId": 0,
      "AuthTransactionId": 0,
      "RelationshipId": 0,
      "TransactionTime": "",
      "TransactionAuthTime": "",
      "TransactionHoldTime": "",
      "IsPending": false,
      "Description": "",
      "Amount": 0.1,
      "CurrencyDesc": "",
      "CurrencyCode": "",
      "SourceAmount": 0.1,
      "SourceCurrencyDesc": "",
      "SourceCurrencyCode": "",
      "Category": {
        "CategoryId": 0,
        "CategoryName": ""
      },
      "Merchant": {
        "Id": 0,
        "Name": "",
        "NameNormalized": "",
        "MccCode": "",
        "City": "",
        "State": "",
        "Country": "",
        "Zip": "",
        "WebsiteUrl": "",
        "LogoUrl": "",
        "IconUrl": ""
      },
      "Account": {
        "Type": "Business",
        "Id": 0
      },
      "Approval": "",
      "HasAttachments": false,
      "Notes": [
        {
          "Id": 0,
          "Content": "",
          "SystemGenerated": false,
          "Created": {
            "Username": "",
            "FirstName": "",
            "MiddleName": "",
            "LastName": "",
            "Email": "",
            "Time": ""
          },
          "Updated": {
            "Username": "",
            "FirstName": "",
            "MiddleName": "",
            "LastName": "",
            "Email": "",
            "Time": ""
          }
        }
      ],
      "Tags": [
        {
          "Id": "",
          "Name": "",
          "Value": ""
        }
      ]
    }
  ],
  "Pagination": {
    "SortBy": {},
    "OrderBy": {},
    "PageIndex": 0,
    "PageSize": 0,
    "ResultsCount": 0,
    "TotalCount": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK ExternalAPI.Services.Paginated_ExternalAPI.Services.TransactionResult_
401 Unauthorized Token expired or does not exist None
403 Forbidden Forbidden - Access denied or missing required permissions None

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": "",
        "Full": "",
        "Thumbnail": "",
        "Preview": ""
      },
      "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 Models.Transaction.Attachments.Response.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 [Models.Transaction.Attachments.Response.DeleteAttachment] false none [Attachment]
» DeleteAttachment Models.Transaction.Attachments.Response.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 TransactionMetadata.Library.Models.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 TransactionMetadata.Library.Models.MetadataUser false none Metadata user
»» DeletedDateUtc string(date-time) false none Deleted date in UTC
»» DeletedBy TransactionMetadata.Library.Models.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
AttachmentLinkType query string false Attachment Link Type
Authorization header string true token {USERTOKEN}

Enumerated Values

Parameter Value
AttachmentLinkType LinkUrl
AttachmentLinkType Full
AttachmentLinkType Thumbnail
AttachmentLinkType Preview

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 Models.Transaction.Attachments.Response.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 Models.Transaction.Attachments.Request.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 Models.Transaction.Attachments.Response.CreateOrUpdateAttachment
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 Models.Transaction.Attachments.Response.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 Models.Transaction.Attachments.Request.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 Models.Transaction.Attachments.Response.CreateOrUpdateAttachment
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. - 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 TransactionMetadata.Library.Models.Transaction.Tags.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 = '{
  "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. { "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. - State - Transaction review state. Possible values are: NotReviewed(default value), Approved, Reject, Ignore. - Values - List of tag values.

Body parameter

{
  "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 TransactionMetadata.Library.Models.Transaction.Tags.Request.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 TransactionMetadata.Library.Models.Transaction.Tags.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: {
  }, 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', headers = headers)

print(r.json())


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

fetch('https://coreapi.pexcard.com/v4/Transactions/{Id}/Tags',
{
  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. - 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
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 TransactionMetadata.Library.Models.Transaction.Tags.Tags
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 = '{
  "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. { "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. - State - Transaction review state. Possible values are: NotReviewed(default value), Approved, Reject, Ignore. - Values - List of tag values.

Body parameter

{
  "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 TransactionMetadata.Library.Models.Transaction.Tags.Request.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 TransactionMetadata.Library.Models.Transaction.Tags.Tags
400 Bad Request The request is invalid. None
401 Unauthorized Token expired or does not exist None
404 Not Found Not found None

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

Gets 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

Gets 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 [Models.Business.Response.LinkedBusinessResponse] false none none
» LinkedBusinessResponse Models.Business.Response.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 [Models.Business.Response.ExternalBankResponse] false none [An external bank account.]
» ExternalBankResponse Models.Business.Response.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 Models.TransferDto true none

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK Success Models.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 Models.Business.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": ""
  },
  "Phone": "",
  "PhoneExtension": "",
  "DateOfBirth": "",
  "Email": ""
}

Responses

Status Meaning Description Schema
200 OK Success Models.Business.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 Models.Business.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": ""
      },
      "Phone": "",
      "AltPhone": "",
      "DateOfBirth": "",
      "Email": "",
      "Permissions": {
        "ViewAdministration": false,
        "AddEditTerminateAdministrator": false,
        "RequestDeleteACHTransfer": false,
        "EditBusinessProfile": false,
        "AddEditTerminateCard": false,
        "CreateCardholder": false,
        "ManageCardholder": false,
        "ViewCardUsage": false,
        "ViewCardNumbers": false,
        "ViewCardTransactions": false,
        "ApproveFundingRequest": false,
        "RequestCardFunding": false,
        "ModifyTransactionNotes": false
      },
      "Status": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.Business.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,
    "ViewCardNumbers": false,
    "ViewCardTransactions": false,
    "ApproveFundingRequest": 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

Password should meet the conditions:
- Must be between 8 and 256 characters in length
- Cannot contain a space at the beginning or at the end
- Must contain at least one digit (0-9)
- Must contain at least one letter (a-z A-Z)
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,
    "ViewCardNumbers": false,
    "ViewCardTransactions": false,
    "ApproveFundingRequest": false,
    "RequestCardFunding": false,
    "ModifyTransactionNotes": false
  },
  "PasswordQuestion": "",
  "PasswordAnswer": ""
}

Parameters

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

Example responses

200 Response

{
  "Admin": {
    "BusinessAdminId": 0,
    "FirstName": "",
    "MiddleName": "",
    "LastName": "",
    "UserName": "",
    "ProfileAddress": {
      "ContactName": "",
      "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,
      "ViewCardNumbers": false,
      "ViewCardTransactions": false,
      "ApproveFundingRequest": false,
      "RequestCardFunding": false,
      "ModifyTransactionNotes": false
    },
    "Status": ""
  }
}

Responses

Status Meaning Description Schema
200 OK Success Models.Business.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": ""
    },
    "Phone": "",
    "AltPhone": "",
    "DateOfBirth": "",
    "Email": "",
    "Permissions": {
      "ViewAdministration": false,
      "AddEditTerminateAdministrator": false,
      "RequestDeleteACHTransfer": false,
      "EditBusinessProfile": false,
      "AddEditTerminateCard": false,
      "CreateCardholder": false,
      "ManageCardholder": false,
      "ViewCardUsage": false,
      "ViewCardNumbers": false,
      "ViewCardTransactions": false,
      "ApproveFundingRequest": false,
      "RequestCardFunding": false,
      "ModifyTransactionNotes": false
    },
    "Status": ""
  }
}

Responses

Status Meaning Description Schema
200 OK Success Models.Business.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,
    "ViewCardNumbers": false,
    "ViewCardTransactions": false,
    "ApproveFundingRequest": 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,
    "ViewCardNumbers": false,
    "ViewCardTransactions": false,
    "ApproveFundingRequest": 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 Models.Business.UpsertAdminRequest true Profile and permission data

Example responses

200 Response

{
  "Admin": {
    "BusinessAdminId": 0,
    "FirstName": "",
    "MiddleName": "",
    "LastName": "",
    "UserName": "",
    "ProfileAddress": {
      "ContactName": "",
      "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,
      "ViewCardNumbers": false,
      "ViewCardTransactions": false,
      "ApproveFundingRequest": false,
      "RequestCardFunding": false,
      "ModifyTransactionNotes": false
    },
    "Status": ""
  }
}

Responses

Status Meaning Description Schema
200 OK Success Models.Business.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 Models.Business.Response.GetBusinessBalanceResponse
401 Unauthorized Token expired or does not exist None

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 [TransactionMetadata.Library.Models.Business.Configuration.Tags.Tag] false none [Tag configuration]
» Tag TransactionMetadata.Library.Models.Business.Configuration.Tags.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 read-only Concurrent editing token
»» CreatedDateUtc string(date-time) false none Date when the tag definition was created
»» CreatedBy TransactionMetadata.Library.Models.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 TransactionMetadata.Library.Models.MetadataUser false none Metadata user
»» DeletedDateUtc string(date-time) false none Date when the tag definition was deleted
»» DeletedBy TransactionMetadata.Library.Models.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, respecting user tag restrictions. (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
OverrideRestrictions query boolean false Override Tag Restrictions
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 TransactionMetadata.Library.Models.Business.Configuration.Tags.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 TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.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 TransactionMetadata.Library.Models.Business.Configuration.Tags.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 TransactionMetadata.Library.Models.Business.Configuration.Tags.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 TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.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 TransactionMetadata.Library.Models.Business.Configuration.Tags.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 TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.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 TransactionMetadata.Library.Models.Business.Configuration.Tags.DropdownTag
201 Created Created TransactionMetadata.Library.Models.Business.Configuration.Tags.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.

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 TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.UpdateTagOptionRequest true none

Example responses

200 Response

{
  "Name": "",
  "Value": "",
  "Order": 0,
  "IsEnabled": false
}

Responses

Status Meaning Description Schema
200 OK OK TransactionMetadata.Library.Models.Business.Configuration.Tags.TagOption
400 Bad Request The request is invalid None
401 Unauthorized Token expired or does not exist None
404 Not Found NotFound None

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 = '{
  "MinLength": 200,
  "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

{
  "MinLength": 200,
  "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 TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.CreateTextTagRequest true none

Example responses

201 Response

{
  "MinLength": 0,
  "Length": 0,
  "ValidationType": "None",
  "ValidationRegex": "",
  "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 TransactionMetadata.Library.Models.Business.Configuration.Tags.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 = '{
  "MinLength": 200,
  "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

{
  "MinLength": 200,
  "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 TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.UpdateTextTagRequest true none

Example responses

200 Response

{
  "MinLength": 0,
  "Length": 0,
  "ValidationType": "None",
  "ValidationRegex": "",
  "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 TransactionMetadata.Library.Models.Business.Configuration.Tags.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

{
  "MinLength": 0,
  "Length": 0,
  "ValidationType": "None",
  "ValidationRegex": "",
  "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 TransactionMetadata.Library.Models.Business.Configuration.Tags.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 TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.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 TransactionMetadata.Library.Models.Business.Configuration.Tags.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 TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.UpdateTagRequest true none

Example responses

200 Response

{
  "MinLength": 0,
  "Length": 0,
  "ValidationType": "None",
  "ValidationRegex": "",
  "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 TransactionMetadata.Library.Models.Business.Configuration.Tags.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 TransactionMetadata.Library.Models.Business.Configuration.Tags.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 TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.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 TransactionMetadata.Library.Models.Business.Configuration.Tags.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 TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.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 TransactionMetadata.Library.Models.Business.Configuration.Tags.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 TransactionMetadata.Library.Models.Business.Configuration.Tags.Tag
400 Bad Request Bad Request. None
401 Unauthorized Token expired or does not exist None
404 Not Found Not found None

Update/Enable 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. - 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 TransactionMetadata.Library.Models.Business.Configuration.Tags.AllocationTag
401 Unauthorized Token expired or does not exist None

Create/Enable 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. - 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 TransactionMetadata.Library.Models.Business.Configuration.Tags.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/Disable 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',
  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', headers = headers)

print(r.json())


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

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

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

DELETE /Business/Configuration/Tag/Allocation

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
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 TransactionMetadata.Library.Models.Business.Configuration.Tags.Tag
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: {
  'Month' => 'integer(int32)',
'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={
  'Month': '1',  'Year': '0'
}, headers = headers)

print(r.json())


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

fetch('https://coreapi.pexcard.com/v4/Business/Billing?Month=1&Year=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
Month query integer(int32) true Month
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 Models.Business.Response.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,
  "UseReimbursements": false
}

Responses

Status Meaning Description Schema
200 OK Success Models.Business.Response.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": ""
    },
    "Phone": "",
    "ShippingAddress": {
      "ContactName": "",
      "AddressLine1": "",
      "AddressLine2": "",
      "City": "",
      "State": "",
      "PostalCode": ""
    },
    "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 [Models.AdvancedSpendingRuleset.Response.AdvancedCardholderDetailsResponse] false none none
» AdvancedCardholderDetailsResponse Models.AdvancedSpendingRuleset.Response.AdvancedCardholderDetailsResponse false none none
»» AccountId integer(int32) false none Unique cardholder account id
»» Group Models.Details.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 Repository.Models.Address.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
»» Phone string false none Phone number
»» ShippingAddress Repository.Models.Address.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 [Models.Details.CardDetail] false none List of details about cards associated with the account
»»» CardDetail Models.Details.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 Models.Cards.Response.AdvancedSpendRulesResponse false none Advanced Spend Rules Response
»»» MerchantCategories [Models.Cards.Response.MerchantCategoryResponse] false none List of merchant categories
»»»» MerchantCategoryResponse Models.Cards.Response.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 Models.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 [Models.AdvancedSpendingRuleset.Response.AdvancedSpendingRulesetItemResponse] false none [Advanced Spending Ruleset Item Response]
» AdvancedSpendingRulesetItemResponse Models.AdvancedSpendingRuleset.Response.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 [Models.AdvancedSpendingRuleset.Response.AdvancedSpendingRulesetMerchantCategoryItemResponse] false none Merchant Categories
»»» AdvancedSpendingRulesetMerchantCategoryItemResponse Models.AdvancedSpendingRuleset.Response.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 Models.AdvancedSpendingRuleset.Request.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 Models.AdvancedSpendingRuleset.Response.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 Models.AdvancedSpendingRuleset.Request.CreateAdvancedSpendingRulesetRequest true none

Example responses

200 Response

{
  "RulesetId": 0
}

Responses

  • 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 Models.AdvancedSpendingRuleset.Request.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 Models.AdvancedSpendingRuleset.Response.AdvancedSpendingRulesetItemResponse
400 Bad Request Invalid ruleset ID None
401 Unauthorized Token expired or does not exist None

Gets the MccCategories.

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /SpendingRuleset/MccCategories

You can filter with query parameters 'includePredefined' and 'includeCustom'. Both default to true.

Parameters

Name In Type Required Description
IncludePredefined query boolean false none
IncludeCustom query boolean false none
Authorization header string true token {USERTOKEN}

Example responses

200 Response

[
  {
    "Id": 0,
    "BusinessAcctId": 0,
    "AccountId": "",
    "Name": "",
    "MccCodes": [
      "string"
    ],
    "Description": "",
    "IsPredefined": false,
    "IsEditable": false,
    "CardholderCount": 0,
    "AdminName": ""
  }
]

Responses

Status Meaning Description Schema
200 OK OK Inline
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 [Models.MerchantCategory] false none none
» MerchantCategory Models.MerchantCategory false none none
»» Id integer(int32) false none none
»» BusinessAcctId integer(int32) false none none
»» AccountId string false none none
»» Name string false none none
»» MccCodes [string] false none none
»» Description string false none none
»» IsPredefined boolean false none none
»» IsEditable boolean false none none
»» CardholderCount integer(int32) false none none
»» AdminName string false none 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": ""
    },
    "Phone": "",
    "ShippingAddress": {
      "ContactName": "",
      "AddressLine1": "",
      "AddressLine2": "",
      "City": "",
      "State": "",
      "PostalCode": ""
    },
    "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 [Models.Details.CardholderDetailsResponse] false none [Details about a cardholder account]
» CardholderDetailsResponse Models.Details.CardholderDetailsResponse false none Details about a cardholder account
»» AccountId integer(int32) false none Unique cardholder account id
»» Group Models.Details.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 Repository.Models.Address.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
»» Phone string false none Phone number
»» ShippingAddress Repository.Models.Address.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
»» CardholderType string false none Identifies whether cardholder type is TeamMember or Vendor
»» CardList [Models.Details.CardDetail] false none List of details about cards associated with the account
»»» CardDetail Models.Details.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 CoreCardAPI.Common.SpendRules false none none
»»» UseMerchantCategory boolean false none none
»»» MerchantCategories CoreCardAPI.Common.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 Models.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 Repository.Models.SpendingRulesets.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 Models.SpendingRulesets.UpdateSpendingRulesetRequest true none

Example responses

200 Response

{
  "RulesetId": 0
}

Responses

Status Meaning Description Schema
200 OK OK Models.SpendingRulesets.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 Models.SpendingRulesets.CreateSpendingRulesetRequest true none

Example responses

201 Response

{
  "RulesetId": 0
}

Responses

Status Meaning Description Schema
201 Created Created Repository.Models.SpendingRulesets.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 Models.SpendingRulesets.DeleteSpendingRulesetRequest true none

Example responses

200 Response

{
  "RulesetId": 0
}

Responses

Status Meaning Description Schema
200 OK OK Models.SpendingRulesets.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 Models.SpendingRulesets.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 Models.SpendingRulesets.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,
  "VisibleToCardholder": false,
  "SystemGenerated": false
}';
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,
  "VisibleToCardholder": false,
  "SystemGenerated": false
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body Models.CreateNoteByNetworkTransactionIdRequest true none

Example responses

200 Response

{
  "Id": 0
}

Responses

Status Meaning Description Schema
200 OK Success Models.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|

Create a transaction note by transaction relationship

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

print(r.json())

const inputBody = '{
  "NoteText": "",
  "TransactionRelationshipId": 0,
  "VisibleToCardholder": false,
  "SystemGenerated": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

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

POST /Note/TransactionRelationshipNote

You may want to add a transaction note using transaction relationship 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.

Body parameter

{
  "NoteText": "",
  "TransactionRelationshipId": 0,
  "VisibleToCardholder": false,
  "SystemGenerated": false
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body Models.CreateNoteByTransactionRelationshipIdRequest true none

Example responses

200 Response

{
  "Id": 0
}

Responses

Status Meaning Description Schema
200 OK Success Models.NoteResponse
400 Bad Request - The field NoteText must be a string with a maximum length of 200
  • The TransactionRelationshipId 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 relationship 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 Models.NoteRequest true Details required to update note

Example responses

200 Response

{
  "Id": 0
}

Responses

Status Meaning Description Schema
200 OK Success Models.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 Models.DeleteNoteRequest true none

Example responses

200 Response

{
  "Id": 0
}

Responses

Status Meaning Description Schema
200 OK Success Models.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,
  "VisibleToCardholder": false,
  "SystemGenerated": false,
  "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,
  "VisibleToCardholder": false,
  "SystemGenerated": false,
  "NoteText": "",
  "Pending": false
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body Models.CreateNoteRequest true none

Example responses

200 Response

{
  "Id": 0
}

Responses

Status Meaning Description Schema
200 OK Success Models.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 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 Models.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 Models.CreateGroupRequest true Group name

Example responses

200 Response

{
  "Group": {
    "Id": 0,
    "Name": ""
  }
}

Responses

Status Meaning Description Schema
200 OK Success Models.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

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 [Models.Cards.CardHolderDetailsResponse] false none [Card Holder Details Response]
» CardHolderDetailsResponse Models.Cards.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 Models.Details.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 Models.SpendingRulesets.SpendingRulesetModel false none Spending Ruleset Model
»»» RulesetId integer(int32) false none RulesetId
»»» Name string false none Name
»» EmbossingDetails [Models.Cards.EmbossingDetails] false none Embossing Details
»»» EmbossingDetails Models.Cards.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 [Models.Cards.PlasticDetials] false none Plastic Details
»»»»» PlasticDetials Models.Cards.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 Models.UpdateGroupRequest true Details required to update group name

Example responses

200 Response

{
  "Group": {
    "Id": 0,
    "Name": ""
  }
}

Responses

Status Meaning Description Schema
200 OK Success Models.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 Models.RemoveGroupResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden Group ID is Invalid 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 Models.Bulk.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 Models.Bulk.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 Models.Bulk.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 Models.TokenProvisioning.Response.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 Models.TokenProvisioning.Response.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 Models.TokenProvisioning.Request.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 Models.TokenProvisioning.Response.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 Models.TokenProvisioning.Request.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 Models.Partner.Response.GetPartnerResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden Must be admin user None

CallbackSubscription : Manages callback subscriptions.

Returns the callback subscription types.

Code samples

require 'rest-client'
require 'json'

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

result = RestClient.get 'https://coreapi.pexcard.com/v4/callback-subscription/types',
  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/types', headers = headers)

print(r.json())


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

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

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

GET /callback-subscription/types

Returns the callback types.

Parameters

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

Example responses

200 Response

[
  {
    "Name": "",
    "Value": "Card"
  }
]

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
404 Not Found The callback subscription does not exist. None

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [Models.CallbackSubscription.Response.CallbackTypeModel] false none none
» CallbackTypeModel Models.CallbackSubscription.Response.CallbackTypeModel false none none
»» Name string false none none
»» Value string false none none

Enumerated Values

Property Value
Value Card
Value Cardorder
Value CardOrderVirtual
Value CardTokenCreated
Value AuthRealtime
Value PinRealtime
Value DeclineRealtime
Value ReversalRealtime
Value SettlementPostedRealtime

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
Type query string false none
Authorization header string true token {USERTOKEN}

Enumerated Values

Parameter Value
Type Card
Type Cardorder
Type CardOrderVirtual
Type CardTokenCreated
Type AuthRealtime
Type PinRealtime
Type DeclineRealtime
Type ReversalRealtime
Type SettlementPostedRealtime

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 [Models.CallbackSubscription.Response.CallbackSubscriptionResponse] false none [Callback Subscription Response]
» CallbackSubscriptionResponse Models.CallbackSubscription.Response.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": "",
  "Name": "",
  "Description": ""
}';
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": "",
  "Name": "",
  "Description": ""
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body Models.CallbackSubscription.Request.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 Models.CallbackSubscription.Response.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 Models.CallbackSubscription.Response.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": "",
  "Name": "",
  "Description": ""
}';
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": "",
  "Name": "",
  "Description": ""
}

Parameters

Name In Type Required Description
id path integer(int32) true none
Authorization header string true token {USERTOKEN}
body body Models.CallbackSubscription.Request.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 Models.CallbackSubscription.Response.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

Deletes the callback subscription.

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

DELETE /callback-subscription/{id}

Deletes the callback subscription.

Parameters

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

Responses

Status Meaning Description Schema
200 OK Success 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

Credit : Credit business endpoints

Get credit lines for the business

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /CreditLinesInfo

Parameters

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

Example responses

200 Response

{
  "CreditLimit": 0.1,
  "AvailableCredit": 0.1,
  "Term": "",
  "Status": ""
}

Responses

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

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 [Models.Credit.Invoice] false none none
» Invoice Models.Credit.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,
    "TransactionTypeCategory": ""
  }
]

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 [Models.Credit.InvoiceAllocation] false none none
» InvoiceAllocation Models.Credit.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
»» TransactionTypeCategory string 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,
    "RequestId": 0,
    "Type": "PEXTransfer",
    "DatePaid": "",
    "Description": "",
    "PaymentInitiatedByUserId": 0,
    "CreditCarriedOverFromInvoiceId": 0,
    "Amount": 0.1,
    "RejectedByBank": false
  }
]

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 [Models.Credit.InvoicePayment] false none none
» InvoicePayment Models.Credit.InvoicePayment false none none
»» PaymentId integer(int32) false none none
»» RequestId integer(int32) false none none
»» Type string false none none
»» DatePaid string(date-time) false none none
»» Description string false read-only none
»» PaymentInitiatedByUserId integer(int64) false none none
»» CreditCarriedOverFromInvoiceId integer(int32) false none none
»» Amount number(double) false none none
»» RejectedByBank boolean false none none

Enumerated Values

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

Bill : Manage bill payment requests

Get bill payment details

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

r = requests.get('https://coreapi.pexcard.com/v4/Bill/{billId}', headers = headers)

print(r.json())


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

fetch('https://coreapi.pexcard.com/v4/Bill/{billId}',
{
  method: 'GET',

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

GET /Bill/{billId}

Retrieve detailed information about a specific bill payment request.

Returns bill payment information including:
- Payment details (amount, vendor, dates)
- Approval status and workflow
- Associated tags, notes, and attachments

Approval Fields:
- IsUserApprovalRestricted=false: Authenticated user can call POST /Bill/{id}/Approve or /Reject
- IsUserInApprovalRoute=true: User is part of this bill's approval workflow

Parameters

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

Example responses

200 Response

{
  "BillId": 0,
  "MerchantName": "",
  "Amount": 0.1,
  "PaymentRequestStatus": "",
  "PaymentRequestStatusTrigger": "",
  "PaymentRequestType": "",
  "PayeeFundsDestinationType": "",
  "PurchaseDate": "",
  "PayoutDate": "",
  "MetadataId": 0,
  "CreatedDate": "",
  "HasPaymentError": false,
  "PayeePexId": 0,
  "BillPayment": {
    "BillDate": "",
    "DueDate": "",
    "BillRefNo": ""
  },
  "ApprovalDetails": {
    "ApprovalId": 0,
    "ApprovalStatus": "",
    "ApprovalWorkflowType": ""
  },
  "IsUserApprovalRestricted": false,
  "IsUserInApprovalRoute": false,
  "Attachments": [
    {
      "Id": "",
      "FileName": "",
      "UploadedDate": ""
    }
  ],
  "Tags": {
    "IsSplit": false,
    "Allocations": [
      {
        "Amount": 0.1,
        "Tags": [
          {
            "TagId": "",
            "TagName": "",
            "TagOptionValue": {},
            "TagOptionName": ""
          }
        ]
      }
    ]
  },
  "Notes": [
    {
      "Id": 0,
      "Note": "",
      "VisibleToCardholder": false,
      "SystemGenerated": false,
      "CreatedByUserId": 0,
      "CreatedByUser": "",
      "CreatedDateTime": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.Bill.Response.GetBillPaymentResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden Bill payment does not belong to business None
404 Not Found Bill payment not found None

Get payments for a bill payment request

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /Bill/{billId}/Payments

Retrieve all payments associated with a specific bill payment request.

After a bill payment request is approved and processed, it may generate one or more Payment records.
This endpoint returns the list of actual payments (ACH transfers or card transactions) that were created
to fulfill the bill payment request.

Use this endpoint to:
- Track payment execution status
- View payment dates and amounts
- Monitor ACH transfer details
- Verify payment completion

Parameters

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

Example responses

200 Response

{
  "Payments": [
    {
      "PaymentId": 0,
      "PaymentStatus": "",
      "PaymentStatusTrigger": "",
      "PaymentTransferId": 0,
      "Amount": 0.1,
      "PayeeBankAccountId": 0,
      "PayeeUserId": 0,
      "PayoutDate": "",
      "OutboundAchCreationDate": "",
      "ExpectedPaymentDate": "",
      "Created": "",
      "Updated": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.Bill.Response.GetBillPaymentsResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden Bill payment does not belong to business None
404 Not Found Bill payment not found None

Get a list of bill payment requests

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /Bill

Retrieve a paginated list of bill payment requests with optional filtering.

Filtering:
- Date ranges (created date, due date)
- Creator user ID
- Vendor ID
- Amount range
- Payment status
- Owner (current user's requests only)
- Pending review (requests awaiting current user's approval)

Sorting:
- SortDirection: Ascending, Asc, Descending, or Desc
- SortByField: Id, Amount, Created, DueDate, BillRefNo, CreatedByUserId, PayeePexId, PayeeName, PaymentRequestStatus, PaymentRequestStatusTrigger

Pagination:
- Page: Page number (1-based, default: 1)
- PageSize: Results per page (1-100, default: 25)

Example usage:
- /Bill?vendorId=12345
- /Bill?page=2&pageSize=20
- /Bill?sortByField=Amount&sortDirection=Asc
- /Bill?amountFrom=100&amountTo=5000&paymentRequestStatuses=Pending&paymentRequestStatuses=Approved

Parameters

Name In Type Required Description
CreatedDateFrom query string(date-time) false Filter by created date from (inclusive)
CreatedDateTo query string(date-time) false Filter by created date to (inclusive)
DueDateFrom query string(date-time) false Filter by due date from (inclusive)
DueDateTo query string(date-time) false Filter by due date to (inclusive)
CreatedByUserId query integer(int64) false Filter by creator user ID
VendorId query integer(int32) false Filter by vendor ID
AmountFrom query number(double) false Filter by minimum amount
AmountTo query number(double) false Filter by maximum amount
PaymentRequestStatuses query array[string] false Filter by payment request statuses
PaymentRequestStatusTriggers query array[string] false Filter by payment request status triggers
IsOwner query boolean false Filter to only show requests created by current user
IsPendingReview query boolean false Filter to only show requests pending review by current user
Page query integer(int32) false Page number (1-based)
PageSize query integer(int32) false Page size
SortDirection query string false Sort direction. Allowed values: Ascending, Asc, Descending, Desc
SortByField query string false Field to sort by
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "Items": [
    {
      "BillId": 0,
      "BillRefNo": "",
      "Amount": 0.1,
      "Created": "",
      "CreatedByUserId": 0,
      "CreatedByUser": "",
      "PayeePexId": 0,
      "PayeeName": "",
      "DueDate": "",
      "PaymentRequestStatus": "",
      "PaymentRequestStatusTrigger": ""
    }
  ],
  "PageInfo": {
    "TotalCount": 0,
    "PageNumber": 0,
    "PageSize": 0,
    "TotalPages": 0
  }
}

Responses

Status Meaning Description Schema
200 OK Success Models.Bill.Response.SearchBillPaymentsResponse
400 Bad Request Invalid query parameters None
401 Unauthorized Token expired or does not exist None

Create a new bill payment request

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

print(r.json())

const inputBody = '{
  "VendorId": 1,
  "Amount": 0.1,
  "PaymentMethod": "VendorCard",
  "BillPayment": {
    "BillDate": "",
    "DueDate": "",
    "BillRefNo": ""
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

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

POST /Bill

Create a new bill payment request for a vendor in Draft status.

Required fields:
- VendorId
- Amount (must be greater than zero)
- BillPayment.BillDate

Optional fields:
- BillPayment.DueDate
- BillPayment.BillRefNo (max 100 characters)

The vendor name is automatically populated from the vendor record.
The payment method (VendorCard or ACH) is determined automatically based
on vendor settings or you may pass one here if configured.

After creation, use dedicated endpoints to add details:
- PUT /Bill/{billId}/Tags - Add tags
- POST /Bill/{billId}/Note - Add notes

Then call POST /Bill/{billId}/Submit to submit for processing.

Body parameter

{
  "VendorId": 1,
  "Amount": 0.1,
  "PaymentMethod": "VendorCard",
  "BillPayment": {
    "BillDate": "",
    "DueDate": "",
    "BillRefNo": ""
  }
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body Models.Bill.Request.CreateBillPaymentRequest true Bill payment creation details

Example responses

200 Response

{
  "BillId": 0,
  "MerchantName": "",
  "Amount": 0.1,
  "PaymentRequestStatus": "",
  "PaymentRequestStatusTrigger": "",
  "PaymentRequestType": "",
  "PayeeFundsDestinationType": "",
  "PurchaseDate": "",
  "PayoutDate": "",
  "MetadataId": 0,
  "CreatedDate": "",
  "HasPaymentError": false,
  "PayeePexId": 0,
  "BillPayment": {
    "BillDate": "",
    "DueDate": "",
    "BillRefNo": ""
  },
  "ApprovalDetails": {
    "ApprovalId": 0,
    "ApprovalStatus": "",
    "ApprovalWorkflowType": ""
  },
  "IsUserApprovalRestricted": false,
  "IsUserInApprovalRoute": false,
  "Attachments": [
    {
      "Id": "",
      "FileName": "",
      "UploadedDate": ""
    }
  ],
  "Tags": {
    "IsSplit": false,
    "Allocations": [
      {
        "Amount": 0.1,
        "Tags": [
          {
            "TagId": "",
            "TagName": "",
            "TagOptionValue": {},
            "TagOptionName": ""
          }
        ]
      }
    ]
  },
  "Notes": [
    {
      "Id": 0,
      "Note": "",
      "VisibleToCardholder": false,
      "SystemGenerated": false,
      "CreatedByUserId": 0,
      "CreatedByUser": "",
      "CreatedDateTime": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.Bill.Response.GetBillPaymentResponse
400 Bad Request - Required field is missing
  • Invalid amount (must be greater than zero)
  • Vendor does not have payment methods enabled|None| |401|Unauthorized|Token expired or does not exist|None| |403|Forbidden|- Admin does not have permission
  • Vendor does not belong to business|None| |404|Not Found|Vendor not found|None|

Update tags for a bill payment

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())

const inputBody = '{
  "Tags": [
    {
      "Amount": 0.1,
      "Tags": [
        {
          "TagId": "",
          "Value": {}
        }
      ]
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Authorization':'string'
};

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

PUT /Bill/{billId}/Tags

Update the tag allocations for a bill payment request.

Tags must be allocated to the full amount of the payment.
Tags can be split across multiple allocations if needed.

Body parameter

{
  "Tags": [
    {
      "Amount": 0.1,
      "Tags": [
        {
          "TagId": "",
          "Value": {}
        }
      ]
    }
  ]
}

Parameters

Name In Type Required Description
billId path integer(int32) true Bill ID
Authorization header string true token {USERTOKEN}
body body Models.Bill.Request.UpdateBillPaymentTagsRequest true Tag allocations

Responses

Status Meaning Description Schema
200 OK Success None
400 Bad Request - Tag allocations do not sum to payment amount
- Invalid tag or tag value ID None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Bill payment does not belong to business
- Bill payment is not in editable state None
404 Not Found Bill payment not found None

Clear all tags from a bill payment

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

r = requests.delete('https://coreapi.pexcard.com/v4/Bill/{billId}/Tags', headers = headers)

print(r.json())


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

fetch('https://coreapi.pexcard.com/v4/Bill/{billId}/Tags',
{
  method: 'DELETE',

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

DELETE /Bill/{billId}/Tags

Remove all tags from a bill payment request.
This is equivalent to calling PUT /Bill/{billId}/Tags with an empty tags array.

Parameters

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

Responses

Status Meaning Description Schema
200 OK Success None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Bill payment does not belong to business
- Bill payment is not in editable state None
404 Not Found Bill payment not found None

Add a note to a bill payment

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/Bill/{billId}/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/Bill/{billId}/Note', headers = headers)

print(r.json())

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

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

POST /Bill/{billId}/Note

Add a new note to a bill payment request.

Notes can be visible to cardholders or internal only.

Body parameter

{
  "Note": "",
  "VisibleToCardholder": false,
  "SystemGenerated": false
}

Parameters

Name In Type Required Description
billId path integer(int32) true Bill ID
Authorization header string true token {USERTOKEN}
body body Models.Bill.Request.AddBillPaymentNoteRequest true Note details

Example responses

200 Response

{
  "NoteId": 0
}

Responses

Status Meaning Description Schema
200 OK Success ExternalAPI.Controllers.BillNoteResponse
400 Bad Request Note text is required None
401 Unauthorized Token expired or does not exist None
403 Forbidden Bill payment does not belong to business None
404 Not Found Bill payment not found None

Update a note on a bill payment

Code samples

require 'rest-client'
require 'json'

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

result = RestClient.put 'https://coreapi.pexcard.com/v4/Bill/{billId}/Note/{noteId}',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.put('https://coreapi.pexcard.com/v4/Bill/{billId}/Note/{noteId}', headers = headers)

print(r.json())

const inputBody = '{
  "Note": "",
  "VisibleToCardholder": false,
  "SystemGenerated": false
}';
const headers = {
  'Content-Type':'application/json',
  'Authorization':'string'
};

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

PUT /Bill/{billId}/Note/{noteId}

Update an existing note on a bill payment request.

Body parameter

{
  "Note": "",
  "VisibleToCardholder": false,
  "SystemGenerated": false
}

Parameters

Name In Type Required Description
billId path integer(int32) true Bill ID
noteId path integer(int64) true Note ID
Authorization header string true token {USERTOKEN}
body body Models.Bill.Request.UpdateBillPaymentNoteRequest true Updated note details

Responses

Status Meaning Description Schema
200 OK Success None
400 Bad Request Note text is required None
401 Unauthorized Token expired or does not exist None
403 Forbidden Bill payment does not belong to business None
404 Not Found Bill payment or note not found None

Delete a note from a bill payment

Code samples

require 'rest-client'
require 'json'

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

result = RestClient.delete 'https://coreapi.pexcard.com/v4/Bill/{billId}/Note/{noteId}',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.delete('https://coreapi.pexcard.com/v4/Bill/{billId}/Note/{noteId}', headers = headers)

print(r.json())


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

fetch('https://coreapi.pexcard.com/v4/Bill/{billId}/Note/{noteId}',
{
  method: 'DELETE',

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

DELETE /Bill/{billId}/Note/{noteId}

Remove a note from a bill payment request.

Parameters

Name In Type Required Description
billId path integer(int32) true Bill ID
noteId path integer(int64) true Note ID
Authorization header string true token {USERTOKEN}

Responses

Status Meaning Description Schema
200 OK Success None
401 Unauthorized Token expired or does not exist None
403 Forbidden Bill payment does not belong to business None
404 Not Found Bill payment or note not found None

Upload attachments to a bill payment

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())

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

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

POST /Bill/{billId}/Attachment

Upload one or more attachments (receipts, invoices, etc.) to a bill payment request.

Supported file types: JPEG, PNG, PDF
Size limits: 10 MB per file, 50 MB total

Multiple files can be uploaded in a single request using multipart/form-data.

Body parameter

files: string

Parameters

Name In Type Required Description
billId path integer(int32) true Bill ID
Authorization header string true token {USERTOKEN}
body body object true none
» files body string(binary) true Files to upload (JPEG, PNG, PDF). Max 10 MB per file, 50 MB total.

Example responses

200 Response

{
  "Attachments": [
    {
      "Id": "",
      "FileName": "",
      "UploadedDate": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success - Returns list of uploaded attachments Models.Bill.Response.UploadAttachmentResponse
400 Bad Request - Invalid file type (must be JPEG, PNG, or PDF)
  • File too large (max 10 MB per file, 50 MB total)
  • Empty file
  • No files provided|None| |401|Unauthorized|Token expired or does not exist|None| |403|Forbidden|Bill payment does not belong to business|None| |404|Not Found|Bill payment not found|None|

Submit a bill payment request for approval

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

r = requests.post('https://coreapi.pexcard.com/v4/Bill/{billId}/Submit', headers = headers)

print(r.json())


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

fetch('https://coreapi.pexcard.com/v4/Bill/{billId}/Submit',
{
  method: 'POST',

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

POST /Bill/{billId}/Submit

Submit a draft bill payment request for approval.

This transitions the payment request from Draft status to the approval workflow.

Behavior depends on business configuration:
- If approval workflow is configured: Creates approval record, status → Pending
- If no approval workflow: Payment request is auto-approved and processed

Bills are not visible in PEX Dashboard until they have been submitted.

A bill payment must be submitted before it can be approved or rejected.

Parameters

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

Example responses

200 Response

{
  "BillId": 0,
  "MerchantName": "",
  "Amount": 0.1,
  "PaymentRequestStatus": "",
  "PaymentRequestStatusTrigger": "",
  "PaymentRequestType": "",
  "PayeeFundsDestinationType": "",
  "PurchaseDate": "",
  "PayoutDate": "",
  "MetadataId": 0,
  "CreatedDate": "",
  "HasPaymentError": false,
  "PayeePexId": 0,
  "BillPayment": {
    "BillDate": "",
    "DueDate": "",
    "BillRefNo": ""
  },
  "ApprovalDetails": {
    "ApprovalId": 0,
    "ApprovalStatus": "",
    "ApprovalWorkflowType": ""
  },
  "IsUserApprovalRestricted": false,
  "IsUserInApprovalRoute": false,
  "Attachments": [
    {
      "Id": "",
      "FileName": "",
      "UploadedDate": ""
    }
  ],
  "Tags": {
    "IsSplit": false,
    "Allocations": [
      {
        "Amount": 0.1,
        "Tags": [
          {
            "TagId": "",
            "TagName": "",
            "TagOptionValue": {},
            "TagOptionName": ""
          }
        ]
      }
    ]
  },
  "Notes": [
    {
      "Id": 0,
      "Note": "",
      "VisibleToCardholder": false,
      "SystemGenerated": false,
      "CreatedByUserId": 0,
      "CreatedByUser": "",
      "CreatedDateTime": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.Bill.Response.GetBillPaymentResponse
400 Bad Request - Bill payment is not in Draft status
- Bill payment has already been submitted None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Admin does not have permission
- Bill payment does not belong to business None
404 Not Found Bill payment not found None

Approve a bill payment request

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/Bill/{billId}/Approve',
  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/Bill/{billId}/Approve', headers = headers)

print(r.json())

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

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

POST /Bill/{billId}/Approve

Approve a bill payment request that is pending approval.

The user must be in the approval route for this payment request.

NOTE: This endpoint only records the approval decision.
After approval, call POST /Bill/{id}/Process to create the payment with a specified processing date.

Body parameter

{
  "Reason": ""
}

Parameters

Name In Type Required Description
billId path integer(int32) true Bill ID
Authorization header string true token {USERTOKEN}
body body Models.Bill.Request.ApproveBillPaymentRequest true Optional approval reason

Example responses

200 Response

{
  "BillId": 0,
  "MerchantName": "",
  "Amount": 0.1,
  "PaymentRequestStatus": "",
  "PaymentRequestStatusTrigger": "",
  "PaymentRequestType": "",
  "PayeeFundsDestinationType": "",
  "PurchaseDate": "",
  "PayoutDate": "",
  "MetadataId": 0,
  "CreatedDate": "",
  "HasPaymentError": false,
  "PayeePexId": 0,
  "BillPayment": {
    "BillDate": "",
    "DueDate": "",
    "BillRefNo": ""
  },
  "ApprovalDetails": {
    "ApprovalId": 0,
    "ApprovalStatus": "",
    "ApprovalWorkflowType": ""
  },
  "IsUserApprovalRestricted": false,
  "IsUserInApprovalRoute": false,
  "Attachments": [
    {
      "Id": "",
      "FileName": "",
      "UploadedDate": ""
    }
  ],
  "Tags": {
    "IsSplit": false,
    "Allocations": [
      {
        "Amount": 0.1,
        "Tags": [
          {
            "TagId": "",
            "TagName": "",
            "TagOptionValue": {},
            "TagOptionName": ""
          }
        ]
      }
    ]
  },
  "Notes": [
    {
      "Id": 0,
      "Note": "",
      "VisibleToCardholder": false,
      "SystemGenerated": false,
      "CreatedByUserId": 0,
      "CreatedByUser": "",
      "CreatedDateTime": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.Bill.Response.GetBillPaymentResponse
400 Bad Request - Bill payment is not in approvable state
- User is not in approval route None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Admin does not have permission
- Bill payment does not belong to business None
404 Not Found Bill payment not found None

Reject a bill payment request

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/Bill/{billId}/Reject',
  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/Bill/{billId}/Reject', headers = headers)

print(r.json())

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

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

POST /Bill/{billId}/Reject

Reject a bill payment request that is pending approval.

The user must be in the approval route for this payment request.
Rejected payments will not be processed for payment.

Body parameter

{
  "Note": ""
}

Parameters

Name In Type Required Description
billId path integer(int32) true Bill ID
Authorization header string true token {USERTOKEN}
body body Models.Bill.Request.RejectBillPaymentRequest true Optional rejection note

Example responses

200 Response

{
  "BillId": 0,
  "MerchantName": "",
  "Amount": 0.1,
  "PaymentRequestStatus": "",
  "PaymentRequestStatusTrigger": "",
  "PaymentRequestType": "",
  "PayeeFundsDestinationType": "",
  "PurchaseDate": "",
  "PayoutDate": "",
  "MetadataId": 0,
  "CreatedDate": "",
  "HasPaymentError": false,
  "PayeePexId": 0,
  "BillPayment": {
    "BillDate": "",
    "DueDate": "",
    "BillRefNo": ""
  },
  "ApprovalDetails": {
    "ApprovalId": 0,
    "ApprovalStatus": "",
    "ApprovalWorkflowType": ""
  },
  "IsUserApprovalRestricted": false,
  "IsUserInApprovalRoute": false,
  "Attachments": [
    {
      "Id": "",
      "FileName": "",
      "UploadedDate": ""
    }
  ],
  "Tags": {
    "IsSplit": false,
    "Allocations": [
      {
        "Amount": 0.1,
        "Tags": [
          {
            "TagId": "",
            "TagName": "",
            "TagOptionValue": {},
            "TagOptionName": ""
          }
        ]
      }
    ]
  },
  "Notes": [
    {
      "Id": 0,
      "Note": "",
      "VisibleToCardholder": false,
      "SystemGenerated": false,
      "CreatedByUserId": 0,
      "CreatedByUser": "",
      "CreatedDateTime": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.Bill.Response.GetBillPaymentResponse
400 Bad Request - Bill payment is not in rejectable state
- User is not in approval route None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Admin does not have permission
- Bill payment does not belong to business None
404 Not Found Bill payment not found None

Process an approved bill payment request

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/Bill/{billId}/Process',
  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/Bill/{billId}/Process', headers = headers)

print(r.json())

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

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

POST /Bill/{billId}/Process

Process an approved bill payment request to create the actual payment.

This endpoint should be called AFTER a bill payment has been approved
to trigger the creation of the actual payment (ACH transfer or card transaction).

Processing Date:
You can optionally specify a processing date for when the payment should be executed.
If not provided, the payment is processed immediately.

- Use DateTimeOffset format to explicitly specify timezone (e.g., "2025-12-25T10:00:00-05:00")
- Must be today or in the future (not in the past)
- Cannot be more than 1 year in the future

Workflow:
1. POST /Bill - Create bill payment
2. POST /Bill/{id}/Submit - Submit for approval
3. POST /Bill/{id}/Approve - Approve the bill
4. POST /Bill/{id}/Process - Process the payment (this endpoint)

Body parameter

{
  "ProcessingDate": ""
}

Parameters

Name In Type Required Description
billId path integer(int32) true Bill ID
Authorization header string true token {USERTOKEN}
body body Models.Bill.Request.ProcessBillPaymentRequest true Optional processing date with timezone

Example responses

200 Response

{
  "BillId": 0,
  "MerchantName": "",
  "Amount": 0.1,
  "PaymentRequestStatus": "",
  "PaymentRequestStatusTrigger": "",
  "PaymentRequestType": "",
  "PayeeFundsDestinationType": "",
  "PurchaseDate": "",
  "PayoutDate": "",
  "MetadataId": 0,
  "CreatedDate": "",
  "HasPaymentError": false,
  "PayeePexId": 0,
  "BillPayment": {
    "BillDate": "",
    "DueDate": "",
    "BillRefNo": ""
  },
  "ApprovalDetails": {
    "ApprovalId": 0,
    "ApprovalStatus": "",
    "ApprovalWorkflowType": ""
  },
  "IsUserApprovalRestricted": false,
  "IsUserInApprovalRoute": false,
  "Attachments": [
    {
      "Id": "",
      "FileName": "",
      "UploadedDate": ""
    }
  ],
  "Tags": {
    "IsSplit": false,
    "Allocations": [
      {
        "Amount": 0.1,
        "Tags": [
          {
            "TagId": "",
            "TagName": "",
            "TagOptionValue": {},
            "TagOptionName": ""
          }
        ]
      }
    ]
  },
  "Notes": [
    {
      "Id": 0,
      "Note": "",
      "VisibleToCardholder": false,
      "SystemGenerated": false,
      "CreatedByUserId": 0,
      "CreatedByUser": "",
      "CreatedDateTime": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.Bill.Response.GetBillPaymentResponse
400 Bad Request - Bill payment is not approved
- Bill payment has already been processed None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Admin does not have permission
- Bill payment does not belong to business None
404 Not Found Bill payment not found None

Payment : Payment infrastructure monitoring (read-only)

Get paged business payments filtered by provided parameters

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /Payments

Returns paged list of business payments filtered by provided parameters.

Parameters

Name In Type Required Description
Page query integer(int32) false Page index
Size query integer(int32) false Page size
PaymentStatuses query array[string] false Payment statuses list
PaymentStatusTriggers query array[string] false Payment status trigger list
OutboundAchCreationStartDate query string(date-time) false Outbound ACH creation start date
OutboundAchCreationEndDate query string(date-time) false Outbound ACH creation end date
ExpectedPaymentStartDate query string(date-time) false Expected payment start date
ExpectedPaymentEndDate query string(date-time) false Expected payment end date
Authorization header string true token {USERTOKEN}

Enumerated Values

Parameter Value
PaymentStatuses Draft
PaymentStatuses Pending
PaymentStatuses Closed
PaymentStatuses Exception
PaymentStatuses InProgress
PaymentStatusTriggers New
PaymentStatusTriggers OutboundAchCreationError
PaymentStatusTriggers Settling
PaymentStatusTriggers OutBoundAchCheckStatusError
PaymentStatusTriggers AwaitingOutboundCompletion
PaymentStatusTriggers Settled
PaymentStatusTriggers Returned
PaymentStatusTriggers Cancelled
PaymentStatusTriggers InProgress
PaymentStatusTriggers VirtualCardCreated
PaymentStatusTriggers VirtualCardEnsureSpendingRuleset
PaymentStatusTriggers VirtualCardDeliveryCreated
PaymentStatusTriggers VirtualCardDetailsRequestCreated
PaymentStatusTriggers VirtualCardCreationError
PaymentStatusTriggers VirtualCardEnsureSpendingRulesetError
PaymentStatusTriggers VirtualCardDeliveryCreationError
PaymentStatusTriggers VirtualCardDetailsRequestCreationError

Example responses

200 Response

{
  "Items": [
    {
      "PaymentId": 0,
      "PaymentStatus": "Draft",
      "PaymentStatusTrigger": "New",
      "PaymentTransferId": 0,
      "Amount": 0.1,
      "PlatformBusinessAccountId": 0,
      "PayeeBankAccountId": 0,
      "PayeeUserId": 0,
      "ProcessorRequestId": 0,
      "PayoutDate": "",
      "OutboundAchCreationDate": "",
      "ExpectedPaymentDate": ""
    }
  ],
  "PageInfo": {
    "Page": 0,
    "PageSize": 0,
    "TotalItems": 0
  }
}

Responses

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

Get business payment transfer by id

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /PaymentTransfers/{id}

Returns business payment transfer by id.

Parameters

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

Example responses

200 Response

{
  "PaymentTransferId": 0,
  "UserId": 0,
  "ScheduleOnOrAfterDate": "",
  "PayerPlatformBusinessAccountId": 0,
  "PayerBankAccountId": 0,
  "ProcessorRequestId": 0,
  "ApprovalId": 0,
  "PaymentTransferStatus": "Draft",
  "PaymentTransferStatusTrigger": "New",
  "PaymentRequests": [
    {
      "PaymentTransferPaymentRequestId": 0,
      "PaymentRequestId": 0,
      "Created": ""
    }
  ],
  "UpdatedByUserId": 0,
  "NoOfPaymentRequests": 0,
  "Amount": 0.1,
  "IsTransferToPayablesInitiated": false
}

Responses

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

Get business payment request by id

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /PaymentRequests/{id}

Returns business payment request by id.

Parameters

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

Example responses

200 Response

{
  "PaymentRequestId": 0,
  "PaymentRequestType": "Reimbursement",
  "PlatformBusinessAccountId": 0,
  "MerchantName": "",
  "Amount": 0.1,
  "PurchaseDate": "",
  "UserFirstName": "",
  "UserLastName": "",
  "Note": "",
  "PayeeBankAccountId": 0,
  "MetadataId": "",
  "MetadataRelationId": 0,
  "Metadata": {
    "Attachments": [
      {
        "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"
      }
    ],
    "TagAnswers": [
      {
        "FieldId": "",
        "Value": {},
        "Name": ""
      }
    ],
    "Notes": [
      {
        "NoteId": 0,
        "NoteText": "",
        "UserName": "",
        "UserFirstName": "",
        "UserMiddleName": "",
        "UserLastName": "",
        "NoteDate": "",
        "UpdatedUserName": "",
        "UpdatedUserFirstName": "",
        "UpdatedUserMiddleName": "",
        "UpdatedUserLastName": "",
        "UpdatedDate": "",
        "SystemGenerated": false
      }
    ]
  },
  "ApprovalId": 0,
  "PaymentRequestStatus": "Draft",
  "PaymentRequestStatusTrigger": "New",
  "PaymentId": 0,
  "PayoutDate": "",
  "CreatedByUserId": 0,
  "UpdatedByUserId": 0
}

Responses

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

Vendor : Manage vendors for bill pay and payment operations

Get a list of vendors

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /Vendor

Retrieve a paginated list of vendors with optional filtering.

Filtering:
- Cardholder account ID
- Vendor status (Onboarded, Pending, Closed)
- Vendor status trigger

Pagination:
- PageIndex: Page number (1-based, default: 1)
- PageSize: Results per page (1-1000, default: 10)

Example usage:
- /Vendor?cardholderAcctId=12345
- /Vendor?pageIndex=2&pageSize=20
- /Vendor?vendorStatuses=Onboarded
- /Vendor?vendorStatuses=Onboarded&vendorStatuses=Pending
- /Vendor?cardholderAcctId=12345&vendorStatuses=Onboarded&pageIndex=1&pageSize=10

Parameters

Name In Type Required Description
CardholderAcctId query integer(int32) false Optional filter by cardholder account ID (must be within valid 32-bit integer range: -2,147,483,648 to 2,147,483,647)
VendorStatuses query array[string] false Optional filter by vendor statuses
VendorStatusTriggers query array[string] false Optional filter by vendor status triggers
PageIndex query integer(int32) false Page index (1-based)
PageSize query integer(int32) false Page size
Authorization header string true token {USERTOKEN}

Enumerated Values

Parameter Value
VendorStatuses Draft
VendorStatuses Pending
VendorStatuses Onboarded
VendorStatuses Closed
VendorStatusTriggers New
VendorStatusTriggers Submitted
VendorStatusTriggers Active
VendorStatusTriggers Inactive
VendorStatusTriggers Rejected
VendorStatusTriggers Offboarded

Example responses

200 Response

{
  "Vendors": [
    {
      "VendorId": 0,
      "VendorName": "",
      "IconUrl": "",
      "VendorStatus": "Draft",
      "VendorStatusTrigger": "New",
      "CreatedByUserId": 0,
      "Owner": ""
    }
  ],
  "TotalCount": 0
}

Responses

Status Meaning Description Schema
200 OK Success Models.Vendor.Response.GetVendorsResponse
400 Bad Request Invalid query parameters None
401 Unauthorized Token expired or does not exist None

Create a new vendor

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

print(r.json())

const inputBody = '{
  "VendorName": "",
  "EmailForRemittance": "",
  "WebSite": "",
  "CustomId": "",
  "TaxId": "",
  "Note": "",
  "VendorAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "VendorContact": {
    "FirstName": "",
    "LastName": "",
    "PhoneNumber": "",
    "Email": ""
  },
  "MerchantId": 0,
  "SendNotification": false,
  "VendorCardPaymentEnabled": false,
  "AchPaymentEnabled": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

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

POST /Vendor

Create a new vendor in the system.

Required fields:
- VendorName

Optional fields include contact information, address, and payment settings.

Note: To add ACH payment capability, use POST /Vendor/{id}/BankAccount after creating the vendor.

Body parameter

{
  "VendorName": "",
  "EmailForRemittance": "",
  "WebSite": "",
  "CustomId": "",
  "TaxId": "",
  "Note": "",
  "VendorAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "VendorContact": {
    "FirstName": "",
    "LastName": "",
    "PhoneNumber": "",
    "Email": ""
  },
  "MerchantId": 0,
  "SendNotification": false,
  "VendorCardPaymentEnabled": false,
  "AchPaymentEnabled": false
}

Parameters

Name In Type Required Description
Authorization header string true token {USERTOKEN}
body body Models.Vendor.Request.CreateVendorRequest true Vendor creation details

Example responses

200 Response

{
  "VendorId": 0,
  "VendorName": "",
  "EmailForRemittance": "",
  "Website": "",
  "LogoUrl": "",
  "VendorStatus": "Draft",
  "VendorStatusTrigger": "New",
  "VendorCardPaymentEnabled": false,
  "AchPaymentEnabled": false,
  "UpdatedDate": "",
  "CreatedDate": "",
  "VendorAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "VendorContact": {
    "FirstName": "",
    "LastName": "",
    "PhoneNumber": "",
    "Email": ""
  },
  "CustomId": "",
  "Note": "",
  "Documents": [
    {
      "DocumentId": 0,
      "UploadedByUserId": 0,
      "DateCreated": "",
      "FileName": "",
      "ContentType": "",
      "IsDeleted": false,
      "DeletedByUserId": 0,
      "DateDeleted": ""
    }
  ],
  "VendorCards": [
    {
      "CardholderAcctId": 0,
      "CardNumber4Digits": "",
      "CardStatus": "",
      "FirstName": "",
      "LastName": "",
      "IsDefault": false
    }
  ],
  "BankAccounts": [
    {
      "VendorId": 0,
      "BankAccountId": 0,
      "IsActive": false,
      "DateCreated": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.Vendor.Response.GetVendorResponse
400 Bad Request - The VendorName field is required
  • Invalid email format
  • Invalid field length|None| |401|Unauthorized|Token expired or does not exist|None| |403|Forbidden|Admin does not have permission|None|

Get a single vendor by ID

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

GET /Vendor/{id}

Retrieve detailed information about a specific vendor.

Returns vendor information including:
- Basic details (name, contact, address)
- Payment settings (vendor card, ACH)
- Status and workflow information

Parameters

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

Example responses

200 Response

{
  "VendorId": 0,
  "VendorName": "",
  "EmailForRemittance": "",
  "Website": "",
  "LogoUrl": "",
  "VendorStatus": "Draft",
  "VendorStatusTrigger": "New",
  "VendorCardPaymentEnabled": false,
  "AchPaymentEnabled": false,
  "UpdatedDate": "",
  "CreatedDate": "",
  "VendorAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "VendorContact": {
    "FirstName": "",
    "LastName": "",
    "PhoneNumber": "",
    "Email": ""
  },
  "CustomId": "",
  "Note": "",
  "Documents": [
    {
      "DocumentId": 0,
      "UploadedByUserId": 0,
      "DateCreated": "",
      "FileName": "",
      "ContentType": "",
      "IsDeleted": false,
      "DeletedByUserId": 0,
      "DateDeleted": ""
    }
  ],
  "VendorCards": [
    {
      "CardholderAcctId": 0,
      "CardNumber4Digits": "",
      "CardStatus": "",
      "FirstName": "",
      "LastName": "",
      "IsDefault": false
    }
  ],
  "BankAccounts": [
    {
      "VendorId": 0,
      "BankAccountId": 0,
      "IsActive": false,
      "DateCreated": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.Vendor.Response.GetVendorResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden Vendor does not belong to business None
404 Not Found Vendor not found None

Update an existing vendor

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

print(r.json())

const inputBody = '{
  "VendorName": "",
  "EmailForRemittance": "",
  "WebSite": "",
  "CustomId": "",
  "TaxId": "",
  "Note": "",
  "VendorAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "VendorContact": {
    "FirstName": "",
    "LastName": "",
    "PhoneNumber": "",
    "Email": ""
  },
  "VendorCardPaymentEnabled": false
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'string'
};

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

PUT /Vendor/{id}

Update vendor information including contact details, address, and payment settings.

All fields in the request are optional - only provided fields will be updated.

Body parameter

{
  "VendorName": "",
  "EmailForRemittance": "",
  "WebSite": "",
  "CustomId": "",
  "TaxId": "",
  "Note": "",
  "VendorAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "VendorContact": {
    "FirstName": "",
    "LastName": "",
    "PhoneNumber": "",
    "Email": ""
  },
  "VendorCardPaymentEnabled": false
}

Parameters

Name In Type Required Description
id path integer(int32) true Vendor ID to update
Authorization header string true token {USERTOKEN}
body body Models.Vendor.Request.UpdateVendorRequest true Updated vendor details

Example responses

200 Response

{
  "VendorId": 0,
  "VendorName": "",
  "EmailForRemittance": "",
  "Website": "",
  "LogoUrl": "",
  "VendorStatus": "Draft",
  "VendorStatusTrigger": "New",
  "VendorCardPaymentEnabled": false,
  "AchPaymentEnabled": false,
  "UpdatedDate": "",
  "CreatedDate": "",
  "VendorAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "VendorContact": {
    "FirstName": "",
    "LastName": "",
    "PhoneNumber": "",
    "Email": ""
  },
  "CustomId": "",
  "Note": "",
  "Documents": [
    {
      "DocumentId": 0,
      "UploadedByUserId": 0,
      "DateCreated": "",
      "FileName": "",
      "ContentType": "",
      "IsDeleted": false,
      "DeletedByUserId": 0,
      "DateDeleted": ""
    }
  ],
  "VendorCards": [
    {
      "CardholderAcctId": 0,
      "CardNumber4Digits": "",
      "CardStatus": "",
      "FirstName": "",
      "LastName": "",
      "IsDefault": false
    }
  ],
  "BankAccounts": [
    {
      "VendorId": 0,
      "BankAccountId": 0,
      "IsActive": false,
      "DateCreated": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.Vendor.Response.GetVendorResponse
400 Bad Request - Invalid email format
- Invalid field length None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Vendor does not belong to business
- Admin does not have permission None
404 Not Found Vendor not found None

Update vendor status

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

print(r.json())

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

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

PUT /Vendor/{id}/Status

Update the status of a vendor.

Valid status values for this endpoint:
- Active - Activate the vendor
- Inactive - Deactivate the vendor
- Offboarded - Remove vendor from system

Note: To reject a vendor, use the dedicated /vendor/{id}/Reject endpoint.

Body parameter

{
  "NewStatus": "Active"
}

Parameters

Name In Type Required Description
id path integer(int32) true Vendor ID
Authorization header string true token {USERTOKEN}
body body Models.Vendor.Request.UpdateVendorStatusRequest true New status to set

Example responses

200 Response

{
  "VendorId": 0,
  "VendorName": "",
  "EmailForRemittance": "",
  "Website": "",
  "LogoUrl": "",
  "VendorStatus": "Draft",
  "VendorStatusTrigger": "New",
  "VendorCardPaymentEnabled": false,
  "AchPaymentEnabled": false,
  "UpdatedDate": "",
  "CreatedDate": "",
  "VendorAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "VendorContact": {
    "FirstName": "",
    "LastName": "",
    "PhoneNumber": "",
    "Email": ""
  },
  "CustomId": "",
  "Note": "",
  "Documents": [
    {
      "DocumentId": 0,
      "UploadedByUserId": 0,
      "DateCreated": "",
      "FileName": "",
      "ContentType": "",
      "IsDeleted": false,
      "DeletedByUserId": 0,
      "DateDeleted": ""
    }
  ],
  "VendorCards": [
    {
      "CardholderAcctId": 0,
      "CardNumber4Digits": "",
      "CardStatus": "",
      "FirstName": "",
      "LastName": "",
      "IsDefault": false
    }
  ],
  "BankAccounts": [
    {
      "VendorId": 0,
      "BankAccountId": 0,
      "IsActive": false,
      "DateCreated": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.Vendor.Response.GetVendorResponse
400 Bad Request - The NewStatus field is required
  • Invalid status transition
  • Cannot change status while vendor has pending approval (use /Approve or /Reject endpoints)|None| |401|Unauthorized|Token expired or does not exist|None| |403|Forbidden|- Vendor does not belong to business
  • Admin does not have permission|None| |404|Not Found|Vendor not found|None|

Approve a vendor

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

POST /Vendor/{id}/Approve

Approve a pending vendor, making it active and available for use.

This endpoint is typically used in approval workflows where vendors need to be reviewed before activation.

Parameters

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

Example responses

200 Response

{
  "VendorId": 0,
  "VendorName": "",
  "EmailForRemittance": "",
  "Website": "",
  "LogoUrl": "",
  "VendorStatus": "Draft",
  "VendorStatusTrigger": "New",
  "VendorCardPaymentEnabled": false,
  "AchPaymentEnabled": false,
  "UpdatedDate": "",
  "CreatedDate": "",
  "VendorAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "VendorContact": {
    "FirstName": "",
    "LastName": "",
    "PhoneNumber": "",
    "Email": ""
  },
  "CustomId": "",
  "Note": "",
  "Documents": [
    {
      "DocumentId": 0,
      "UploadedByUserId": 0,
      "DateCreated": "",
      "FileName": "",
      "ContentType": "",
      "IsDeleted": false,
      "DeletedByUserId": 0,
      "DateDeleted": ""
    }
  ],
  "VendorCards": [
    {
      "CardholderAcctId": 0,
      "CardNumber4Digits": "",
      "CardStatus": "",
      "FirstName": "",
      "LastName": "",
      "IsDefault": false
    }
  ],
  "BankAccounts": [
    {
      "VendorId": 0,
      "BankAccountId": 0,
      "IsActive": false,
      "DateCreated": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.Vendor.Response.GetVendorResponse
400 Bad Request - Vendor is not in a state that can be approved None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Vendor does not belong to business
  • User does not have approval permissions
  • Admin does not have permission|None| |404|Not Found|Vendor not found|None|

Reject a vendor

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

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

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

POST /Vendor/{id}/Reject

Reject a pending vendor.

This endpoint is typically used in approval workflows to decline vendor creation or activation.

Parameters

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

Example responses

200 Response

{
  "VendorId": 0,
  "VendorName": "",
  "EmailForRemittance": "",
  "Website": "",
  "LogoUrl": "",
  "VendorStatus": "Draft",
  "VendorStatusTrigger": "New",
  "VendorCardPaymentEnabled": false,
  "AchPaymentEnabled": false,
  "UpdatedDate": "",
  "CreatedDate": "",
  "VendorAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "VendorContact": {
    "FirstName": "",
    "LastName": "",
    "PhoneNumber": "",
    "Email": ""
  },
  "CustomId": "",
  "Note": "",
  "Documents": [
    {
      "DocumentId": 0,
      "UploadedByUserId": 0,
      "DateCreated": "",
      "FileName": "",
      "ContentType": "",
      "IsDeleted": false,
      "DeletedByUserId": 0,
      "DateDeleted": ""
    }
  ],
  "VendorCards": [
    {
      "CardholderAcctId": 0,
      "CardNumber4Digits": "",
      "CardStatus": "",
      "FirstName": "",
      "LastName": "",
      "IsDefault": false
    }
  ],
  "BankAccounts": [
    {
      "VendorId": 0,
      "BankAccountId": 0,
      "IsActive": false,
      "DateCreated": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.Vendor.Response.GetVendorResponse
400 Bad Request - Vendor is not in a state that can be rejected None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Vendor does not belong to business
  • User does not have approval permissions
  • Admin does not have permission|None| |404|Not Found|Vendor not found|None|

Upload and add a document to a vendor

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())

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

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

POST /Vendor/{id}/Document

Upload a document and attach it to a vendor.

The document is uploaded to the Business Management Service and then associated with the vendor.
Supported file types: PDF, JPG, JPEG, PNG
Maximum file size: 10 MB

The userId and audit information are automatically captured from the authentication token and request context.

Body parameter

file: string

Parameters

Name In Type Required Description
id path integer(int32) true Vendor ID
Authorization header string true token {USERTOKEN}
body body object true none
» file body string(binary) true Document to upload (PDF, JPG, JPEG, PNG). Max 10 MB.

Example responses

200 Response

{
  "VendorId": 0,
  "VendorName": "",
  "EmailForRemittance": "",
  "Website": "",
  "LogoUrl": "",
  "VendorStatus": "Draft",
  "VendorStatusTrigger": "New",
  "VendorCardPaymentEnabled": false,
  "AchPaymentEnabled": false,
  "UpdatedDate": "",
  "CreatedDate": "",
  "VendorAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "VendorContact": {
    "FirstName": "",
    "LastName": "",
    "PhoneNumber": "",
    "Email": ""
  },
  "CustomId": "",
  "Note": "",
  "Documents": [
    {
      "DocumentId": 0,
      "UploadedByUserId": 0,
      "DateCreated": "",
      "FileName": "",
      "ContentType": "",
      "IsDeleted": false,
      "DeletedByUserId": 0,
      "DateDeleted": ""
    }
  ],
  "VendorCards": [
    {
      "CardholderAcctId": 0,
      "CardNumber4Digits": "",
      "CardStatus": "",
      "FirstName": "",
      "LastName": "",
      "IsDefault": false
    }
  ],
  "BankAccounts": [
    {
      "VendorId": 0,
      "BankAccountId": 0,
      "IsActive": false,
      "DateCreated": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.Vendor.Response.GetVendorResponse
400 Bad Request - Request must be multipart/form-data
  • No file provided
  • File size exceeds maximum allowed size (10 MB)
  • File type not allowed|None| |401|Unauthorized|Token expired or does not exist|None| |403|Forbidden|- Vendor does not belong to business
  • Admin does not have permission|None| |404|Not Found|Vendor not found|None|

Delete a document from a vendor

Code samples

require 'rest-client'
require 'json'

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

result = RestClient.delete 'https://coreapi.pexcard.com/v4/Vendor/{id}/Document/{documentId}',
  params: {
  }, headers: headers

p JSON.parse(result)

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

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

print(r.json())


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

fetch('https://coreapi.pexcard.com/v4/Vendor/{id}/Document/{documentId}',
{
  method: 'DELETE',

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

DELETE /Vendor/{id}/Document/{documentId}

Remove the association between a vendor and a document.

This marks the document association as deleted but does not delete the actual document from the system.
The userId is automatically captured from the authentication token.

Parameters

Name In Type Required Description
id path integer(int32) true Vendor ID
documentId path integer(int32) true Document ID to remove from vendor
Authorization header string true token {USERTOKEN}

Example responses

200 Response

{
  "VendorId": 0,
  "VendorName": "",
  "EmailForRemittance": "",
  "Website": "",
  "LogoUrl": "",
  "VendorStatus": "Draft",
  "VendorStatusTrigger": "New",
  "VendorCardPaymentEnabled": false,
  "AchPaymentEnabled": false,
  "UpdatedDate": "",
  "CreatedDate": "",
  "VendorAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "VendorContact": {
    "FirstName": "",
    "LastName": "",
    "PhoneNumber": "",
    "Email": ""
  },
  "CustomId": "",
  "Note": "",
  "Documents": [
    {
      "DocumentId": 0,
      "UploadedByUserId": 0,
      "DateCreated": "",
      "FileName": "",
      "ContentType": "",
      "IsDeleted": false,
      "DeletedByUserId": 0,
      "DateDeleted": ""
    }
  ],
  "VendorCards": [
    {
      "CardholderAcctId": 0,
      "CardNumber4Digits": "",
      "CardStatus": "",
      "FirstName": "",
      "LastName": "",
      "IsDefault": false
    }
  ],
  "BankAccounts": [
    {
      "VendorId": 0,
      "BankAccountId": 0,
      "IsActive": false,
      "DateCreated": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.Vendor.Response.GetVendorResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden - Vendor does not belong to business
- Admin does not have permission None
404 Not Found Vendor or document not found None

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

print(r.json())

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

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

POST /Vendor/{id}/Card

Associate an existing cardholder account (card) with a vendor to enable bill payments using that card.

This is different from the /VendorCard endpoints which create NEW single-use virtual cards.
This endpoint links an EXISTING cardholder account to a vendor for recurring bill payments.

Use cases:
- Link a cardholder's card to a vendor for automated bill payment
- Associate multiple payment methods with a single vendor
- Set up vendor payment preferences

Body parameter

{
  "CardholderAcctId": 1
}
Name In Type Required Description
id path integer(int32) true Vendor ID
Authorization header string true token {USERTOKEN}
body body Models.Vendor.Request.AddVendorCardRequest true Card association request

Example responses

200 Response

{
  "VendorId": 0,
  "VendorName": "",
  "EmailForRemittance": "",
  "Website": "",
  "LogoUrl": "",
  "VendorStatus": "Draft",
  "VendorStatusTrigger": "New",
  "VendorCardPaymentEnabled": false,
  "AchPaymentEnabled": false,
  "UpdatedDate": "",
  "CreatedDate": "",
  "VendorAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "VendorContact": {
    "FirstName": "",
    "LastName": "",
    "PhoneNumber": "",
    "Email": ""
  },
  "CustomId": "",
  "Note": "",
  "Documents": [
    {
      "DocumentId": 0,
      "UploadedByUserId": 0,
      "DateCreated": "",
      "FileName": "",
      "ContentType": "",
      "IsDeleted": false,
      "DeletedByUserId": 0,
      "DateDeleted": ""
    }
  ],
  "VendorCards": [
    {
      "CardholderAcctId": 0,
      "CardNumber4Digits": "",
      "CardStatus": "",
      "FirstName": "",
      "LastName": "",
      "IsDefault": false
    }
  ],
  "BankAccounts": [
    {
      "VendorId": 0,
      "BankAccountId": 0,
      "IsActive": false,
      "DateCreated": ""
    }
  ]
}
Status Meaning Description Schema
200 OK Success Models.Vendor.Response.GetVendorResponse
400 Bad Request - The CardholderAcctId field is required
- CardholderAcctId must be greater than 0 None
401 Unauthorized Token expired or does not exist None
403 Forbidden - Vendor does not belong to business
- Admin does not have permission None
404 Not Found Vendor not found None

Update vendor card association (set as default payment method)

Code samples

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

print(r.json())


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

fetch('https://coreapi.pexcard.com/v4/Vendor/{id}/Card/{cardholderAcctId}',
{
  method: 'PUT',

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

PUT /Vendor/{id}/Card/{cardholderAcctId}

Update the vendor card association, typically used to set a card as the default payment method.

This endpoint updates an existing card-to-vendor association.

Parameters

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

Example responses

200 Response

{
  "VendorId": 0,
  "VendorName": "",
  "EmailForRemittance": "",
  "Website": "",
  "LogoUrl": "",
  "VendorStatus": "Draft",
  "VendorStatusTrigger": "New",
  "VendorCardPaymentEnabled": false,
  "AchPaymentEnabled": false,
  "UpdatedDate": "",
  "CreatedDate": "",
  "VendorAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "VendorContact": {
    "FirstName": "",
    "LastName": "",
    "PhoneNumber": "",
    "Email": ""
  },
  "CustomId": "",
  "Note": "",
  "Documents": [
    {
      "DocumentId": 0,
      "UploadedByUserId": 0,
      "DateCreated": "",
      "FileName": "",
      "ContentType": "",
      "IsDeleted": false,
      "DeletedByUserId": 0,
      "DateDeleted": ""
    }
  ],
  "VendorCards": [
    {
      "CardholderAcctId": 0,
      "CardNumber4Digits": "",
      "CardStatus": "",
      "FirstName": "",
      "LastName": "",
      "IsDefault": false
    }
  ],
  "BankAccounts": [
    {
      "VendorId": 0,
      "BankAccountId": 0,
      "IsActive": false,
      "DateCreated": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.Vendor.Response.GetVendorResponse
401 Unauthorized Token expired or does not exist None
403 Forbidden - Vendor does not belong to business
- Admin does not have permission None
404 Not Found Vendor or card association not found None

Add an ACH bank account to a vendor for bill payment

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

print(r.json())

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

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

POST /Vendor/{id}/BankAccount

Add a bank account to a vendor to enable ACH payments for bills.

Required fields:
- BankName
- BankAccountNumber
- BankRoutingNumber (9 digits)

Bank account information is securely stored for ACH bill payments.

Body parameter

{
  "BankName": "",
  "BankAccountNumber": "",
  "BankRoutingNumber": ""
}

Parameters

Name In Type Required Description
id path integer(int32) true Vendor ID
Authorization header string true token {USERTOKEN}
body body Models.Vendor.Request.AddVendorBankAccountRequest true Bank account details

Example responses

200 Response

{
  "VendorId": 0,
  "VendorName": "",
  "EmailForRemittance": "",
  "Website": "",
  "LogoUrl": "",
  "VendorStatus": "Draft",
  "VendorStatusTrigger": "New",
  "VendorCardPaymentEnabled": false,
  "AchPaymentEnabled": false,
  "UpdatedDate": "",
  "CreatedDate": "",
  "VendorAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "VendorContact": {
    "FirstName": "",
    "LastName": "",
    "PhoneNumber": "",
    "Email": ""
  },
  "CustomId": "",
  "Note": "",
  "Documents": [
    {
      "DocumentId": 0,
      "UploadedByUserId": 0,
      "DateCreated": "",
      "FileName": "",
      "ContentType": "",
      "IsDeleted": false,
      "DeletedByUserId": 0,
      "DateDeleted": ""
    }
  ],
  "VendorCards": [
    {
      "CardholderAcctId": 0,
      "CardNumber4Digits": "",
      "CardStatus": "",
      "FirstName": "",
      "LastName": "",
      "IsDefault": false
    }
  ],
  "BankAccounts": [
    {
      "VendorId": 0,
      "BankAccountId": 0,
      "IsActive": false,
      "DateCreated": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.Vendor.Response.GetVendorResponse
400 Bad Request - The BankName field is required
  • The BankAccountNumber field is required
  • The BankRoutingNumber field is required
  • BankRoutingNumber must be exactly 9 digits|None| |401|Unauthorized|Token expired or does not exist|None| |403|Forbidden|- Vendor does not belong to business
  • Admin does not have permission|None| |404|Not Found|Vendor not found|None|

Update an ACH bank account associated with a vendor

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/Vendor/{id}/BankAccount/{bankAccountId}',
  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/Vendor/{id}/BankAccount/{bankAccountId}', headers = headers)

print(r.json())

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

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

PUT /Vendor/{id}/BankAccount/{bankAccountId}

Update the bank account details for a vendor's ACH payment method.

Required fields:
- BankName
- BankAccountNumber
- BankRoutingNumber (9 digits)

All bank account information will be replaced with the provided values.

Body parameter

{
  "BankName": "",
  "BankAccountNumber": "",
  "BankRoutingNumber": ""
}

Parameters

Name In Type Required Description
id path integer(int32) true Vendor ID
bankAccountId path integer(int64) true Bank Account ID to update
Authorization header string true token {USERTOKEN}
body body Models.Vendor.Request.UpdateVendorBankAccountRequest true Updated bank account details

Example responses

200 Response

{
  "VendorId": 0,
  "VendorName": "",
  "EmailForRemittance": "",
  "Website": "",
  "LogoUrl": "",
  "VendorStatus": "Draft",
  "VendorStatusTrigger": "New",
  "VendorCardPaymentEnabled": false,
  "AchPaymentEnabled": false,
  "UpdatedDate": "",
  "CreatedDate": "",
  "VendorAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "VendorContact": {
    "FirstName": "",
    "LastName": "",
    "PhoneNumber": "",
    "Email": ""
  },
  "CustomId": "",
  "Note": "",
  "Documents": [
    {
      "DocumentId": 0,
      "UploadedByUserId": 0,
      "DateCreated": "",
      "FileName": "",
      "ContentType": "",
      "IsDeleted": false,
      "DeletedByUserId": 0,
      "DateDeleted": ""
    }
  ],
  "VendorCards": [
    {
      "CardholderAcctId": 0,
      "CardNumber4Digits": "",
      "CardStatus": "",
      "FirstName": "",
      "LastName": "",
      "IsDefault": false
    }
  ],
  "BankAccounts": [
    {
      "VendorId": 0,
      "BankAccountId": 0,
      "IsActive": false,
      "DateCreated": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.Vendor.Response.GetVendorResponse
400 Bad Request - The BankName field is required
  • The BankAccountNumber field is required
  • The BankRoutingNumber field is required
  • BankRoutingNumber must be exactly 9 digits|None| |401|Unauthorized|Token expired or does not exist|None| |403|Forbidden|- Vendor does not belong to business
  • Admin does not have permission|None| |404|Not Found|- Vendor not found
  • Bank account not found for vendor|None|

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": ""
      },
      "GroupId": 0,
      "SpendingRulesetsId": 0,
      "AutoActivation": false,
      "FundCardAmount": 0.1,
      "CardDataWebhookURL": "",
      "Status": "",
      "Errors": [
        "string"
      ],
      "ErrorMessage": ""
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Success Models.VendorCards.Response.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,
      "InternationalAllowed": false,
      "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,
      "InternationalAllowed": false,
      "AutoActivation": false,
      "FundingType": "InitialFunding",
      "FundCardAmount": 0.1,
      "CardDataWebhookURL": ""
    }
  ]
}

Parameters

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

Example responses

200 Response

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

Responses

Status Meaning Description Schema
200 OK Success Models.VendorCards.Response.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 Models.VendorCards.Request.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

Models.Token.TokenData

{
  "AppId": "",
  "BusinessAccountId": 0,
  "BusinessAccountName": "",
  "CardholderAccountId": 0,
  "UserType": "Cardholder",
  "Username": "",
  "Token": "",
  "TokenExpiration": ""
}

TokenData

Properties

Name Type Required Restrictions Description
AppId string true none AppId associated with the token
BusinessAccountId integer(int32) true none BusinessAccountId associated with the token
BusinessAccountName string true none BusinessName associated with the token
CardholderAccountId integer(int32) true none none
UserType string true none UserType associated with the token
Username string true none Username associated with the token
Token string true none 3scale access token
TokenExpiration string(date-time) true none Time token will expire

Enumerated Values

Property Value
UserType Cardholder
UserType Admin

Models.Token.GetTokenResponse

{
  "Tokens": [
    {
      "AppId": "",
      "BusinessAccountId": 0,
      "BusinessAccountName": "",
      "CardholderAccountId": 0,
      "UserType": "Cardholder",
      "Username": "",
      "Token": "",
      "TokenExpiration": ""
    }
  ]
}

GetTokenResponse

Properties

Name Type Required Restrictions Description
Tokens [Models.Token.TokenData] false none List of three scale tokens

Models.Token.PostTokenRequest

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

PostTokenRequest

Properties

Name Type Required Restrictions Description
Username string true none Admin username
Password string true none Admin password
UserAgentString string false none none

Models.Token.PostTokenResponse

{
  "Token": ""
}

PostTokenResponse

Properties

Name Type Required Restrictions Description
Token string true none The generated token

Models.Token.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

Models.Token.GetAllTokensResponse

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

GetAllTokensResponse

Properties

Name Type Required Restrictions Description
Tokens [Models.AccessToken] false none List of three scale tokens

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

Models.SetCardholderPinRequest

{
  "Pin": ""
}

SetCardholderPinRequest

Properties

Name Type Required Restrictions Description
Pin string true none 4 digit PIN

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

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

Models.Cards.CardOrderResponse

{
  "CardOrderId": 0,
  "OrderDateTime": "",
  "UserName": "",
  "BusinessAccountId": 0,
  "Cards": [
    {
      "AcctId": 0,
      "Status": "",
      "FirstName": "",
      "MiddleName": "",
      "LastName": "",
      "DateOfBirth": "",
      "HomePhone": "",
      "MobilePhone": "",
      "Email": "",
      "HomeAddress": {
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": ""
      },
      "ShippingAddress": {
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": ""
      },
      "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 [Models.Cards.CardHolderCardResponse] false none Cards

Models.Cards.CardHolderCardResponse

{
  "AcctId": 0,
  "Status": "",
  "FirstName": "",
  "MiddleName": "",
  "LastName": "",
  "DateOfBirth": "",
  "HomePhone": "",
  "MobilePhone": "",
  "Email": "",
  "HomeAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "ShippingAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "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 Repository.Models.Address.Address false none none
ShippingAddress Repository.Models.Address.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 [Models.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

Repository.Models.Address.Address

{
  "AddressLine1": "",
  "AddressLine2": "",
  "City": "",
  "State": "",
  "PostalCode": ""
}

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

Models.Error

{
  "Code": "",
  "Message": ""
}

Error

Properties

Name Type Required Restrictions Description
Code string false none Error Code
Message string false none Error Message

Models.Cards.Request.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)

Models.Cards.Response.GetCardOrderResponse

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

GetCardOrderResponse

Properties

Name Type Required Restrictions Description
CardOrders [Models.Cards.Response.SingleCardOrderResponse] false none List of card order objects

Models.Cards.Response.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

Models.UpdateProfileRequest

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

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 Repository.Models.Address.Address true none none
NormalizeShippingAddress boolean false none none
ShippingAddress Repository.Models.Address.AddressContact false none none

Repository.Models.Address.AddressContact

{
  "ContactName": "",
  "AddressLine1": "",
  "AddressLine2": "",
  "City": "",
  "State": "",
  "PostalCode": ""
}

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

Models.GetProfileResponse

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

GetProfileResponse

Properties

Name Type Required Restrictions Description
AccountId integer(int32) false none Card account ID. 0 will be returned as the Account ID for cards that are pending
UserId integer(int64) false none none
AccountStatus string false none Status of the account
FirstName string false none Cardholder first name
MiddleName string false none Cardholder middle name
LastName string false 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 Repository.Models.Address.AddressContact false none none
Phone string false none Phone number
ShippingAddress Repository.Models.Address.AddressContact false none none
ShippingPhone string false none Shipping Phone number
DateOfBirth string(date-time) false none Cardholder date of birth
UserName string false none Cardholder username
Email string false 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

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

Models.Cards.CreateCardAsyncRequest

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

CreateCardAsyncRequest

Properties

Name Type Required Restrictions Description
Cards [Models.Cards.CreateCardRequest] false none New Card List
NormalizeHomeAddress boolean false none Normalize Home Address
NormalizeShippingAddress boolean false none Normalize Shipping Address

Models.Cards.CreateCardRequest

{
  "Phone": "",
  "ShippingPhone": "",
  "ShippingMethod": "Invalid",
  "DateOfBirth": "",
  "Email": "",
  "GroupId": 0,
  "RulesetId": 0,
  "VirtualCard": false,
  "CustomId": "",
  "InternationalAllowed": false,
  "FirstName": "",
  "LastName": "",
  "NormalizeProfileAddress": false,
  "ProfileAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "NormalizeShippingAddress": false,
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  }
}

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 Cardholder 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)
InternationalAllowed boolean false none Is international spend allowed
FirstName string true none none
LastName string true none none
NormalizeProfileAddress boolean false none none
ProfileAddress Repository.Models.Address.Address true none none
NormalizeShippingAddress boolean false none none
ShippingAddress Repository.Models.Address.AddressContact false none none

Enumerated Values

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

Models.Cards.CreateCardAsyncResponse

{
  "CardOrderId": 0
}

CreateCardAsyncResponse

Properties

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

Models.Cards.Request.PhysicalEmbossingJobRequest

{
  "ShippingPhone": "",
  "ShippingMethod": "Invalid",
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "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 Repository.Models.Address.AddressContact true none none
Accounts [integer] true none Accounts

Enumerated Values

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

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

Models.Cards.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.

Models.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 CoreCardAPI.Common.SpendRules true none none

CoreCardAPI.Common.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 CoreCardAPI.Common.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

CoreCardAPI.Common.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

Models.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 CoreCardAPI.Common.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

Models.Cards.Response.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 Models.Cards.Response.AdvancedSpendRulesResponse true none Advanced Spend Rules Response

Models.Cards.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 [Models.Cards.Response.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

Models.Cards.Response.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

Models.Cards.Request.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 [Models.Cards.Request.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

Models.Cards.Request.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

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

Models.GetScheduledFundingRulesResponse

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

GetScheduledFundingRulesResponse

Properties

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

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

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

Models.CardholderSpendRulesetResponse

{
  "AccountId": 0
}

CardholderSpendRulesetResponse

Properties

Name Type Required Restrictions Description
AccountId integer(int32) false none Account ID

Models.CardViewTokenCreateRequest

{
  "AcctId": 0
}

CardViewTokenCreateRequest

Properties

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

System.Threading.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 System.Threading.WaitHandle false none none

System.Threading.WaitHandle

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

WaitHandle

Properties

Name Type Required Restrictions Description
Handle object false none none
SafeWaitHandle Microsoft.Win32.SafeHandles.SafeWaitHandle false none none

Microsoft.Win32.SafeHandles.SafeWaitHandle

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

SafeWaitHandle

Properties

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

Models.CardViewTokenCreateResponse

{
  "CardViewToken": ""
}

CardViewTokenCreateResponse

Properties

Name Type Required Restrictions Description
CardViewToken string false none none

Models.CardViewTokenUseRequest

{
  "CardViewToken": ""
}

CardViewTokenUseRequest

Properties

Name Type Required Restrictions Description
CardViewToken string true none none

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

Models.Details.Response.GetAdvancedAccountDetailsResponse

{
  "AccountId": 0,
  "Group": {
    "Id": 0,
    "GroupName": ""
  },
  "AccountStatus": "",
  "LedgerBalance": 0.1,
  "AvailableBalance": 0.1,
  "ProfileAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "Phone": "",
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "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 Models.Details.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 Repository.Models.Address.AddressContact false none none
Phone string false none Phone number
ShippingAddress Repository.Models.Address.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 [Models.Details.CardDetail] false none List of details about cards associated with the account
SpendingRulesetId integer(int32) false none SpendingRulesetId for the cardholder account
SpendRules Models.Cards.Response.AdvancedSpendRulesResponse false none Advanced Spend Rules Response
ScheduledFunding Models.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)

Models.Details.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

Models.Details.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.

Models.Details.Response.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 [Models.Details.Response.GlobalLimit] false none Global limits
MerchantCategoryLimits [Models.Details.Response.MerchantCategoryLimit] false none Merchant category limits

Models.Details.Response.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

Models.Details.Response.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

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

Models.Transaction.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,
          "NoteText": "",
          "UserName": "",
          "UserFirstName": "",
          "UserMiddleName": "",
          "UserLastName": "",
          "NoteDate": "",
          "UpdatedUserName": "",
          "UpdatedUserFirstName": "",
          "UpdatedUserMiddleName": "",
          "UpdatedUserLastName": "",
          "UpdatedDate": "",
          "SystemGenerated": false
        }
      ],
      "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 [Models.Transaction.NetworkTransaction] true none The list of netword transaction details

Models.Transaction.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,
      "NoteText": "",
      "UserName": "",
      "UserFirstName": "",
      "UserMiddleName": "",
      "UserLastName": "",
      "NoteDate": "",
      "UpdatedUserName": "",
      "UpdatedUserFirstName": "",
      "UpdatedUserMiddleName": "",
      "UpdatedUserLastName": "",
      "UpdatedDate": "",
      "SystemGenerated": false
    }
  ],
  "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 [Models.Transaction.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

Models.Transaction.TransactionNote

{
  "NoteId": 0,
  "NoteText": "",
  "UserName": "",
  "UserFirstName": "",
  "UserMiddleName": "",
  "UserLastName": "",
  "NoteDate": "",
  "UpdatedUserName": "",
  "UpdatedUserFirstName": "",
  "UpdatedUserMiddleName": "",
  "UpdatedUserLastName": "",
  "UpdatedDate": "",
  "SystemGenerated": false
}

TransactionNote

Properties

Name Type Required Restrictions Description
NoteId integer(int64) true none Unique id for the note
NoteText string true none Text of the note
UserName string true none User's username who created the note
UserFirstName string true none User's first name who created the note
UserMiddleName string true none User's middle name who created the note
UserLastName string true none User's last name who created the note
NoteDate string(date-time) true none Time the note was added
UpdatedUserName string true none User's username who created the note
UpdatedUserFirstName string true none User's first name who created the note
UpdatedUserMiddleName string true none User's middle name who created the note
UpdatedUserLastName string true none User's last name who created the note
UpdatedDate string(date-time) false none Time the note was updated
SystemGenerated boolean false none Was the note system generated

Models.Details.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 [Models.ExternalBankAccount] true none List of external bank accounts associated with the business
CHAccountList [Models.Details.BusinessCHAccountDetail] true none List of cardholder account details for the business
CardholderGroups [Models.Details.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.

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

Models.Details.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.

Models.Details.CardHolderGroup

{
  "Id": 0,
  "Name": ""
}

CardHolderGroup

Properties

Name Type Required Restrictions Description
Id integer(int32) false none group Id
Name string false none group Name

Models.Details.CardholderDetailsResponse

{
  "AccountId": 0,
  "Group": {
    "Id": 0,
    "GroupName": ""
  },
  "AccountStatus": "",
  "LedgerBalance": 0.1,
  "AvailableBalance": 0.1,
  "ProfileAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "Phone": "",
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "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) false none Unique cardholder account id
Group Models.Details.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 Repository.Models.Address.AddressContact false none none
Phone string false none Phone number
ShippingAddress Repository.Models.Address.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
CardholderType string false none Identifies whether cardholder type is TeamMember or Vendor
CardList [Models.Details.CardDetail] false none List of details about cards associated with the account
SpendingRulesetId integer(int32) false none SpendingRulesetId for the cardholder account
SpendRules CoreCardAPI.Common.SpendRules false none none
ScheduledFunding Models.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

Models.Transaction.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

Models.Transaction.TransactionDetailsResponse

{
  "TransactionList": [
    {
      "TransactionId": 0,
      "AcctId": 0,
      "TransactionTime": "",
      "MerchantLocalTime": "",
      "HoldTime": "",
      "SettlementTime": "",
      "AuthTransactionId": 0,
      "TransactionAmount": 0.1,
      "PaddingAmount": 0.1,
      "TransactionType": "Transfer",
      "Description": "",
      "TransactionNotes": [
        {
          "NoteId": 0,
          "NoteText": "",
          "UserName": "",
          "UserFirstName": "",
          "UserMiddleName": "",
          "UserLastName": "",
          "NoteDate": "",
          "UpdatedUserName": "",
          "UpdatedUserFirstName": "",
          "UpdatedUserMiddleName": "",
          "UpdatedUserLastName": "",
          "UpdatedDate": "",
          "SystemGenerated": false
        }
      ],
      "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 [Models.Transaction.Transaction] true none The list of transaction details
Pages Models.PageInfo true none Pagination information used for operations returning a large result set

Models.Transaction.Transaction

{
  "TransactionId": 0,
  "AcctId": 0,
  "TransactionTime": "",
  "MerchantLocalTime": "",
  "HoldTime": "",
  "SettlementTime": "",
  "AuthTransactionId": 0,
  "TransactionAmount": 0.1,
  "PaddingAmount": 0.1,
  "TransactionType": "Transfer",
  "Description": "",
  "TransactionNotes": [
    {
      "NoteId": 0,
      "NoteText": "",
      "UserName": "",
      "UserFirstName": "",
      "UserMiddleName": "",
      "UserLastName": "",
      "NoteDate": "",
      "UpdatedUserName": "",
      "UpdatedUserFirstName": "",
      "UpdatedUserMiddleName": "",
      "UpdatedUserLastName": "",
      "UpdatedDate": "",
      "SystemGenerated": false
    }
  ],
  "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 [Models.Transaction.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 Models.Transaction.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

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

Models.Transaction.TransactionTags

{
  "Tags": [
    {
      "FieldId": "",
      "Value": {},
      "Name": ""
    }
  ],
  "State": "Initial",
  "FieldsVersion": ""
}

TransactionTags

Properties

Name Type Required Restrictions Description
Tags [Models.Transaction.TransactionTag] false none Transaction Tags
State string false none State
FieldsVersion string false read-only Fields Version

Enumerated Values

Property Value
State Initial
State Selected

Models.Transaction.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

ExternalAPI.Services.BusinessTransactionsQuery

{
  "OnlyCategoryIds": [
    0
  ],
  "NotCategoryIds": [
    0
  ],
  "MinDate": "",
  "MaxDate": "",
  "OnDate": "",
  "MinAmount": 0.1,
  "MaxAmount": 0.1,
  "EqualsAmount": 0.1,
  "SortBy": "TransactionTime",
  "OrderBy": "Asc",
  "PageIndex": 1,
  "PageSize": 1
}

BusinessTransactionsQuery

Properties

Name Type Required Restrictions Description
OnlyCategoryIds [integer] false none Filter to only include transactions in these category IDs.
NotCategoryIds [integer] false none Filter to exclude transactions in these category IDs.
MinDate string(date-time) false none Filter transactions with transaction time greater than or equal to this date (eastern time).
MaxDate string(date-time) false none Filter transactions with transaction time less than or equal to this date (eastern time).
OnDate string(date-time) false none Filter transactions that occurred on this specific date (eastern time). Cannot be used with MinDate or MaxDate.
MinAmount number(double) false none Filter transactions with amount greater than or equal to this value.
MaxAmount number(double) false none Filter transactions with amount less than or equal to this value.
EqualsAmount number(double) false none Filter transactions with amount exactly equal to this value. Cannot be used with MinAmount or MaxAmount.
SortBy string false none Property to sort results by. Default is TransactionTime.
OrderBy string false none Sort order direction. Default is Desc (descending).
PageIndex integer(int32) false none Page number to retrieve (1-based). Default is 1. Range: 1 to 2,147,483,647.
PageSize integer(int32) false none Number of results per page. Default is 100. Range: 1 to 1,000.

Enumerated Values

Property Value
SortBy TransactionTime
SortBy Amount
SortBy Description
OrderBy Asc
OrderBy Desc

ExternalAPI.Services.TransactionResult

{
  "BusinessId": 0,
  "CardholderId": 0,
  "TransactionId": 0,
  "NetworkTransactionId": 0,
  "AuthTransactionId": 0,
  "RelationshipId": 0,
  "TransactionTime": "",
  "TransactionAuthTime": "",
  "TransactionHoldTime": "",
  "IsPending": false,
  "Description": "",
  "Amount": 0.1,
  "CurrencyDesc": "",
  "CurrencyCode": "",
  "SourceAmount": 0.1,
  "SourceCurrencyDesc": "",
  "SourceCurrencyCode": "",
  "Category": {
    "CategoryId": 0,
    "CategoryName": ""
  },
  "Merchant": {
    "Id": 0,
    "Name": "",
    "NameNormalized": "",
    "MccCode": "",
    "City": "",
    "State": "",
    "Country": "",
    "Zip": "",
    "WebsiteUrl": "",
    "LogoUrl": "",
    "IconUrl": ""
  },
  "Account": {
    "Type": "Business",
    "Id": 0
  },
  "Approval": "",
  "HasAttachments": false,
  "Notes": [
    {
      "Id": 0,
      "Content": "",
      "SystemGenerated": false,
      "Created": {
        "Username": "",
        "FirstName": "",
        "MiddleName": "",
        "LastName": "",
        "Email": "",
        "Time": ""
      },
      "Updated": {
        "Username": "",
        "FirstName": "",
        "MiddleName": "",
        "LastName": "",
        "Email": "",
        "Time": ""
      }
    }
  ],
  "Tags": [
    {
      "Id": "",
      "Name": "",
      "Value": ""
    }
  ]
}

TransactionResult

Properties

Name Type Required Restrictions Description
BusinessId integer(int32) false none The business account ID that owns this transaction.
CardholderId integer(int32) false none The cardholder account ID associated with this transaction (null for business-level transactions).
TransactionId integer(int64) false none Unique identifier for the transaction.
NetworkTransactionId integer(int64) false none Network transaction ID if this is a settled/posted transaction.
AuthTransactionId integer(int64) false none Authorization transaction ID if this is a hold/auth transaction.
RelationshipId integer(int64) false none Relationship ID for transaction metadata.
TransactionTime string(date-time) false none The time when the transaction occurred (eastern time).
TransactionAuthTime string(date-time) false none The time when the transaction was authorized (local time).
TransactionHoldTime string(date-time) false none The time when the transaction hold was placed (local time).
IsPending boolean false none Indicates if the transaction is pending/authorized but not yet settled.
Description string false none Transaction description (typically the normalized merchant name if a purchase).
Amount number(double) false none Transaction amount.
CurrencyDesc string false none Currency description for the transaction amount.
CurrencyCode string false none Currency code for the transaction amount (ISO 4217 numeric code).
SourceAmount number(double) false none Original transaction amount in the merchant's currency (for foreign transactions).
SourceCurrencyDesc string false none Currency description for the source amount (for foreign transactions).
SourceCurrencyCode string false none Currency code for the source amount (for foreign transactions).
Category ExternalAPI.Services.TransactionResult.CategoryInfo false none none
Merchant ExternalAPI.Services.TransactionResult.MerchantInfo false none Merchant information for a transaction.
Account ExternalAPI.Services.TransactionResult.AccountInfo false none Account information for a funding/transfer transaction.
Approval string false none Transaction approval/review status.
HasAttachments boolean false none Indicates if the transaction has attached receipts.
Notes [ExternalAPI.Services.TransactionResult.Note] false none List of notes associated with the transaction.
Tags [ExternalAPI.Services.TransactionResult.Tag] false none List of tags associated with the transaction for categorization and accounting.

ExternalAPI.Services.PaginationInfo

{
  "SortBy": {},
  "OrderBy": {},
  "PageIndex": 0,
  "PageSize": 0,
  "ResultsCount": 0,
  "TotalCount": 0
}

PaginationInfo

Properties

Name Type Required Restrictions Description
SortBy object false none Property the results are sorted by.
OrderBy object false none Sort order direction (Asc or Desc).
PageIndex integer(int32) false read-only Current page number (1-based).
PageSize integer(int32) false read-only Number of items per page.
ResultsCount integer(int32) false read-only Number of items returned in the current page.
TotalCount integer(int32) false read-only Total number of items across all pages (may be null if not calculated).

ExternalAPI.Services.TransactionResult.CategoryInfo

{
  "CategoryId": 0,
  "CategoryName": ""
}

CategoryInfo

Properties

Name Type Required Restrictions Description
CategoryId integer(int32) false none Transaction category id.
CategoryName string false none Transaction category name. For example: for purchases this is Spend.

ExternalAPI.Services.TransactionResult.MerchantInfo

{
  "Id": 0,
  "Name": "",
  "NameNormalized": "",
  "MccCode": "",
  "City": "",
  "State": "",
  "Country": "",
  "Zip": "",
  "WebsiteUrl": "",
  "LogoUrl": "",
  "IconUrl": ""
}

MerchantInfo

Properties

Name Type Required Restrictions Description
Id integer(int32) false none Merchant identifier
Name string false none Merchant name
NameNormalized string false none Normalized merchant name
MccCode string false none Merchant category code (MCC)
City string false none Merchant city
State string false none Merchant state
Country string false none Merchant country
Zip string false none Merchant postal code
WebsiteUrl string false none Merchant website URL
LogoUrl string false none Merchant logo URL
IconUrl string false none Merchant icon URL

ExternalAPI.Services.TransactionResult.AccountInfo

{
  "Type": "Business",
  "Id": 0
}

AccountInfo

Properties

Name Type Required Restrictions Description
Type string false none Type of account (Business, Cardholder, or Bank)
Id integer(int32) false none Account identifier

Enumerated Values

Property Value
Type Business
Type Cardholder
Type Bank

ExternalAPI.Services.TransactionResult.Note

{
  "Id": 0,
  "Content": "",
  "SystemGenerated": false,
  "Created": {
    "Username": "",
    "FirstName": "",
    "MiddleName": "",
    "LastName": "",
    "Email": "",
    "Time": ""
  },
  "Updated": {
    "Username": "",
    "FirstName": "",
    "MiddleName": "",
    "LastName": "",
    "Email": "",
    "Time": ""
  }
}

Note

Properties

Name Type Required Restrictions Description
Id integer(int64) false none Note identifier
Content string false none Note content
SystemGenerated boolean false none Indicates if note was generated by the system
Created ExternalAPI.Services.TransactionResult.Note.UpdateInfo false none User information for note creation or update.
Updated ExternalAPI.Services.TransactionResult.Note.UpdateInfo false none User information for note creation or update.

ExternalAPI.Services.TransactionResult.Tag

{
  "Id": "",
  "Name": "",
  "Value": ""
}

Tag

Properties

Name Type Required Restrictions Description
Id string false none Tag ID
Name string false none Tag name
Value string false none Tag value

ExternalAPI.Services.TransactionResult.Note.UpdateInfo

{
  "Username": "",
  "FirstName": "",
  "MiddleName": "",
  "LastName": "",
  "Email": "",
  "Time": ""
}

UpdateInfo

Properties

Name Type Required Restrictions Description
Username string false none Username
FirstName string false none User first name
MiddleName string false none User middle name
LastName string false none User last name
Email string false none User email address
Time string(date-time) false none Time of the action

ExternalAPI.Services.CardholderTransactionsQuery

{
  "OnlyCategoryIds": [
    0
  ],
  "NotCategoryIds": [
    0
  ],
  "MinDate": "",
  "MaxDate": "",
  "OnDate": "",
  "MinAmount": 0.1,
  "MaxAmount": 0.1,
  "EqualsAmount": 0.1,
  "SortBy": "TransactionTime",
  "OrderBy": "Asc",
  "PageIndex": 1,
  "PageSize": 1
}

CardholderTransactionsQuery

Properties

Name Type Required Restrictions Description
OnlyCategoryIds [integer] false none Filter to only include transactions in these category IDs.
NotCategoryIds [integer] false none Filter to exclude transactions in these category IDs.
MinDate string(date-time) false none Filter transactions with transaction time greater than or equal to this date (eastern time).
MaxDate string(date-time) false none Filter transactions with transaction time less than or equal to this date (eastern time).
OnDate string(date-time) false none Filter transactions that occurred on this specific date (eastern time). Cannot be used with MinDate or MaxDate.
MinAmount number(double) false none Filter transactions with amount greater than or equal to this value.
MaxAmount number(double) false none Filter transactions with amount less than or equal to this value.
EqualsAmount number(double) false none Filter transactions with amount exactly equal to this value. Cannot be used with MinAmount or MaxAmount.
SortBy string false none Property to sort results by. Default is TransactionTime.
OrderBy string false none Sort order direction. Default is Desc (descending).
PageIndex integer(int32) false none Page number to retrieve (1-based). Default is 1. Range: 1 to 2,147,483,647.
PageSize integer(int32) false none Number of results per page. Default is 100. Range: 1 to 1,000.

Enumerated Values

Property Value
SortBy TransactionTime
SortBy Amount
SortBy Description
OrderBy Asc
OrderBy Desc

ExternalAPI.Services.CardholderPurchasesQuery

{
  "Pending": false,
  "Search": "",
  "Approval": [
    "NotReviewed"
  ],
  "MinDate": "",
  "MaxDate": "",
  "OnDate": "",
  "MinAmount": 0.1,
  "MaxAmount": 0.1,
  "EqualsAmount": 0.1,
  "SortBy": "TransactionTime",
  "OrderBy": "Asc",
  "PageIndex": 1,
  "PageSize": 1
}

CardholderPurchasesQuery

Properties

Name Type Required Restrictions Description
Pending boolean false none Filters pending purchases. Exclude this parameter to include pending, false to exclude, true to filter to only pending.
Search string false none Filter transactions with this search query in the description/merchant name.
Approval [string] false none Filter to only include transactions with these approval/review status values.
MinDate string(date-time) false none Filter transactions with transaction time greater than or equal to this date (eastern time).
MaxDate string(date-time) false none Filter transactions with transaction time less than or equal to this date (eastern time).
OnDate string(date-time) false none Filter transactions that occurred on this specific date (eastern time). Cannot be used with MinDate or MaxDate.
MinAmount number(double) false none Filter transactions with amount greater than or equal to this value.
MaxAmount number(double) false none Filter transactions with amount less than or equal to this value.
EqualsAmount number(double) false none Filter transactions with amount exactly equal to this value. Cannot be used with MinAmount or MaxAmount.
SortBy string false none Property to sort results by. Default is TransactionTime.
OrderBy string false none Sort order direction. Default is Desc (descending).
PageIndex integer(int32) false none Page number to retrieve (1-based). Default is 1. Range: 1 to 2,147,483,647.
PageSize integer(int32) false none Number of results per page. Default is 100. Range: 1 to 1,000.

Enumerated Values

Property Value
SortBy TransactionTime
SortBy Amount
SortBy Description
OrderBy Asc
OrderBy Desc

ExternalAPI.Services.CardholderDeclinesQuery

{
  "Search": "",
  "MinDate": "",
  "MaxDate": "",
  "OnDate": "",
  "MinAmount": 0.1,
  "MaxAmount": 0.1,
  "EqualsAmount": 0.1,
  "SortBy": "TransactionTime",
  "OrderBy": "Asc",
  "PageIndex": 1,
  "PageSize": 1
}

CardholderDeclinesQuery

Properties

Name Type Required Restrictions Description
Search string false none Filter transactions with this search query in the description/merchant name.
MinDate string(date-time) false none Filter transactions with transaction time greater than or equal to this date (eastern time).
MaxDate string(date-time) false none Filter transactions with transaction time less than or equal to this date (eastern time).
OnDate string(date-time) false none Filter transactions that occurred on this specific date (eastern time). Cannot be used with MinDate or MaxDate.
MinAmount number(double) false none Filter transactions with amount greater than or equal to this value.
MaxAmount number(double) false none Filter transactions with amount less than or equal to this value.
EqualsAmount number(double) false none Filter transactions with amount exactly equal to this value. Cannot be used with MinAmount or MaxAmount.
SortBy string false none Property to sort results by. Default is TransactionTime.
OrderBy string false none Sort order direction. Default is Desc (descending).
PageIndex integer(int32) false none Page number to retrieve (1-based). Default is 1. Range: 1 to 2,147,483,647.
PageSize integer(int32) false none Number of results per page. Default is 100. Range: 1 to 1,000.

Enumerated Values

Property Value
SortBy TransactionTime
SortBy Amount
SortBy Description
OrderBy Asc
OrderBy Desc

Models.Transaction.Attachments.Response.GetAttachments

{
  "Attachments": [
    {
      "AttachmentId": "",
      "Type": "Image",
      "Size": 0,
      "Link": {
        "related": "",
        "Full": "",
        "Thumbnail": "",
        "Preview": ""
      },
      "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 [Models.Transaction.Attachments.Response.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": "",
    "Full": "",
    "Thumbnail": "",
    "Preview": ""
  },
  "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 Models.Transaction.Attachments.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 TransactionMetadata.Library.Models.MetadataUser false none Metadata user
UpdatedDateUtc string(date-time) false none Updated date in UTC
UpdatedBy TransactionMetadata.Library.Models.MetadataUser false none Metadata user

Enumerated Values

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

Models.Transaction.Attachments.LinkRelated

{
  "related": "",
  "Full": "",
  "Thumbnail": "",
  "Preview": ""
}

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.
Full string false none none
Thumbnail string false none none
Preview string false none none

TransactionMetadata.Library.Models.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

Models.Transaction.Attachments.Response.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 TransactionMetadata.Library.Models.MetadataUser false none Metadata user
UpdatedDateUtc string(date-time) false none Updated date in UTC
UpdatedBy TransactionMetadata.Library.Models.MetadataUser false none Metadata user
DeletedDateUtc string(date-time) false none Deleted date in UTC
DeletedBy TransactionMetadata.Library.Models.MetadataUser false none Metadata user

Enumerated Values

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

Models.Transaction.Attachments.Response.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 TransactionMetadata.Library.Models.MetadataUser false none Metadata user
UpdatedDateUtc string(date-time) false none Updated date in UTC
UpdatedBy TransactionMetadata.Library.Models.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

Models.Transaction.Attachments.Request.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

Models.Transaction.Attachments.Response.CreateOrUpdateAttachment

{
  "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
  }
}

CreateOrUpdateAttachment

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 Models.Transaction.Attachments.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 TransactionMetadata.Library.Models.MetadataUser false none Metadata user
UpdatedDateUtc string(date-time) false none Updated date in UTC
UpdatedBy TransactionMetadata.Library.Models.MetadataUser false none Metadata user

Enumerated Values

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

Models.Transaction.Attachments.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.

TransactionMetadata.Library.Models.Transaction.Tags.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 read-only Prevent conflicts when multiple users update tag values at the same time
State string false read-only Tag review state
Values object false none Values
CreatedDateUtc string(date-time) false none Created date in UTC
CreatedBy TransactionMetadata.Library.Models.MetadataUser false none Metadata user
UpdatedDateUtc string(date-time) false none Updated date in UTC
UpdatedBy TransactionMetadata.Library.Models.MetadataUser false none Metadata user

Enumerated Values

Property Value
State NotReviewed
State Ignored
State Alphabetic
State Alphanumeric

TransactionMetadata.Library.Models.Transaction.Tags.Request.CreateTagValuesRequest

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

CreateTagValuesRequest

Properties

Name Type Required Restrictions Description
Values [TransactionMetadata.Library.Models.Transaction.Tags.Request.TagValueItem] false none Tag values

TransactionMetadata.Library.Models.Transaction.Tags.Request.TagValueItem

{
  "TagId": "",
  "Value": {}
}

TagValueItem

Properties

Name Type Required Restrictions Description
TagId string false none Tag definition Id
Value object false none Value

TransactionMetadata.Library.Models.Transaction.Tags.Request.UpdateTagValuesRequest

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

UpdateTagValuesRequest

Properties

Name Type Required Restrictions Description
Values [TransactionMetadata.Library.Models.Transaction.Tags.Request.TagValueItem] false none Tag values

Models.Business.Response.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.

Models.Business.Response.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.

Models.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 Models.TransferAccountDto true none none
AccountTo Models.TransferAccountDto false none none
Amount number(double) true none The transfer amount (positive).

Enumerated Values

Property Value
Type ACH
Type SameDayACH

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

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

Models.Business.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 [Models.Business.OneTimeTransferDetail] true none List of one time transfer details

Models.Business.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 Models.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

Models.Business.UpdateBusinessProfileRequest

{
  "ProfileAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "Phone": "",
  "PhoneExtension": "",
  "NormalizeAddress": false
}

UpdateBusinessProfileRequest

Properties

Name Type Required Restrictions Description
ProfileAddress Repository.Models.Address.Address true none none
Phone string false none Phone number
PhoneExtension string false none Phone Extension
NormalizeAddress boolean false none Normalize address flag

Models.Business.GetBusinessProfileResponse

{
  "BusinessAcctId": 0,
  "FirstName": "",
  "LastName": "",
  "ProfileAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "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 Repository.Models.Address.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

Models.Business.CreateAdminRequest

{
  "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,
    "ViewCardNumbers": false,
    "ViewCardTransactions": false,
    "ApproveFundingRequest": 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 Repository.Models.Address.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 Models.AdminPermissions false none Details about the permissions for an admin
PasswordQuestion string false none none
PasswordAnswer string false none none

Models.AdminPermissions

{
  "ViewAdministration": false,
  "AddEditTerminateAdministrator": false,
  "RequestDeleteACHTransfer": false,
  "EditBusinessProfile": false,
  "AddEditTerminateCard": false,
  "CreateCardholder": false,
  "ManageCardholder": false,
  "ViewCardUsage": false,
  "ViewCardNumbers": false,
  "ViewCardTransactions": false,
  "ApproveFundingRequest": 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
ViewCardNumbers boolean false none Whether or not admin can view card numbers
ViewCardTransactions boolean false none Whether or not admin can view card transactions
ApproveFundingRequest boolean false none Whether or not admin can approve funding requests
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

Models.Business.UpsertAdminResponse

{
  "Admin": {
    "BusinessAdminId": 0,
    "FirstName": "",
    "MiddleName": "",
    "LastName": "",
    "UserName": "",
    "ProfileAddress": {
      "ContactName": "",
      "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,
      "ViewCardNumbers": false,
      "ViewCardTransactions": false,
      "ApproveFundingRequest": false,
      "RequestCardFunding": false,
      "ModifyTransactionNotes": false
    },
    "Status": ""
  }
}

UpsertAdminResponse

Properties

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

Models.Business.BusinessAdmin

{
  "BusinessAdminId": 0,
  "FirstName": "",
  "MiddleName": "",
  "LastName": "",
  "UserName": "",
  "ProfileAddress": {
    "ContactName": "",
    "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,
    "ViewCardNumbers": false,
    "ViewCardTransactions": false,
    "ApproveFundingRequest": 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 Repository.Models.Address.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 Models.AdminPermissions true none Details about the permissions for an admin
Status string true none Status of the business admin

Models.Business.GetAdminListResponse

{
  "BusinessAdmins": [
    {
      "BusinessAdminId": 0,
      "FirstName": "",
      "MiddleName": "",
      "LastName": "",
      "UserName": "",
      "ProfileAddress": {
        "ContactName": "",
        "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,
        "ViewCardNumbers": false,
        "ViewCardTransactions": false,
        "ApproveFundingRequest": false,
        "RequestCardFunding": false,
        "ModifyTransactionNotes": false
      },
      "Status": ""
    }
  ]
}

GetAdminListResponse

Properties

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

Models.Business.UpsertAdminRequest

{
  "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,
    "ViewCardNumbers": false,
    "ViewCardTransactions": false,
    "ApproveFundingRequest": 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 Repository.Models.Address.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 Models.AdminPermissions false none Details about the permissions for an admin
PasswordQuestion string false none none
PasswordAnswer string false none none

Models.Business.GetAdminResponse

{
  "Admin": {
    "BusinessAdminId": 0,
    "FirstName": "",
    "MiddleName": "",
    "LastName": "",
    "UserName": "",
    "ProfileAddress": {
      "ContactName": "",
      "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,
      "ViewCardNumbers": false,
      "ViewCardTransactions": false,
      "ApproveFundingRequest": false,
      "RequestCardFunding": false,
      "ModifyTransactionNotes": false
    },
    "Status": ""
  }
}

GetAdminResponse

Properties

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

Models.Business.Response.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

TransactionMetadata.Library.Models.Business.Configuration.Tags.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 read-only Concurrent editing token
CreatedDateUtc string(date-time) false none Date when the tag definition was created
CreatedBy TransactionMetadata.Library.Models.MetadataUser false none Metadata user
UpdatedDateUtc string(date-time) false none Date when the tag definition was last updated
UpdatedBy TransactionMetadata.Library.Models.MetadataUser false none Metadata user
DeletedDateUtc string(date-time) false none Date when the tag definition was deleted
DeletedBy TransactionMetadata.Library.Models.MetadataUser false none Metadata user

Enumerated Values

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

TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.UpdateDropdownTagRequest

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

UpdateDropdownTagRequest

Properties

Name Type Required Restrictions Description
Options [TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.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

TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.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

TransactionMetadata.Library.Models.Business.Configuration.Tags.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 read-only Concurrent editing token
CreatedDateUtc string(date-time) false none Date when the tag definition was created
CreatedBy TransactionMetadata.Library.Models.MetadataUser false none Metadata user
UpdatedDateUtc string(date-time) false none Date when the tag definition was last updated
UpdatedBy TransactionMetadata.Library.Models.MetadataUser false none Metadata user
DeletedDateUtc string(date-time) false none Date when the tag definition was deleted
DeletedBy TransactionMetadata.Library.Models.MetadataUser false none Metadata user
Options [TransactionMetadata.Library.Models.Business.Configuration.Tags.Interfaces.ITagOption] false none Dropdown tag options

Enumerated Values

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

TransactionMetadata.Library.Models.Business.Configuration.Tags.Interfaces.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

TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.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 [TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.CreateTagOptionRequest] true none Dropdown tag options

TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.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

TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.TagOptionsRequest

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

TagOptionsRequest

Properties

Name Type Required Restrictions Description
Options [TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.TagOptionRequest] true none Options

TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.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

TransactionMetadata.Library.Models.Business.Configuration.Tags.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

TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.CreateTextTagRequest

{
  "MinLength": 200,
  "Length": 200,
  "ValidationType": "None",
  "Name": "",
  "Description": "",
  "Order": 2147483647,
  "IsRequired": false,
  "IsEnabled": false
}

CreateTextTagRequest

Properties

Name Type Required Restrictions Description
MinLength integer(int32) true none Min Length
Length integer(int32) true none Max 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

TransactionMetadata.Library.Models.Business.Configuration.Tags.TextTag

{
  "MinLength": 0,
  "Length": 0,
  "ValidationType": "None",
  "ValidationRegex": "",
  "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
MinLength integer(int32) false none Defines the minimum number of characters allowed for this tag. Length takes numeric values E.g. 5 means the tag must have at least 5 characters. By default 200 char is max length
Length integer(int32) false none Defines the maximum 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
ValidationRegex string false none A regular expression that determines valid values this tag definition is allowed to have.
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 read-only Concurrent editing token
CreatedDateUtc string(date-time) false none Date when the tag definition was created
CreatedBy TransactionMetadata.Library.Models.MetadataUser false none Metadata user
UpdatedDateUtc string(date-time) false none Date when the tag definition was last updated
UpdatedBy TransactionMetadata.Library.Models.MetadataUser false none Metadata user
DeletedDateUtc string(date-time) false none Date when the tag definition was deleted
DeletedBy TransactionMetadata.Library.Models.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

TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.UpdateTextTagRequest

{
  "MinLength": 200,
  "Length": 200,
  "ValidationType": "None",
  "Name": "",
  "Description": "",
  "Order": 2147483647,
  "IsRequired": false,
  "IsEnabled": false
}

UpdateTextTagRequest

Properties

Name Type Required Restrictions Description
MinLength integer(int32) true none Min Length
Length integer(int32) true none Max 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

TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.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

TransactionMetadata.Library.Models.Business.Configuration.Tags.Request.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

TransactionMetadata.Library.Models.Business.Configuration.Tags.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 read-only Concurrent editing token
CreatedDateUtc string(date-time) false none Date when the tag definition was created
CreatedBy TransactionMetadata.Library.Models.MetadataUser false none Metadata user
UpdatedDateUtc string(date-time) false none Date when the tag definition was last updated
UpdatedBy TransactionMetadata.Library.Models.MetadataUser false none Metadata user
DeletedDateUtc string(date-time) false none Date when the tag definition was deleted
DeletedBy TransactionMetadata.Library.Models.MetadataUser false none Metadata user
Tags [TransactionMetadata.Library.Models.Business.Configuration.Tags.Interfaces.IAllocationTagItem] false none Tag definitions collection

Enumerated Values

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

TransactionMetadata.Library.Models.Business.Configuration.Tags.Interfaces.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

Models.Business.Request.BillingRequest

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

BillingRequest

Properties

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

Models.Business.Response.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

Models.Business.Response.SettingsResponse

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

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.
UseReimbursements boolean false none Use reimbursements.

Enumerated Values

Property Value
FundingSource Prepaid
FundingSource Credit

Models.AdvancedSpendingRuleset.Response.AdvancedCardholderDetailsResponse

{
  "AccountId": 0,
  "Group": {
    "Id": 0,
    "GroupName": ""
  },
  "AccountStatus": "",
  "LedgerBalance": 0.1,
  "AvailableBalance": 0.1,
  "ProfileAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "Phone": "",
  "ShippingAddress": {
    "ContactName": "",
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "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 Models.Details.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 Repository.Models.Address.AddressContact false none none
Phone string false none Phone number
ShippingAddress Repository.Models.Address.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 [Models.Details.CardDetail] false none List of details about cards associated with the account
SpendingRulesetId integer(int32) false none SpendingRulesetId for the cardholder account
SpendRules Models.Cards.Response.AdvancedSpendRulesResponse false none Advanced Spend Rules Response
ScheduledFunding Models.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

Models.AdvancedSpendingRuleset.Response.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 [Models.AdvancedSpendingRuleset.Response.AdvancedSpendingRulesetMerchantCategoryItemResponse] false none Merchant Categories

Models.AdvancedSpendingRuleset.Response.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

Models.AdvancedSpendingRuleset.Request.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 [Models.AdvancedSpendingRuleset.Request.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

Models.AdvancedSpendingRuleset.Request.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

Models.AdvancedSpendingRuleset.Response.CreateAdvancedSpendingRulesetResponse

{
  "RulesetId": 0
}

CreateAdvancedSpendingRulesetResponse

Properties

Name Type Required Restrictions Description
RulesetId integer(int32) false none Advance Spending Ruleset ID

Models.AdvancedSpendingRuleset.Request.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 [Models.AdvancedSpendingRuleset.Request.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

Models.AdvancedSpendingRuleset.Request.DeleteAdvancedSpendingRulesetRequest

{
  "Id": 0
}

DeleteAdvancedSpendingRulesetRequest

Properties

Name Type Required Restrictions Description
Id integer(int32) true none Advance Spending Ruleset Id

Models.MerchantCategory

{
  "Id": 0,
  "BusinessAcctId": 0,
  "AccountId": "",
  "Name": "",
  "MccCodes": [
    "string"
  ],
  "Description": "",
  "IsPredefined": false,
  "IsEditable": false,
  "CardholderCount": 0,
  "AdminName": ""
}

MerchantCategory

Properties

Name Type Required Restrictions Description
Id integer(int32) false none none
BusinessAcctId integer(int32) false none none
AccountId string false none none
Name string false none none
MccCodes [string] false none none
Description string false none none
IsPredefined boolean false none none
IsEditable boolean false none none
CardholderCount integer(int32) false none none
AdminName string false none none

Repository.Models.SpendingRulesets.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 [Repository.Models.SpendingRulesets.SpendingRuleset] false none none

Repository.Models.SpendingRulesets.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 Repository.Models.SpendingRulesets.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

Repository.Models.SpendingRulesets.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

Models.SpendingRulesets.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 Repository.Models.SpendingRulesets.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

Repository.Models.SpendingRulesets.CreateSpendingRulesetResponse

{
  "RulesetId": 0
}

CreateSpendingRulesetResponse

Properties

Name Type Required Restrictions Description
RulesetId integer(int32) false none none

Models.SpendingRulesets.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 Repository.Models.SpendingRulesets.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

Models.SpendingRulesets.SpendingRulesetResponse

{
  "RulesetId": 0
}

SpendingRulesetResponse

Properties

Name Type Required Restrictions Description
RulesetId integer(int32) false none Spending Ruleset Id

Models.SpendingRulesets.DeleteSpendingRulesetRequest

{
  "RulesetId": 0
}

DeleteSpendingRulesetRequest

Properties

Name Type Required Restrictions Description
RulesetId integer(int32) true none Spending Ruleset Id

Models.SpendingRulesets.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 Models.SpendingRulesets.SpendingRulesetGet false none Spending Ruleset Get

Models.SpendingRulesets.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 Repository.Models.SpendingRulesets.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

Models.SpendingRulesets.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

Models.CreateNoteByNetworkTransactionIdRequest

{
  "NoteText": "",
  "NetworkTransactionId": 0,
  "VisibleToCardholder": false,
  "SystemGenerated": false
}

CreateNoteByNetworkTransactionIdRequest

Properties

Name Type Required Restrictions Description
NoteText string true none Transaction note text
NetworkTransactionId integer(int64) true none Transaction id
VisibleToCardholder boolean false none Visible to cardholder
SystemGenerated boolean false none Indicates whether the note was automatically generated by the system

Models.NoteResponse

{
  "Id": 0
}

NoteResponse

Properties

Name Type Required Restrictions Description
Id integer(int64) false none Transaction note id

Models.CreateNoteByTransactionRelationshipIdRequest

{
  "NoteText": "",
  "TransactionRelationshipId": 0,
  "VisibleToCardholder": false,
  "SystemGenerated": false
}

CreateNoteByTransactionRelationshipIdRequest

Properties

Name Type Required Restrictions Description
NoteText string true none Transaction note text
TransactionRelationshipId integer(int64) true none Transaction relationship id
VisibleToCardholder boolean false none Visible to cardholder
SystemGenerated boolean false none Indicates whether the note was automatically generated by the system

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

Models.DeleteNoteRequest

{
  "Pending": false
}

DeleteNoteRequest

Properties

Name Type Required Restrictions Description
Pending boolean false none Is pending transaction

Models.CreateNoteRequest

{
  "TransactionId": 0,
  "VisibleToCardholder": false,
  "SystemGenerated": false,
  "NoteText": "",
  "Pending": false
}

CreateNoteRequest

Properties

Name Type Required Restrictions Description
TransactionId integer(int64) true none Transaction id
VisibleToCardholder boolean false none Visible to cardholder
SystemGenerated boolean false none Indicates whether the note was automatically generated by the system
NoteText string true none Transaction note text
Pending boolean false none Is pending transaction

Models.GetGroupsResponse

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

GetGroupsResponse

Properties

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

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

Models.CreateGroupRequest

{
  "Name": ""
}

CreateGroupRequest

Properties

Name Type Required Restrictions Description
Name string true none Group name

Models.CreateGroupResponse

{
  "Group": {
    "Id": 0,
    "Name": ""
  }
}

CreateGroupResponse

Properties

Name Type Required Restrictions Description
Group Models.Group true none Details about a cardholder group

Models.Cards.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 Models.Details.CardholderGroup false none Details about a cardholder group
SpendingRulesetModel Models.SpendingRulesets.SpendingRulesetModel false none Spending Ruleset Model
EmbossingDetails [Models.Cards.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)

Models.SpendingRulesets.SpendingRulesetModel

{
  "RulesetId": 0,
  "Name": ""
}

SpendingRulesetModel

Properties

Name Type Required Restrictions Description
RulesetId integer(int32) false none RulesetId
Name string false none Name

Models.Cards.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 [Models.Cards.PlasticDetials] false none Plastic Details

Models.Cards.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

Models.UpdateGroupRequest

{
  "Name": ""
}

UpdateGroupRequest

Properties

Name Type Required Restrictions Description
Name string true none Group name

Models.UpdateGroupResponse

{
  "Group": {
    "Id": 0,
    "Name": ""
  }
}

UpdateGroupResponse

Properties

Name Type Required Restrictions Description
Group Models.Group true none Details about a cardholder group

Models.RemoveGroupResponse

{
  "GroupId": 0
}

RemoveGroupResponse

Properties

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

Models.Bulk.BulkResponse

{
  "TotalNumberOfCards": 0
}

BulkResponse

Properties

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

Models.Bulk.FundMultipleCardsRequest

{
  "Cards": [
    {
      "AccountId": 0,
      "Amount": 0.1
    }
  ],
  "TransferType": ""
}

FundMultipleCardsRequest

Properties

Name Type Required Restrictions Description
Cards [Models.Bulk.FundCardItem] true none Cards
TransferType string true none B2C or C2B fund or defund transfer type codes (ErrorMessage = "Required") [EnumDataType(TransferTypeEnum)]

Models.Bulk.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

Models.Bulk.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 [Models.Bulk.FundCardItemResponse] false none Succesful funding
Errors [Models.Bulk.FundCardItemErrorResponse] false none Unsuccesful fundings with errors

Models.Bulk.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

Models.Bulk.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

Models.TokenProvisioning.Response.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

Models.TokenProvisioning.Response.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

Models.TokenProvisioning.Request.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

Models.TokenProvisioning.Response.GetIssuedTokensResponse

{
  "TokenList": [
    {
      "ReferenceId": "",
      "AccountId": 0,
      "CardId": 0,
      "Last4CardNumber": "",
      "Last4TokenNumber": "",
      "TokenExpirationDate": "",
      "DeviceName": "",
      "WalletName": "",
      "Status": ""
    }
  ]
}

GetIssuedTokensResponse

Properties

Name Type Required Restrictions Description
TokenList [Models.TokenProvisioning.TokenDetail] false none List of details about token with the account

Models.TokenProvisioning.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

Models.TokenProvisioning.Request.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

Models.Partner.Response.GetPartnerResponse

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

GetPartnerResponse

Properties

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

Models.CallbackSubscription.Response.CallbackTypeModel

{
  "Name": "",
  "Value": "Card"
}

CallbackTypeModel

Properties

Name Type Required Restrictions Description
Name string false none none
Value string false none none

Enumerated Values

Property Value
Value Card
Value Cardorder
Value CardOrderVirtual
Value CardTokenCreated
Value AuthRealtime
Value PinRealtime
Value DeclineRealtime
Value ReversalRealtime
Value SettlementPostedRealtime

Models.CallbackSubscription.Request.CallbackSubscriptionInsertRequest

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

CallbackSubscriptionInsertRequest

Properties

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

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

Models.CallbackSubscription.Response.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

Models.CallbackSubscription.Request.CallbackSubscriptionUpdateRequest

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

CallbackSubscriptionUpdateRequest

Properties

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

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

Models.Credit.CreditLineInfo

{
  "CreditLimit": 0.1,
  "AvailableCredit": 0.1,
  "Term": "",
  "Status": ""
}

CreditLineInfo

Properties

Name Type Required Restrictions Description
CreditLimit number(double) false none none
AvailableCredit number(double) false none none
Term string false none none
Status string false none none

Models.Credit.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

Models.Credit.InvoiceAllocation

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

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
TransactionTypeCategory string false none none

Models.Credit.InvoicePayment

{
  "PaymentId": 0,
  "RequestId": 0,
  "Type": "PEXTransfer",
  "DatePaid": "",
  "Description": "",
  "PaymentInitiatedByUserId": 0,
  "CreditCarriedOverFromInvoiceId": 0,
  "Amount": 0.1,
  "RejectedByBank": false
}

InvoicePayment

Properties

Name Type Required Restrictions Description
PaymentId integer(int32) false none none
RequestId integer(int32) false none none
Type string false none none
DatePaid string(date-time) false none none
Description string false read-only none
PaymentInitiatedByUserId integer(int64) false none none
CreditCarriedOverFromInvoiceId integer(int32) false none none
Amount number(double) false none none
RejectedByBank boolean false none none

Enumerated Values

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

Models.Bill.Response.GetBillPaymentResponse

{
  "BillId": 0,
  "MerchantName": "",
  "Amount": 0.1,
  "PaymentRequestStatus": "",
  "PaymentRequestStatusTrigger": "",
  "PaymentRequestType": "",
  "PayeeFundsDestinationType": "",
  "PurchaseDate": "",
  "PayoutDate": "",
  "MetadataId": 0,
  "CreatedDate": "",
  "HasPaymentError": false,
  "PayeePexId": 0,
  "BillPayment": {
    "BillDate": "",
    "DueDate": "",
    "BillRefNo": ""
  },
  "ApprovalDetails": {
    "ApprovalId": 0,
    "ApprovalStatus": "",
    "ApprovalWorkflowType": ""
  },
  "IsUserApprovalRestricted": false,
  "IsUserInApprovalRoute": false,
  "Attachments": [
    {
      "Id": "",
      "FileName": "",
      "UploadedDate": ""
    }
  ],
  "Tags": {
    "IsSplit": false,
    "Allocations": [
      {
        "Amount": 0.1,
        "Tags": [
          {
            "TagId": "",
            "TagName": "",
            "TagOptionValue": {},
            "TagOptionName": ""
          }
        ]
      }
    ]
  },
  "Notes": [
    {
      "Id": 0,
      "Note": "",
      "VisibleToCardholder": false,
      "SystemGenerated": false,
      "CreatedByUserId": 0,
      "CreatedByUser": "",
      "CreatedDateTime": ""
    }
  ]
}

GetBillPaymentResponse

Properties

Name Type Required Restrictions Description
BillId integer(int32) false none Bill ID (unique identifier for this bill payment)
MerchantName string false none Merchant name
Amount number(double) false none Payment amount
PaymentRequestStatus string false none Payment request status
PaymentRequestStatusTrigger string false none Status trigger that caused the current status
PaymentRequestType string false none Type of payment request (should be BillPay)
PayeeFundsDestinationType string false none Payee funds destination type (Card or BankAccount)
PurchaseDate string(date-time) false none Purchase date
PayoutDate string(date-time) false none Payout date (when payment was made)
MetadataId integer(int64) false none Metadata ID associated with this payment.
Null indicates no metadata has been assigned.
CreatedDate string(date-time) false none Created date
HasPaymentError boolean false none Whether payment has errors
PayeePexId integer(int64) false none Vendor ID (payee)
BillPayment Models.Bill.BillPaymentDetails false none Bill payment specific details
ApprovalDetails Models.Bill.Response.BillPaymentApprovalDetails false none Bill payment approval details
IsUserApprovalRestricted boolean false none If false, authenticated user can approve/reject this bill now. If true, user cannot approve (not in approval route or already actioned).
IsUserInApprovalRoute boolean false none If true, authenticated user is part of the approval workflow for this bill (may approve at some stage).
Attachments [Models.Bill.Response.BillPaymentAttachment] false none Attached files/documents
Tags Models.Bill.Response.BillPaymentTags false none Bill payment tags
Notes [Models.Bill.Response.BillPaymentNote] false none Notes on this payment

Models.Bill.BillPaymentDetails

{
  "BillDate": "",
  "DueDate": "",
  "BillRefNo": ""
}

BillPaymentDetails

Properties

Name Type Required Restrictions Description
BillDate string(date-time) true none Date the bill was issued (required)
DueDate string(date-time) false none Due date for the bill payment
BillRefNo string false none Bill reference number or invoice number

Models.Bill.Response.BillPaymentApprovalDetails

{
  "ApprovalId": 0,
  "ApprovalStatus": "",
  "ApprovalWorkflowType": ""
}

BillPaymentApprovalDetails

Properties

Name Type Required Restrictions Description
ApprovalId integer(int64) false none Approval ID
ApprovalStatus string false none Approval status
ApprovalWorkflowType string false none Approval workflow type

Models.Bill.Response.BillPaymentAttachment

{
  "Id": "",
  "FileName": "",
  "UploadedDate": ""
}

BillPaymentAttachment

Properties

Name Type Required Restrictions Description
Id string false none Attachment ID (MongoDB ObjectId)
FileName string false none File name
UploadedDate string(date-time) false none Upload date

Models.Bill.Response.BillPaymentTags

{
  "IsSplit": false,
  "Allocations": [
    {
      "Amount": 0.1,
      "Tags": [
        {
          "TagId": "",
          "TagName": "",
          "TagOptionValue": {},
          "TagOptionName": ""
        }
      ]
    }
  ]
}

BillPaymentTags

Properties

Name Type Required Restrictions Description
IsSplit boolean false none Whether tags are split across multiple allocations
Allocations [Models.Bill.Response.TagAllocation] false none Tag allocations

Models.Bill.Response.BillPaymentNote

{
  "Id": 0,
  "Note": "",
  "VisibleToCardholder": false,
  "SystemGenerated": false,
  "CreatedByUserId": 0,
  "CreatedByUser": "",
  "CreatedDateTime": ""
}

BillPaymentNote

Properties

Name Type Required Restrictions Description
Id integer(int64) false none Note ID
Note string false none Note text
VisibleToCardholder boolean false none Whether visible to cardholder
SystemGenerated boolean false none Whether system generated
CreatedByUserId integer(int64) false none User ID who created the note
CreatedByUser string false none Name of user who created the note
CreatedDateTime string(date-time) false none Date/time note was created

Models.Bill.Response.TagAllocation

{
  "Amount": 0.1,
  "Tags": [
    {
      "TagId": "",
      "TagName": "",
      "TagOptionValue": {},
      "TagOptionName": ""
    }
  ]
}

TagAllocation

Properties

Name Type Required Restrictions Description
Amount number(double) false none Amount allocated
Tags [Models.Bill.Response.TagValue] false none Tags in this allocation

Models.Bill.Response.TagValue

{
  "TagId": "",
  "TagName": "",
  "TagOptionValue": {},
  "TagOptionName": ""
}

TagValue

Properties

Name Type Required Restrictions Description
TagId string false none Tag definition ID
TagName string false none Tag definition name (e.g., "Exp", "Project")
TagOptionValue object false none Selected tag option value (e.g., "6010", "hogs2025")
TagOptionName string false none Tag option display name (e.g., "Airfare", "Hogs 2025")

Models.Bill.Response.GetBillPaymentsResponse

{
  "Payments": [
    {
      "PaymentId": 0,
      "PaymentStatus": "",
      "PaymentStatusTrigger": "",
      "PaymentTransferId": 0,
      "Amount": 0.1,
      "PayeeBankAccountId": 0,
      "PayeeUserId": 0,
      "PayoutDate": "",
      "OutboundAchCreationDate": "",
      "ExpectedPaymentDate": "",
      "Created": "",
      "Updated": ""
    }
  ]
}

GetBillPaymentsResponse

Properties

Name Type Required Restrictions Description
Payments [Models.Bill.Response.BillPaymentItem] false none List of payments for the bill

Models.Bill.Response.BillPaymentItem

{
  "PaymentId": 0,
  "PaymentStatus": "",
  "PaymentStatusTrigger": "",
  "PaymentTransferId": 0,
  "Amount": 0.1,
  "PayeeBankAccountId": 0,
  "PayeeUserId": 0,
  "PayoutDate": "",
  "OutboundAchCreationDate": "",
  "ExpectedPaymentDate": "",
  "Created": "",
  "Updated": ""
}

BillPaymentItem

Properties

Name Type Required Restrictions Description
PaymentId integer(int32) false none Unique Id for the payment
PaymentStatus string false none Status of payment
PaymentStatusTrigger string false none Status trigger of payment
PaymentTransferId integer(int32) false none Unique Id of the payment transfer that initiated current payment
Amount number(double) false none Amount of payment
PayeeBankAccountId integer(int64) false none Unique Id of the payee bank account
PayeeUserId integer(int64) false none Unique Id of the payee user
PayoutDate string(date-time) false none Payout date for the payment
OutboundAchCreationDate string(date-time) false none Outbound ACH creation date
ExpectedPaymentDate string(date-time) false none Expected payment date
Created string(date-time) false none Date the payment was created
Updated string(date-time) false none Date the payment was last updated

Models.Bill.Request.SearchBillPaymentsRequest

{
  "CreatedDateFrom": "",
  "CreatedDateTo": "",
  "DueDateFrom": "",
  "DueDateTo": "",
  "CreatedByUserId": 0,
  "VendorId": 0,
  "AmountFrom": 0.1,
  "AmountTo": 0.1,
  "PaymentRequestStatuses": [
    "string"
  ],
  "PaymentRequestStatusTriggers": [
    "string"
  ],
  "IsOwner": false,
  "IsPendingReview": false,
  "Page": 1,
  "PageSize": 1,
  "SortDirection": "",
  "SortByField": ""
}

SearchBillPaymentsRequest

Properties

Name Type Required Restrictions Description
CreatedDateFrom string(date-time) false none Filter by created date from (inclusive)
CreatedDateTo string(date-time) false none Filter by created date to (inclusive)
DueDateFrom string(date-time) false none Filter by due date from (inclusive)
DueDateTo string(date-time) false none Filter by due date to (inclusive)
CreatedByUserId integer(int64) false none Filter by creator user ID
VendorId integer(int32) false none Filter by vendor ID
AmountFrom number(double) false none Filter by minimum amount
AmountTo number(double) false none Filter by maximum amount
PaymentRequestStatuses [string] false none Filter by payment request statuses
PaymentRequestStatusTriggers [string] false none Filter by payment request status triggers
IsOwner boolean false none Filter to only show requests created by current user
IsPendingReview boolean false none Filter to only show requests pending review by current user
Page integer(int32) false none Page number (1-based)
PageSize integer(int32) false none Page size
SortDirection string false none Sort direction. Allowed values: Ascending, Asc, Descending, Desc
SortByField string false none Field to sort by

Models.Bill.Response.SearchBillPaymentsResponse

{
  "Items": [
    {
      "BillId": 0,
      "BillRefNo": "",
      "Amount": 0.1,
      "Created": "",
      "CreatedByUserId": 0,
      "CreatedByUser": "",
      "PayeePexId": 0,
      "PayeeName": "",
      "DueDate": "",
      "PaymentRequestStatus": "",
      "PaymentRequestStatusTrigger": ""
    }
  ],
  "PageInfo": {
    "TotalCount": 0,
    "PageNumber": 0,
    "PageSize": 0,
    "TotalPages": 0
  }
}

SearchBillPaymentsResponse

Properties

Name Type Required Restrictions Description
Items [Models.Bill.Response.BillPaymentSearchItem] false none List of matching bill payment items
PageInfo Models.Bill.Response.SearchPageInfo false none Page information for search results

Models.Bill.Response.BillPaymentSearchItem

{
  "BillId": 0,
  "BillRefNo": "",
  "Amount": 0.1,
  "Created": "",
  "CreatedByUserId": 0,
  "CreatedByUser": "",
  "PayeePexId": 0,
  "PayeeName": "",
  "DueDate": "",
  "PaymentRequestStatus": "",
  "PaymentRequestStatusTrigger": ""
}

BillPaymentSearchItem

Properties

Name Type Required Restrictions Description
BillId integer(int32) false none Bill ID (unique identifier for this bill payment)
BillRefNo string false none Bill reference number
Amount number(double) false none Payment amount
Created string(date-time) false none Date created
CreatedByUserId integer(int64) false none User ID who created the payment request
CreatedByUser string false none Name of user who created the payment request
PayeePexId integer(int64) false none Vendor ID (payee)
PayeeName string false none Vendor name (payee)
DueDate string(date-time) false none Due date for payment
PaymentRequestStatus string false none Payment request status
PaymentRequestStatusTrigger string false none Status trigger

Models.Bill.Response.SearchPageInfo

{
  "TotalCount": 0,
  "PageNumber": 0,
  "PageSize": 0,
  "TotalPages": 0
}

SearchPageInfo

Properties

Name Type Required Restrictions Description
TotalCount integer(int32) false none Total number of results
PageNumber integer(int32) false none Current page number
PageSize integer(int32) false none Number of items per page
TotalPages integer(int32) false none Total number of pages

Models.Bill.Request.CreateBillPaymentRequest

{
  "VendorId": 1,
  "Amount": 0.1,
  "PaymentMethod": "VendorCard",
  "BillPayment": {
    "BillDate": "",
    "DueDate": "",
    "BillRefNo": ""
  }
}

CreateBillPaymentRequest

Properties

Name Type Required Restrictions Description
VendorId integer(int32) true none Vendor ID (required)
Amount number(double) true none Payment amount (required)
PaymentMethod string false none Payment method: null = auto-select, VendorCard = virtual card, ACH = bank transfer
BillPayment Models.Bill.BillPaymentDetails true none Bill payment specific details

Enumerated Values

Property Value
PaymentMethod VendorCard
PaymentMethod ACH

Models.Bill.Request.UpdateBillPaymentTagsRequest

{
  "Tags": [
    {
      "Amount": 0.1,
      "Tags": [
        {
          "TagId": "",
          "Value": {}
        }
      ]
    }
  ]
}

UpdateBillPaymentTagsRequest

Properties

Name Type Required Restrictions Description
Tags [Models.Bill.Request.TagAllocationRequest] true none Tag allocations to apply to the bill payment

Models.Bill.Request.TagAllocationRequest

{
  "Amount": 0.1,
  "Tags": [
    {
      "TagId": "",
      "Value": {}
    }
  ]
}

TagAllocationRequest

Properties

Name Type Required Restrictions Description
Amount number(double) true none Amount allocated to this tag group
Tags [Models.Bill.Request.TagValueRequest] true none List of tag values to apply

Models.Bill.Request.TagValueRequest

{
  "TagId": "",
  "Value": {}
}

TagValueRequest

Properties

Name Type Required Restrictions Description
TagId string true none Tag definition ID
Value object true none Tag value - string for text, bool for yes/no, or option value for dropdown

Models.Bill.Request.AddBillPaymentNoteRequest

{
  "Note": "",
  "VisibleToCardholder": false,
  "SystemGenerated": false
}

AddBillPaymentNoteRequest

Properties

Name Type Required Restrictions Description
Note string true none Note text (required)
VisibleToCardholder boolean false none Whether the note is visible to cardholder
SystemGenerated boolean false none Whether the note was system generated

ExternalAPI.Controllers.BillNoteResponse

{
  "NoteId": 0
}

BillNoteResponse

Properties

Name Type Required Restrictions Description
NoteId integer(int64) false none Note ID

Models.Bill.Request.UpdateBillPaymentNoteRequest

{
  "Note": "",
  "VisibleToCardholder": false,
  "SystemGenerated": false
}

UpdateBillPaymentNoteRequest

Properties

Name Type Required Restrictions Description
Note string true none Updated note text (required)
VisibleToCardholder boolean false none Whether the note is visible to cardholder
SystemGenerated boolean false none Whether the note was system generated

Models.Bill.Response.UploadAttachmentResponse

{
  "Attachments": [
    {
      "Id": "",
      "FileName": "",
      "UploadedDate": ""
    }
  ]
}

UploadAttachmentResponse

Properties

Name Type Required Restrictions Description
Attachments [Models.Bill.Response.BillPaymentAttachment] false none List of uploaded attachments

Models.Bill.Request.ApproveBillPaymentRequest

{
  "Reason": ""
}

ApproveBillPaymentRequest

Properties

Name Type Required Restrictions Description
Reason string false none Optional reason for approval

Models.Bill.Request.RejectBillPaymentRequest

{
  "Note": ""
}

RejectBillPaymentRequest

Properties

Name Type Required Restrictions Description
Note string false none Note explaining reason for rejection

Models.Bill.Request.ProcessBillPaymentRequest

{
  "ProcessingDate": ""
}

ProcessBillPaymentRequest

Properties

Name Type Required Restrictions Description
ProcessingDate string(date-time) false none Processing date - when the payment should be executed.
If not provided, processes immediately.


Timezone Handling: Use DateTimeOffset to explicitly specify the timezone.
The payment will be scheduled to execute on or after this date/time in the specified timezone.


Example: "2025-12-25T10:00:00-05:00" schedules the payment for Dec 25, 2025 at 10 AM EST.

Models.Payments.Request.PaymentListRequest

{
  "PaymentStatuses": [
    "Draft"
  ],
  "PaymentStatusTriggers": [
    "New"
  ],
  "OutboundAchCreationStartDate": "",
  "OutboundAchCreationEndDate": "",
  "ExpectedPaymentStartDate": "",
  "ExpectedPaymentEndDate": ""
}

PaymentListRequest

Properties

Name Type Required Restrictions Description
PaymentStatuses [string] false none Payment statuses list
PaymentStatusTriggers [string] false none Payment status trigger list
OutboundAchCreationStartDate string(date-time) false none Outbound ACH creation start date
OutboundAchCreationEndDate string(date-time) false none Outbound ACH creation end date
ExpectedPaymentStartDate string(date-time) false none Expected payment start date
ExpectedPaymentEndDate string(date-time) false none Expected payment end date

Models.Payments.Response.PaymentGetPagedResponse

{
  "Items": [
    {
      "PaymentId": 0,
      "PaymentStatus": "Draft",
      "PaymentStatusTrigger": "New",
      "PaymentTransferId": 0,
      "Amount": 0.1,
      "PlatformBusinessAccountId": 0,
      "PayeeBankAccountId": 0,
      "PayeeUserId": 0,
      "ProcessorRequestId": 0,
      "PayoutDate": "",
      "OutboundAchCreationDate": "",
      "ExpectedPaymentDate": ""
    }
  ],
  "PageInfo": {
    "Page": 0,
    "PageSize": 0,
    "TotalItems": 0
  }
}

PaymentGetPagedResponse

Properties

Name Type Required Restrictions Description
Items [Repository.Models.Payment.Payment] false none The list of payments
PageInfo PexCard.Contracts.Models.PageInfoModel false none none

Repository.Models.Payment.Payment

{
  "PaymentId": 0,
  "PaymentStatus": "Draft",
  "PaymentStatusTrigger": "New",
  "PaymentTransferId": 0,
  "Amount": 0.1,
  "PlatformBusinessAccountId": 0,
  "PayeeBankAccountId": 0,
  "PayeeUserId": 0,
  "ProcessorRequestId": 0,
  "PayoutDate": "",
  "OutboundAchCreationDate": "",
  "ExpectedPaymentDate": ""
}

Payment

Properties

Name Type Required Restrictions Description
PaymentId integer(int32) false none none
PaymentStatus string false none none
PaymentStatusTrigger string false none none
PaymentTransferId integer(int32) false none none
Amount number(double) false none none
PlatformBusinessAccountId integer(int32) false none none
PayeeBankAccountId integer(int64) false none none
PayeeUserId integer(int64) false none none
ProcessorRequestId integer(int32) false none none
PayoutDate string(date-time) false none none
OutboundAchCreationDate string(date-time) false none none
ExpectedPaymentDate string(date-time) false none none

Enumerated Values

Property Value
PaymentStatus Draft
PaymentStatus Pending
PaymentStatus Closed
PaymentStatus Exception
PaymentStatus InProgress
PaymentStatusTrigger New
PaymentStatusTrigger OutboundAchCreationError
PaymentStatusTrigger Settling
PaymentStatusTrigger OutBoundAchCheckStatusError
PaymentStatusTrigger AwaitingOutboundCompletion
PaymentStatusTrigger Settled
PaymentStatusTrigger Returned
PaymentStatusTrigger Cancelled
PaymentStatusTrigger InProgress
PaymentStatusTrigger VirtualCardCreated
PaymentStatusTrigger VirtualCardEnsureSpendingRuleset
PaymentStatusTrigger VirtualCardDeliveryCreated
PaymentStatusTrigger VirtualCardDetailsRequestCreated
PaymentStatusTrigger VirtualCardCreationError
PaymentStatusTrigger VirtualCardEnsureSpendingRulesetError
PaymentStatusTrigger VirtualCardDeliveryCreationError
PaymentStatusTrigger VirtualCardDetailsRequestCreationError

PexCard.Contracts.Models.PageInfoModel

{
  "Page": 0,
  "PageSize": 0,
  "TotalItems": 0
}

PageInfoModel

Properties

Name Type Required Restrictions Description
Page integer(int32) false none none
PageSize integer(int32) false none none
TotalItems integer(int64) false none none

Models.Payments.Response.PaymentTransferResponse

{
  "PaymentTransferId": 0,
  "UserId": 0,
  "ScheduleOnOrAfterDate": "",
  "PayerPlatformBusinessAccountId": 0,
  "PayerBankAccountId": 0,
  "ProcessorRequestId": 0,
  "ApprovalId": 0,
  "PaymentTransferStatus": "Draft",
  "PaymentTransferStatusTrigger": "New",
  "PaymentRequests": [
    {
      "PaymentTransferPaymentRequestId": 0,
      "PaymentRequestId": 0,
      "Created": ""
    }
  ],
  "UpdatedByUserId": 0,
  "NoOfPaymentRequests": 0,
  "Amount": 0.1,
  "IsTransferToPayablesInitiated": false
}

PaymentTransferResponse

Properties

Name Type Required Restrictions Description
PaymentTransferId integer(int32) false none Unique Id for the payment transfer
UserId integer(int64) false none Unique Id of the user
ScheduleOnOrAfterDate string(date-time) false none Payment transfer schedule on or after date
PayerPlatformBusinessAccountId integer(int32) false none Unique platform business account Id
PayerBankAccountId integer(int64) false none Unique Id of the payee bank account
ProcessorRequestId integer(int64) false none Unique Id of the processor request
ApprovalId integer(int64) false none Unique Id of the approval
PaymentTransferStatus string false none Status of payment transfer
PaymentTransferStatusTrigger string false none Status trigger of payment transfer
PaymentRequests [PexCard.Invoicing.Models.Payments.PaymentRequestXPaymentTransferGetResponse] false none Payment requests of the payment transfer
UpdatedByUserId integer(int64) false none Unique Id of the payment request updated user
NoOfPaymentRequests integer(int32) false none Number of payment requests
Amount number(double) false none Payment request amount
IsTransferToPayablesInitiated boolean false none Flag is payment transfer to payables is initiated

Enumerated Values

Property Value
PaymentTransferStatus Draft
PaymentTransferStatus PendingApproval
PaymentTransferStatus PendingFunds
PaymentTransferStatus Closed
PaymentTransferStatus Exception
PaymentTransferStatusTrigger New
PaymentTransferStatusTrigger Edited
PaymentTransferStatusTrigger RevisionsNeeded
PaymentTransferStatusTrigger Submitted
PaymentTransferStatusTrigger Approved
PaymentTransferStatusTrigger Scheduled
PaymentTransferStatusTrigger InboundAchCreationError
PaymentTransferStatusTrigger Settling
PaymentTransferStatusTrigger AwaitingPaymentDelay
PaymentTransferStatusTrigger InboundAchCheckStatusError
PaymentTransferStatusTrigger Settled
PaymentTransferStatusTrigger Returned
PaymentTransferStatusTrigger Rejected
PaymentTransferStatusTrigger Cancelled
PaymentTransferStatusTrigger InitiateTransferToPayablesError
PaymentTransferStatusTrigger InitiatedTransferToPayables

PexCard.Invoicing.Models.Payments.PaymentRequestXPaymentTransferGetResponse

{
  "PaymentTransferPaymentRequestId": 0,
  "PaymentRequestId": 0,
  "Created": ""
}

PaymentRequestXPaymentTransferGetResponse

Properties

Name Type Required Restrictions Description
PaymentTransferPaymentRequestId integer(int32) false none none
PaymentRequestId integer(int32) false none none
Created string(date-time) false none none

Models.Payments.Response.PaymentRequestResponse

{
  "PaymentRequestId": 0,
  "PaymentRequestType": "Reimbursement",
  "PlatformBusinessAccountId": 0,
  "MerchantName": "",
  "Amount": 0.1,
  "PurchaseDate": "",
  "UserFirstName": "",
  "UserLastName": "",
  "Note": "",
  "PayeeBankAccountId": 0,
  "MetadataId": "",
  "MetadataRelationId": 0,
  "Metadata": {
    "Attachments": [
      {
        "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"
      }
    ],
    "TagAnswers": [
      {
        "FieldId": "",
        "Value": {},
        "Name": ""
      }
    ],
    "Notes": [
      {
        "NoteId": 0,
        "NoteText": "",
        "UserName": "",
        "UserFirstName": "",
        "UserMiddleName": "",
        "UserLastName": "",
        "NoteDate": "",
        "UpdatedUserName": "",
        "UpdatedUserFirstName": "",
        "UpdatedUserMiddleName": "",
        "UpdatedUserLastName": "",
        "UpdatedDate": "",
        "SystemGenerated": false
      }
    ]
  },
  "ApprovalId": 0,
  "PaymentRequestStatus": "Draft",
  "PaymentRequestStatusTrigger": "New",
  "PaymentId": 0,
  "PayoutDate": "",
  "CreatedByUserId": 0,
  "UpdatedByUserId": 0
}

PaymentRequestResponse

Properties

Name Type Required Restrictions Description
PaymentRequestId integer(int32) false none Unique Id for the payment request
PaymentRequestType string false none Type of payment request
PlatformBusinessAccountId integer(int32) false none Unique platform business account Id
MerchantName string false none Name of the merchant
Amount number(double) false none Payment request amount
PurchaseDate string(date-time) false none Payment request purchase date
UserFirstName string false none First name of the payment request created user
UserLastName string false none Last name of the payment request created user
Note string false none Payment request note
PayeeBankAccountId integer(int64) false none Unique Id of the payee bank account
MetadataId string false none Unique Id of the metadata
MetadataRelationId integer(int64) false none Unique Id of the metadata relation
Metadata Models.Payments.PaymentRequestMetadata false none Metadata of the payment request
ApprovalId integer(int64) false none Unique Id of the approval
PaymentRequestStatus string false none Status of payment request
PaymentRequestStatusTrigger string false none Status trigger of payment request
PaymentId integer(int32) false none Unique Id of the payment
PayoutDate string(date-time) false none Payment request payout date
CreatedByUserId integer(int64) false none Unique Id of the payment request created user
UpdatedByUserId integer(int64) false none Unique Id of the payment request updated user

Enumerated Values

Property Value
PaymentRequestType Reimbursement
PaymentRequestType BillPay
PaymentRequestStatus Draft
PaymentRequestStatus PendingApproval
PaymentRequestStatus PendingPaymentTransfer
PaymentRequestStatus PaymentTransferException
PaymentRequestStatus PendingPayment
PaymentRequestStatus Closed
PaymentRequestStatus PaymentException
PaymentRequestStatusTrigger New
PaymentRequestStatusTrigger Edited
PaymentRequestStatusTrigger RevisionsNeeded
PaymentRequestStatusTrigger UpdatedAmount
PaymentRequestStatusTrigger PaidViaExternalMethod
PaymentRequestStatusTrigger Submitted
PaymentRequestStatusTrigger Approved
PaymentRequestStatusTrigger IncludedInPaymentTransfer
PaymentRequestStatusTrigger RemovedFromPaymentTransfer
PaymentRequestStatusTrigger PaymentTransferFailed
PaymentRequestStatusTrigger PaymentTransferProcessingException
PaymentRequestStatusTrigger PaymentTransferCompleted
PaymentRequestStatusTrigger PaymentInitiated
PaymentRequestStatusTrigger Paid
PaymentRequestStatusTrigger Rejected
PaymentRequestStatusTrigger PaymentFailed
PaymentRequestStatusTrigger Cancelled
PaymentRequestStatusTrigger PaymentCancelled
PaymentRequestStatusTrigger PaymentProcessingException

Models.Payments.PaymentRequestMetadata

{
  "Attachments": [
    {
      "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"
    }
  ],
  "TagAnswers": [
    {
      "FieldId": "",
      "Value": {},
      "Name": ""
    }
  ],
  "Notes": [
    {
      "NoteId": 0,
      "NoteText": "",
      "UserName": "",
      "UserFirstName": "",
      "UserMiddleName": "",
      "UserLastName": "",
      "NoteDate": "",
      "UpdatedUserName": "",
      "UpdatedUserFirstName": "",
      "UpdatedUserMiddleName": "",
      "UpdatedUserLastName": "",
      "UpdatedDate": "",
      "SystemGenerated": false
    }
  ]
}

PaymentRequestMetadata

Properties

Name Type Required Restrictions Description
Attachments [Models.Transaction.Attachments.Response.Attachment] false none Payment request attachments list
TagAnswers [ExternalAPI.Repositories.Models.TransactionTagEntity] false none Payment request tag answers list
Notes [ExternalAPI.Repositories.Models.TransactionNoteEntity] false none Payment request notes list

ExternalAPI.Repositories.Models.TransactionTagEntity

{
  "FieldId": "",
  "Value": {},
  "Name": ""
}

TransactionTagEntity

Properties

Name Type Required Restrictions Description
FieldId string false none Field ID
Value object false none Field Value
Name string false none Field Name

ExternalAPI.Repositories.Models.TransactionNoteEntity

{
  "NoteId": 0,
  "NoteText": "",
  "UserName": "",
  "UserFirstName": "",
  "UserMiddleName": "",
  "UserLastName": "",
  "NoteDate": "",
  "UpdatedUserName": "",
  "UpdatedUserFirstName": "",
  "UpdatedUserMiddleName": "",
  "UpdatedUserLastName": "",
  "UpdatedDate": "",
  "SystemGenerated": false
}

TransactionNoteEntity

Properties

Name Type Required Restrictions Description
NoteId integer(int64) true none Unique id for the note
NoteText string true none Text of the note
UserName string true none User's username who created the note
UserFirstName string true none User's first name who created the note
UserMiddleName string true none User's middle name who created the note
UserLastName string true none User's last name who created the note
NoteDate string(date-time) true none Time the note was added
UpdatedUserName string true none User's username who created the note
UpdatedUserFirstName string true none User's first name who created the note
UpdatedUserMiddleName string true none User's middle name who created the note
UpdatedUserLastName string true none User's last name who created the note
UpdatedDate string(date-time) false none Time the note was updated
SystemGenerated boolean false none Was the note system generated

Models.Vendor.Request.GetVendorsRequest

{
  "CardholderAcctId": -2147483648,
  "VendorStatuses": [
    "Draft"
  ],
  "VendorStatusTriggers": [
    "New"
  ],
  "PageIndex": 1,
  "PageSize": 1
}

GetVendorsRequest

Properties

Name Type Required Restrictions Description
CardholderAcctId integer(int32) false none Optional filter by cardholder account ID (must be within valid 32-bit integer range: -2,147,483,648 to 2,147,483,647)
VendorStatuses [string] false none Optional filter by vendor statuses
VendorStatusTriggers [string] false none Optional filter by vendor status triggers
PageIndex integer(int32) false none Page index (1-based)
PageSize integer(int32) false none Page size

Models.Vendor.Response.GetVendorsResponse

{
  "Vendors": [
    {
      "VendorId": 0,
      "VendorName": "",
      "IconUrl": "",
      "VendorStatus": "Draft",
      "VendorStatusTrigger": "New",
      "CreatedByUserId": 0,
      "Owner": ""
    }
  ],
  "TotalCount": 0
}

GetVendorsResponse

Properties

Name Type Required Restrictions Description
Vendors [Models.Vendor.Response.GetVendorPagedItemResponse] false none List of vendors for the current page
TotalCount integer(int64) false none Total count of vendors matching the filter criteria

Models.Vendor.Response.GetVendorPagedItemResponse

{
  "VendorId": 0,
  "VendorName": "",
  "IconUrl": "",
  "VendorStatus": "Draft",
  "VendorStatusTrigger": "New",
  "CreatedByUserId": 0,
  "Owner": ""
}

GetVendorPagedItemResponse

Properties

Name Type Required Restrictions Description
VendorId integer(int32) false none Vendor ID
VendorName string false none Vendor name
IconUrl string false none Icon/logo URL
VendorStatus string false none Current vendor status
VendorStatusTrigger string false none Status trigger that caused the current status
CreatedByUserId integer(int64) false none User ID who created the vendor
Owner string false none Vendor owner name/identifier

Enumerated Values

Property Value
VendorStatus Draft
VendorStatus Pending
VendorStatus Onboarded
VendorStatus Closed
VendorStatusTrigger New
VendorStatusTrigger Submitted
VendorStatusTrigger Active
VendorStatusTrigger Inactive
VendorStatusTrigger Rejected
VendorStatusTrigger Offboarded

Models.Vendor.Request.CreateVendorRequest

{
  "VendorName": "",
  "EmailForRemittance": "",
  "WebSite": "",
  "CustomId": "",
  "TaxId": "",
  "Note": "",
  "VendorAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "VendorContact": {
    "FirstName": "",
    "LastName": "",
    "PhoneNumber": "",
    "Email": ""
  },
  "MerchantId": 0,
  "SendNotification": false,
  "VendorCardPaymentEnabled": false,
  "AchPaymentEnabled": false
}

CreateVendorRequest

Properties

Name Type Required Restrictions Description
VendorName string true none Vendor name (required)
EmailForRemittance string false none Email for remittance
WebSite string false none Vendor website
CustomId string false none Custom vendor ID
TaxId string false none Tax ID (EIN)
Note string false none Internal notes
VendorAddress Models.Vendor.VendorAddress true none Vendor address information
VendorContact Models.Vendor.VendorContact false none Vendor contact information
MerchantId integer(int64) false none Optional merchant ID
SendNotification boolean false none Send notification to vendor
VendorCardPaymentEnabled boolean false none Enable vendor card payment
AchPaymentEnabled boolean false none Enable ACH payment

Models.Vendor.VendorAddress

{
  "AddressLine1": "",
  "AddressLine2": "",
  "City": "",
  "State": "",
  "PostalCode": ""
}

VendorAddress

Properties

Name Type Required Restrictions Description
AddressLine1 string true none Address line 1 (required)
AddressLine2 string false none Address line 2 (optional)
City string true none City (required)
State string true none State (2-letter code, required)
PostalCode string true none Postal code (required)

Models.Vendor.VendorContact

{
  "FirstName": "",
  "LastName": "",
  "PhoneNumber": "",
  "Email": ""
}

VendorContact

Properties

Name Type Required Restrictions Description
FirstName string false none Contact first name
LastName string false none Contact last name
PhoneNumber string false none Contact phone number
Email string false none Contact email address

Models.Vendor.Response.GetVendorResponse

{
  "VendorId": 0,
  "VendorName": "",
  "EmailForRemittance": "",
  "Website": "",
  "LogoUrl": "",
  "VendorStatus": "Draft",
  "VendorStatusTrigger": "New",
  "VendorCardPaymentEnabled": false,
  "AchPaymentEnabled": false,
  "UpdatedDate": "",
  "CreatedDate": "",
  "VendorAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "VendorContact": {
    "FirstName": "",
    "LastName": "",
    "PhoneNumber": "",
    "Email": ""
  },
  "CustomId": "",
  "Note": "",
  "Documents": [
    {
      "DocumentId": 0,
      "UploadedByUserId": 0,
      "DateCreated": "",
      "FileName": "",
      "ContentType": "",
      "IsDeleted": false,
      "DeletedByUserId": 0,
      "DateDeleted": ""
    }
  ],
  "VendorCards": [
    {
      "CardholderAcctId": 0,
      "CardNumber4Digits": "",
      "CardStatus": "",
      "FirstName": "",
      "LastName": "",
      "IsDefault": false
    }
  ],
  "BankAccounts": [
    {
      "VendorId": 0,
      "BankAccountId": 0,
      "IsActive": false,
      "DateCreated": ""
    }
  ]
}

GetVendorResponse

Properties

Name Type Required Restrictions Description
VendorId integer(int32) false none Vendor ID
VendorName string false none Vendor name
EmailForRemittance string false none Email for remittance
Website string false none Vendor website
LogoUrl string false none Logo URL
VendorStatus string false none Current vendor status
VendorStatusTrigger string false none Status trigger that caused the current status
VendorCardPaymentEnabled boolean false none Whether vendor card payment is enabled
AchPaymentEnabled boolean false none Whether ACH payment is enabled
UpdatedDate string(date-time) false none Last updated date
CreatedDate string(date-time) false none Created date
VendorAddress Models.Vendor.VendorAddress false none Vendor address information
VendorContact Models.Vendor.VendorContact false none Vendor contact information
CustomId string false none Custom vendor ID
Note string false none Internal notes
Documents [Models.Vendor.Response.VendorDocument] false none List of documents attached to the vendor
VendorCards [Models.Vendor.Response.GetVendorCardResponse] false none List of vendor cards (cardholder accounts associated with this vendor)
BankAccounts [Models.Vendor.Response.VendorBankAccountResponse] false none List of bank accounts associated with this vendor for ACH payments

Enumerated Values

Property Value
VendorStatus Draft
VendorStatus Pending
VendorStatus Onboarded
VendorStatus Closed
VendorStatusTrigger New
VendorStatusTrigger Submitted
VendorStatusTrigger Active
VendorStatusTrigger Inactive
VendorStatusTrigger Rejected
VendorStatusTrigger Offboarded

Models.Vendor.Response.VendorDocument

{
  "DocumentId": 0,
  "UploadedByUserId": 0,
  "DateCreated": "",
  "FileName": "",
  "ContentType": "",
  "IsDeleted": false,
  "DeletedByUserId": 0,
  "DateDeleted": ""
}

VendorDocument

Properties

Name Type Required Restrictions Description
DocumentId integer(int32) false none Document ID
UploadedByUserId integer(int64) false none User who uploaded the document
DateCreated string(date-time) false none Date the document was uploaded
FileName string false none Name of the uploaded file
ContentType string false none Content type of the document (e.g., "application/pdf", "image/jpeg")
IsDeleted boolean false none Whether the document has been deleted
DeletedByUserId integer(int64) false none User who deleted the document
DateDeleted string(date-time) false none Date the document was deleted

Models.Vendor.Response.GetVendorCardResponse

{
  "CardholderAcctId": 0,
  "CardNumber4Digits": "",
  "CardStatus": "",
  "FirstName": "",
  "LastName": "",
  "IsDefault": false
}

GetVendorCardResponse

Properties

Name Type Required Restrictions Description
CardholderAcctId integer(int32) false none Cardholder account ID
CardNumber4Digits string false none Last 4 digits of the card number
CardStatus string false none Card status (e.g., Active, Blocked, Closed)
FirstName string false none Cardholder first name
LastName string false none Cardholder last name
IsDefault boolean false none Indicates if this is the default card for the vendor

Models.Vendor.Response.VendorBankAccountResponse

{
  "VendorId": 0,
  "BankAccountId": 0,
  "IsActive": false,
  "DateCreated": ""
}

VendorBankAccountResponse

Properties

Name Type Required Restrictions Description
VendorId integer(int32) false none Vendor ID
BankAccountId integer(int64) false none Bank account ID
IsActive boolean false none Indicates if this is the active/default bank account for the vendor
DateCreated string(date-time) false none Date the bank account was associated with the vendor

Models.Vendor.Request.UpdateVendorRequest

{
  "VendorName": "",
  "EmailForRemittance": "",
  "WebSite": "",
  "CustomId": "",
  "TaxId": "",
  "Note": "",
  "VendorAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "VendorContact": {
    "FirstName": "",
    "LastName": "",
    "PhoneNumber": "",
    "Email": ""
  },
  "VendorCardPaymentEnabled": false
}

UpdateVendorRequest

Properties

Name Type Required Restrictions Description
VendorName string true none Vendor name (required)
EmailForRemittance string false none Email for remittance
WebSite string false none Vendor website
CustomId string false none Custom vendor ID
TaxId string false none Tax ID (EIN)
Note string false none Internal notes
VendorAddress Models.Vendor.VendorAddress true none Vendor address information
VendorContact Models.Vendor.VendorContact false none Vendor contact information
VendorCardPaymentEnabled boolean false none Enable vendor card payment

Models.Vendor.Request.UpdateVendorStatusRequest

{
  "NewStatus": "Active"
}

UpdateVendorStatusRequest

Properties

Name Type Required Restrictions Description
NewStatus string true none The new status to set for the vendor.
Valid values: Active, Inactive, Offboarded.
Note: To reject a vendor, use the dedicated /vendor/{id}/Reject endpoint.

Enumerated Values

Property Value
NewStatus Active
NewStatus Inactive
NewStatus Offboarded

Models.Vendor.Request.AddVendorCardRequest

{
  "CardholderAcctId": 1
}

AddVendorCardRequest

Properties

Name Type Required Restrictions Description
CardholderAcctId integer(int32) true none Cardholder account ID to associate with the vendor

Models.Vendor.Request.AddVendorBankAccountRequest

{
  "BankName": "",
  "BankAccountNumber": "",
  "BankRoutingNumber": ""
}

AddVendorBankAccountRequest

Properties

Name Type Required Restrictions Description
BankName string true none Bank name
BankAccountNumber string true none Bank account number (4-17 digits)
BankRoutingNumber string true none Bank routing number (9 digits)

Models.Vendor.Request.UpdateVendorBankAccountRequest

{
  "BankName": "",
  "BankAccountNumber": "",
  "BankRoutingNumber": ""
}

UpdateVendorBankAccountRequest

Properties

Name Type Required Restrictions Description
BankName string true none Bank name
BankAccountNumber string true none Bank account number (4-17 digits)
BankRoutingNumber string true none Bank routing number (9 digits)

Models.VendorCards.Response.VendorCardsGetOrderResponse

{
  "CardOrderId": 0,
  "OrderDateTime": "",
  "UserName": "",
  "Cards": [
    {
      "RequestId": 0,
      "AcctId": 0,
      "AccountNumber": "",
      "VendorName": "",
      "DateOfBirth": "",
      "Phone": "",
      "Email": "",
      "HomeAddress": {
        "AddressLine1": "",
        "AddressLine2": "",
        "City": "",
        "State": "",
        "PostalCode": ""
      },
      "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 [Models.VendorCards.Response.VendorCardGetOrderResponse] false none Virtual Cards

Models.VendorCards.Response.VendorCardGetOrderResponse

{
  "RequestId": 0,
  "AcctId": 0,
  "AccountNumber": "",
  "VendorName": "",
  "DateOfBirth": "",
  "Phone": "",
  "Email": "",
  "HomeAddress": {
    "AddressLine1": "",
    "AddressLine2": "",
    "City": "",
    "State": "",
    "PostalCode": ""
  },
  "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 Repository.Models.Address.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

Models.VendorCards.Request.VendorCardsOrderRequest

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

VendorCardsOrderRequest

Properties

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

Models.VendorCards.Request.VendorCardOrderItem

{
  "VendorName": "",
  "Phone": "",
  "Email": "",
  "GroupId": 0,
  "RulesetId": 0,
  "InternationalAllowed": false,
  "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
InternationalAllowed boolean false none Is international spend allowed
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

Models.VendorCards.Response.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

Models.VendorCards.Request.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

ExternalAPI.Services.Paginated_ExternalAPI.Services.TransactionResult_

{
  "Results": [
    {
      "BusinessId": 0,
      "CardholderId": 0,
      "TransactionId": 0,
      "NetworkTransactionId": 0,
      "AuthTransactionId": 0,
      "RelationshipId": 0,
      "TransactionTime": "",
      "TransactionAuthTime": "",
      "TransactionHoldTime": "",
      "IsPending": false,
      "Description": "",
      "Amount": 0.1,
      "CurrencyDesc": "",
      "CurrencyCode": "",
      "SourceAmount": 0.1,
      "SourceCurrencyDesc": "",
      "SourceCurrencyCode": "",
      "Category": {
        "CategoryId": 0,
        "CategoryName": ""
      },
      "Merchant": {
        "Id": 0,
        "Name": "",
        "NameNormalized": "",
        "MccCode": "",
        "City": "",
        "State": "",
        "Country": "",
        "Zip": "",
        "WebsiteUrl": "",
        "LogoUrl": "",
        "IconUrl": ""
      },
      "Account": {
        "Type": "Business",
        "Id": 0
      },
      "Approval": "",
      "HasAttachments": false,
      "Notes": [
        {
          "Id": 0,
          "Content": "",
          "SystemGenerated": false,
          "Created": {
            "Username": "",
            "FirstName": "",
            "MiddleName": "",
            "LastName": "",
            "Email": "",
            "Time": ""
          },
          "Updated": {
            "Username": "",
            "FirstName": "",
            "MiddleName": "",
            "LastName": "",
            "Email": "",
            "Time": ""
          }
        }
      ],
      "Tags": [
        {
          "Id": "",
          "Name": "",
          "Value": ""
        }
      ]
    }
  ],
  "Pagination": {
    "SortBy": {},
    "OrderBy": {},
    "PageIndex": 0,
    "PageSize": 0,
    "ResultsCount": 0,
    "TotalCount": 0
  }
}

Paginated`1

Properties

Name Type Required Restrictions Description
Results [ExternalAPI.Services.TransactionResult] false read-only The collection of results for the current page.
Pagination ExternalAPI.Services.PaginationInfo false none Metadata information about pagination state and configuration.