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:
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:
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:
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:
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:
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:
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:
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:
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):
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):
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:
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):
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):
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 |
|
None |
| 401 | Unauthorized | Token expired or does not exist | None |
| 403 | Forbidden |
|
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:
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:
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:
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:
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:
Details about why a transaction was declined is provided in the "Description" field. Potential values for the message include:
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:
Details about why a transaction was declined is provided in the "Description" field. Potential values for the message include:
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:
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:
Details about why a transaction was declined is provided in the "Description" field. Potential values for the message include:
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:
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.
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 | |
| 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}
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.
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.
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.
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
}]
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
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
}]
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:
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:
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:
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.
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.
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 |
|
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 |
|
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:
|
| »» 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:
|
| »» 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.
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 |
|
None |
| 401 | Unauthorized | Token expired or does not exist | None |
| 403 | Forbidden |
|
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:
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):
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
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | OK | Models.AdvancedSpendingRuleset.Response.CreateAdvancedSpendingRulesetResponse |
| 201 | Created | Created | Models.AdvancedSpendingRuleset.Response.CreateAdvancedSpendingRulesetResponse |
| 400 | Bad Request | - The request is invalid |
- This ruleset is configured to use your business balance instead of the card balance. The daily spend limit must be less than or equal to $5,000.00. To allow the cardholder to spend over $5,000.00 per day, please disable the use of the business balance
- The Name field is required
- The field Name must be a string with a maximum length of 50
- Invalid merchant category
- Merchant spend limit exceeds overall spend limit
- Merchant categories duplicated
- Invalid value. Please enter amount greater than 0.00|None| |401|Unauthorized|Token expired or does not exist|None| |403|Forbidden|- This business does not support the Customer Authorization Decision
- Name already exists|None|
Delete advanced spending ruleset for the business
Code samples
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Authorization' => 'string'
}
result = RestClient.delete 'https://coreapi.pexcard.com/v4/SpendingRuleset/Advanced',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Authorization': 'string'
}
r = requests.delete('https://coreapi.pexcard.com/v4/SpendingRuleset/Advanced', headers = headers)
print(r.json())
const inputBody = '{
"Id": 0
}';
const headers = {
'Content-Type':'application/json',
'Authorization':'string'
};
fetch('https://coreapi.pexcard.com/v4/SpendingRuleset/Advanced',
{
method: 'DELETE',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
DELETE /SpendingRuleset/Advanced
What it does:
Delete an existing advanced spending ruleset for the business.
If one or more cards are assigned to a ruleset, that ruleset cannot be deleted.
Body parameter
{
"Id": 0
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| Authorization | header | string | true | token {USERTOKEN} |
| body | body | 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:
|
| »» 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:
|
| »» 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.
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:
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):
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 |
Link an existing cardholder 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}/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
}
Parameters
| 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": ""
}
]
}
Responses
| 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:
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:
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 |
| string | false | none | ||
| 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 |
| 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 |
| 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 |
| 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.
|
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:
|
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 |
| 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:
|
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 |
| 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 |
| 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 |
| 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 |
Models.Transaction.Attachments.Response.AttachmentWithRelatedLink
{
"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 | |
| 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 | |
| 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 | |
| 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 |
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 | |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| string | false | none | ||
| 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 |
| 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. |