Welcome to the System APIs reference!
Here you may find all the information you need for integration with the System APIs.
System Management Flow
System APIs referenced on this Web site:
Production or testing (Sandbox) environment URLs are located in each chapter
Authentication
Our web services use Basic Access Authentication. Provide your Platform Account Username and Password separated by a colon(username:password) and then Base64 encoded.
Content Type
Specify content type as follows:
Application/json – for requests in JSON language
Methods
•GET – Requests data from a specified resource
•POST – Submits data to be processed to a specified resource
Request Body
In order to make an API call to process any type of transaction a correct Transaction Packet has to be supplied with the API request.
The Transaction Packet encapsulates all the required fields for processing of an API request.
Transaction packet content depends on the transaction type.
Management API
Management API allows to create and manage Platform Accounts, Sub-Account and Platform Users.
Credentials Required for a Platform Account or Sub-account:
• Username (supplied by your service provider)
• Password (supplied by your service provider)
• Skin Id.
A Skin is used for user validation and authorization purposes. In the Back-Office, the Skin also determines the Back-Office theme style and logo. Furthermore, the Skin ID might limit the user’s permissions. For example, a user may have permission to access a Platform Account or Sub-Account, but may not be authorized (based, among other things, on their Skin ID) to perform certain actions. SkinID is also known as Service Provider ID.
Platform Accounts Management RESTful Web Service API offers 4 methods:
In each method you pass a Platform Account configuration data packet. In the data packet you change values you need to override, other values will be inherited from the source Platform Account.
Platform Account Onboarding Flow
Basic Endpoints Sandbox: https://sandbox.4levers.com/managementapi/
Basic Endpoints Production: https://managementapi.4levers.com/
Use GET Template method to inquire configuration template for a Platform Account based on a specific Service Provider settings.
Use this packet to Create (POST method) and/or update the existing Platform Account (PUT method).
Endpoint:
GET
Sandbox: https://sandbox.4levers.com/managementapi/api/accounts/serviceproviders/{serviceProviderId}/template
Production: https://managementapi.4levers.com/api/accounts/serviceproviders/{serviceProviderId}/template
The Value indicated in the URL is the source Service Provider identifier {serviceProviderId} that you want to inquire parameters of.
.../api/accounts/serviceproviders/{serviceProviderId}/template
{
"id": 0,
"serviceProviderId": 0,
"accountName": "string",
"contactEmail": "string",
"manualPayout": true,
"skipBalanceCheck": true,
"negativePayout": true,
"payouts": [
{
"payoutMethodsAch": [
{
"currency": "USD",
"accountNumber": "string",
"accountType": "None",
"entityType": "Personal",
"nameOnAccount": "string",
"routingNumber": "string"
}
],
"calculation": {
"fixedAmount": 0,
"intervalCount": 0,
"intervalGap": 0,
"payoutType": "Fixed",
"percentageAmount": 0
},
"name": "string",
"scheduler": {
"id": 0,
"isSchedulerDisabled": false,
"dayNumber": 0,
"endDate": "2021-02-08T16:59:01.127Z",
"expiration": "UntilDate",
"interval": "Daily",
"intervalCount": 0,
"monthNumber": 0,
"occurrencesQuantity": 0
},
"twoStepApproval": true
}
],
"payoutConfiguration": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
},
"billing": {
"scheduledFees": [
{
"currency": "USD",
"id": 0,
"amount": 0,
"dayNumber": 0,
"endDate": "2021-02-08T16:59:01.127Z",
"expiration": "UntilDate",
"interval": "Daily",
"intervalCount": 0,
"monthNumber": 0,
"name": "string",
"occurrencesQuantity": 0
}
],
"slidingScaleFees": [
{
"id": 0,
"name": "string",
"ranges": [
{
"amount": 0,
"maxCount": 0,
"minCount": 0,
"percentage": 0
}
],
"reversalEnabled": [
"Void"
]
}
],
"transactionFees": [
{
"includeOwnTransactions": true,
"amount": 0,
"typeId": 0,
"name": "string",
"percentage": 0,
"reversalEnabled": [
"Void"
]
}
],
"slidingScaleCounterReset": {
"timeInterval": "Weekly",
"numberOfIntervals": 0
}
},
"sumUpCutOffHour": 0,
"payoutCutOffHour": 0
}| № | Name | Type | Description |
| 1 | id | integer | Platform Account identifier. |
| 2 | serviceProviderId | integer | Service Provider identifier. Serves as SkinID for user authorization purposes. |
| 3 | accountName | string | Platform Account Name. MaxLength(250) |
| 4 | contactEmail | string | Platform Account contact email address. MaxLength(50) |
| 5 | manualPayout | bool | Enables manual payout processing option. Disables external payout processor. Deprecated To enable Manual Payouts pass "processor": "None" |
| 6 | skipBalanceCheck | bool | Set True to disable account balance check to perform payout transaction. |
| 7 | negativePayout | bool | Set True to allow negative payouts. |
| 8 | payouts | object | Platform payouts instructions settings. |
| 9 | payoutConfiguration | object | Platform payout processor settings. |
| 10 | billing | object | Platform Account billing settings. Only for Fees, that have feeSource=Platform Account. |
| 11 | sumUpCutOffHour | integer | Auto cut-off value. |
| 12 | payoutCutOffHour | integer | Payout cut-off value. |
| Response Code | Description |
|---|---|
| 200 | Success |
| 400 | Bad Request — Your request is invalid. |
| 401 | Unauthorized — Authorization failed. |
| 403 | Forbidden — Access denied. |
| 404 | Not Found — Wrong URL. |
| 415 | Unsupported Media Type — Wrong request format. |
| 500 | Internal Server Error — We had a problem with our server. Try again later. |
| 503 | Service Unavailable — We’re temporarily offline for maintenance. Please try again later. |
Use GET method to inquire the existing Platform Account parameters packet.
Use this packet to Create (POST method) and/or update the existing Platform Account (PUT method).
Endpoint:
GET
Sandbox: https://sandbox.4levers.com/managementapi/api/accounts/{accountId}
Production: https://managementapi.4levers.com/api/accounts/{accountId}
The Values indicated in the URL are the target Platform Account identifier {accountId} that you want to inquire.
.../api/accounts/{accountId}{
"id": 0,
"serviceProviderId": 0,
"accountName": "string",
"contactEmail": "string",
"manualPayout": true,
"skipBalanceCheck": true,
"negativePayout": true,
"payouts": [
{
"payoutMethodsAch": [
{
"currency": "USD",
"accountNumber": "string",
"accountType": "None",
"entityType": "Personal",
"nameOnAccount": "string",
"routingNumber": "string"
}
],
"calculation": {
"fixedAmount": 0,
"intervalCount": 0,
"intervalGap": 0,
"payoutType": "Fixed",
"percentageAmount": 0
},
"name": "string",
"scheduler": {
"id": 0,
"isSchedulerDisabled": false,
"dayNumber": 0,
"endDate": "2021-02-08T16:59:01.127Z",
"expiration": "UntilDate",
"interval": "Daily",
"intervalCount": 0,
"monthNumber": 0,
"occurrencesQuantity": 0
},
"twoStepApproval": true
}
],
"payoutConfiguration": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
},
"billing": {
"scheduledFees": [
{
"currency": "USD",
"id": 0,
"amount": 0,
"dayNumber": 0,
"endDate": "2021-02-08T16:59:01.127Z",
"expiration": "UntilDate",
"interval": "Daily",
"intervalCount": 0,
"monthNumber": 0,
"name": "string",
"occurrencesQuantity": 0
}
],
"slidingScaleFees": [
{
"id": 0,
"name": "string",
"ranges": [
{
"amount": 0,
"maxCount": 0,
"minCount": 0,
"percentage": 0
}
],
"reversalEnabled": [
"Void"
]
}
],
"transactionFees": [
{
"includeOwnTransactions": true,
"amount": 0,
"typeId": 0,
"name": "string",
"percentage": 0,
"reversalEnabled": [
"Void"
]
}
],
"slidingScaleCounterReset": {
"timeInterval": "Weekly",
"numberOfIntervals": 0
}
},
"sumUpCutOffHour": 0,
"payoutCutOffHour": 0
}| № | Name | Type | Description |
| 1 | id | integer | Platform Account identifier. |
| 2 | serviceProviderId | integer | Service Provider identifier. Serves as SkinID for user authorization purposes. |
| 3 | accountName | string | Platform Account Name. MaxLength(250) |
| 4 | contactEmail | string | Platform Account contact email address. MaxLength(50) |
| 5 | manualPayout | bool | Enables manual payout processing option. Disables external payout processor. Deprecated To enable Manual Payouts pass "processor": "None" |
| 6 | skipBalanceCheck | bool | Set True to disable account balance check to perform payout transaction. |
| 7 | negativepayout | bool | Set True to allow negative payouts. |
| 8 | payouts | object | Platform payouts instructions settings. |
| 9 | payoutconfiguration | object | Platform payout processor settings. |
| 10 | billing | object | Platform Account billing settings. Only for Fees, that have feeSource=Platform Account. |
| 11 | sumupcutoffhour | integer | Auto cut-off value. |
| 12 | payoutcutoffhour | integer | Payout cut-off value. |
| Response Code | Description |
|---|---|
| 200 | Success |
| 400 | Bad Request — Your request is invalid. |
| 401 | Unauthorized — Authorization failed. |
| 403 | Forbidden — Access denied. |
| 404 | Not Found — Wrong URL. |
| 415 | Unsupported Media Type — Wrong request format. |
| 500 | Internal Server Error — We had a problem with our server. Try again later. |
| 503 | Service Unavailable — We’re temporarily offline for maintenance. Please try again later. |
Use POST method to create a Platform Account.
Endpoint:
POST
Sandbox: https://sandbox.4levers.com/managementapi/api/accounts
Production: https://managementapi.4levers.com/api/accounts
New Platform Account parameters values you pass in the request body.
{
"id": 0,
"serviceProviderId": 0,
"accountName": "string",
"contactEmail": "string",
"manualPayout": true,
"skipBalanceCheck": true,
"negativePayout": true,
"payouts": [
{
"payoutMethodsAch": [
{
"currency": "USD",
"accountNumber": "string",
"accountType": "None",
"entityType": "Personal",
"nameOnAccount": "string",
"routingNumber": "string"
}
],
"calculation": {
"fixedAmount": 0,
"intervalCount": 0,
"intervalGap": 0,
"payoutType": "Fixed",
"percentageAmount": 0
},
"name": "string",
"scheduler": {
"id": 0,
"isSchedulerDisabled": false,
"dayNumber": 0,
"endDate": "2021-02-08T16:59:01.127Z",
"expiration": "UntilDate",
"interval": "Daily",
"intervalCount": 0,
"monthNumber": 0,
"occurrencesQuantity": 0
},
"twoStepApproval": true
}
],
"payoutConfiguration": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
},
"billing": {
"scheduledFees": [
{
"currency": "USD",
"id": 0,
"amount": 0,
"dayNumber": 0,
"endDate": "2021-02-08T16:59:01.127Z",
"expiration": "UntilDate",
"interval": "Daily",
"intervalCount": 0,
"monthNumber": 0,
"name": "string",
"occurrencesQuantity": 0
}
],
"slidingScaleFees": [
{
"id": 0,
"name": "string",
"ranges": [
{
"amount": 0,
"maxCount": 0,
"minCount": 0,
"percentage": 0
}
],
"reversalEnabled": [
"Void"
]
}
],
"transactionFees": [
{
"includeOwnTransactions": true,
"amount": 0,
"typeId": 0,
"name": "string",
"percentage": 0,
"reversalEnabled": [
"Void"
]
}
],
"slidingScaleCounterReset": {
"timeInterval": "Weekly",
"numberOfIntervals": 0
}
},
"sumUpCutOffHour": 0,
"payoutCutOffHour": 0
}{
"id": 123
}| № | Name | Type | Optionality | Description |
| 1 | id | integer | required | platform account identifier. |
| 2 | serviceProviderId | integer | required | service provider identifier. |
| 3 | accountName | string | required | platform account name. maxlength(250) |
| 4 | contactEmail | string | required | platform account contact email address. maxlength(50) |
| 5 | manualPayout | bool | optional | enables manual payout processing option. disables external payout processor. deprecated to enable manual payouts pass "processor": "none". |
| 6 | skipBalanceCheck | bool | optional | settrueto disable account balance check to perform payout transaction. |
| 7 | negativePayout | bool | optional | settrueto allow negative payouts. |
| 8 | payouts | object | optional | platform payouts instructions settings. |
| 9 | payoutConfiguration | object | optional | platform payout processor settings. |
| 10 | billing | object | required | platform account billing settings. only for fees, that have feesource=platform account. |
| 11 | sumUpCutOffHour | integer | optional | auto cut-off value. in case empty, values are inherited from the parent system entity. |
| 12 | payoutCutOffHour | integer | optional | payout cut-off value. in case empty and payout and/or scheduled fees included, values are inherited from the parent system entity. |
| № | Name | Type | Description |
| 1 | id | integer | new platform account identifier |
| Response Code | Description |
|---|---|
| 200 | Success |
| 400 | Bad Request — Your request is invalid. |
| 401 | Unauthorized — Authorization failed. |
| 403 | Forbidden — Access denied. |
| 404 | Not Found — Wrong URL. |
| 415 | Unsupported Media Type — Wrong request format. |
| 500 | Internal Server Error — We had a problem with our server. Try again later. |
| 503 | Service Unavailable — We’re temporarily offline for maintenance. Please try again later. |
Use PUT method to update an existing Platform Account. To update a Platform Account, inquire a source Platform Account data packet via GET method and pass it with the PUT method.
Change parameters’ values you wish to override. All the unchanged parameters’ values will be inherited from the source Platform Account data packet.
Endpoint:
PUT
Sandbox: https://sandbox.4levers.com/managementapi/api/accounts/{accountId}
Production: https://managementapi.4levers.com/api/accounts/{accountId}
Values indicated in the URL is a target Platform Account identifier {accountId} that you wish to update.
id value that you pass in the request body is mandatory value and also corresponds to the target Platform Account identifier.
Values in the URL and the request body must match to validate the request.
{
"id": 0,
"serviceProviderId": 0,
"accountName": "string",
"contactEmail": "string",
"manualPayout": true,
"skipBalanceCheck": true,
"negativePayout": true,
"payouts": [
{
"payoutMethodsAch": [
{
"currency": "USD",
"accountNumber": "string",
"accountType": "None",
"entityType": "Personal",
"nameOnAccount": "string",
"routingNumber": "string"
}
],
"calculation": {
"fixedAmount": 0,
"intervalCount": 0,
"intervalGap": 0,
"payoutType": "Fixed",
"percentageAmount": 0
},
"name": "string",
"scheduler": {
"id": 0,
"isSchedulerDisabled": false,
"dayNumber": 0,
"endDate": "2021-02-08T16:59:01.127Z",
"expiration": "UntilDate",
"interval": "Daily",
"intervalCount": 0,
"monthNumber": 0,
"occurrencesQuantity": 0
},
"twoStepApproval": true
}
],
"payoutConfiguration": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
},
"billing": {
"scheduledFees": [
{
"currency": "USD",
"id": 0,
"amount": 0,
"dayNumber": 0,
"endDate": "2021-02-08T16:59:01.127Z",
"expiration": "UntilDate",
"interval": "Daily",
"intervalCount": 0,
"monthNumber": 0,
"name": "string",
"occurrencesQuantity": 0
}
],
"slidingScaleFees": [
{
"id": 0,
"name": "string",
"ranges": [
{
"amount": 0,
"maxCount": 0,
"minCount": 0,
"percentage": 0
}
],
"reversalEnabled": [
"Void"
]
}
],
"transactionFees": [
{
"includeOwnTransactions": true,
"amount": 0,
"typeId": 0,
"name": "string",
"percentage": 0,
"reversalEnabled": [
"Void"
]
}
],
"slidingScaleCounterReset": {
"timeInterval": "Weekly",
"numberOfIntervals": 0
}
},
"sumUpCutOffHour": 0,
"payoutCutOffHour": 0
}
{
"id": "Platform Account Id",
"name": "Platform Account Name"
}| № | Name | Type | Optionality | Description |
| 1 | id | integer | required | Platform account identifier. |
| 2 | serviceProviderId | integer | optional | Service provider identifier. |
| 3 | accountName | string | optional | platform account name. MaxLength(250) |
| 4 | contactEmail | string | optional | Platform account contact email address. MaxLength(50) |
| 5 | manualPayout | bool | optional | Enables manual payout processing option. disables external payout processor. Deprecated to enable manual payouts pass "processor": "none". |
| 6 | skipBalanceCheck | bool | optional | Settrueto disable account balance check to perform payout transaction. |
| 7 | negativePayout | bool | optional | Settrueto allow negative payouts. |
| 8 | payouts | object | optional | Platform payouts instructions settings. |
| 9 | payoutConfiguration | object | optional | Platform payout processor settings. |
| 10 | billing | object | required | Platform account billing settings. only for fees, that have feesource=platform account. |
| 11 | sumUpCutOffHour | integer | optional | Auto cut-off value. |
| 12 | payoutCutOffHour | integer | optional | Payout cut-off value. |
| № | Name | Type | Description |
| 1 | id | integer | New platform account identifier |
| 2 | name | string | New Platform Account name |
| Response Code | Description |
|---|---|
| 200 | Success |
| 400 | Bad Request — Your request is invalid. |
| 401 | Unauthorized — Authorization failed. |
| 403 | Forbidden — Access denied. |
| 404 | Not Found — Wrong URL. |
| 415 | Unsupported Media Type — Wrong request format. |
| 500 | Internal Server Error — We had a problem with our server. Try again later. |
| 503 | Service Unavailable — We’re temporarily offline for maintenance. Please try again later. |
| № | Name | Type | Optionality | Description |
| 1 | parameters | string | required | Processor parameters. Pre-populated for each processor individually. |
| 2 | processor | Sys.Enum | required | Processors’ names. Determined by the Service Provider. Do not change to create/update a Sub-Account. Pass "processor": "None" to enable Manual Payouts.Effects only ACH payouts. |
| № | Name | Type | Optionality | Description |
| 1 | calculation | object | required | Payout amount calculation parameters. |
| 2 | name | string | required | Payout name. Max (250) |
| 3 | payoutMethodACH | object | required | A list of ach payment method parameters for all system currencies. You can specify different parameters for each currency. |
| 4 | scheduler | object | required | Payout configurations. |
| 5 | twoStepApproval | bool | optional | Enables two step payout approval: authorization and manual confirmation. |
| № | Name | Type | Optionality | Description | ||||||
| 1 | Currency | Enum | Required |
Transactions processing currency type. Avaliable Values:
|
||||||
| 2 | AccountNumber | String | Required | Ach account number. max (17). min (3) | ||||||
| 3 | NameOnAccount | String | Required | Ach account name. max (120). | ||||||
| 4 | RoutingNumber | String | Required | Ach bank routing number. max (9). min (9) | ||||||
| 5 | AccountType | Enum | Optionality |
Ach account type. Avaliable Values:
|
||||||
| 6 | EntityType | Enum | Optionality | Ach entity type.
Avaliable Values:
|
||||||
| 7 | UseBillingAdress | Bool | Required | Must be always “true” if ‘id’ in “processor” object of “cibc us” | ||||||
| 8 | billingAddress | Object | Conditional | Required if “usebillingadress” = true, else optional |
| № | Name | Type | Optionality | Description | ||||||||||||
| 1 | FixedAmount | Double | Optional | Payout amount. Must be greater than 0. required if payouttype = fixed. | ||||||||||||
| 2 | PercentageAmount | Double | Optional | Payout amount taken as a percentage of the total account balance for a selected date or a time period. Must be greater than 0. Required if payouttype = percentage. | ||||||||||||
| 3 | IntervalCount | Integer | Optional | Payout intervals count. Must be greater than 0 and required if payouttype = pastinterval. | ||||||||||||
| 4 | IntervalGap | Integer | Optional | Payout interval gap. Must be greater than 0 and required if payouttype = pastinterval/pastdate. | ||||||||||||
| 5 | PayoutType | Enum | Optional |
Payout amount calculation mode. Avaliable Values:
|
| № | Name | Type | Optionality | Description | ||||||||||||
| 1 | id | integer | optional | Payouts scheduler identifier. | ||||||||||||
| 2 | isSchedulerDisabled | bool | optional | Set "isschedulerdisabled": true or false to enable/disable a payout scheduler. | ||||||||||||
| 3 | dayNumber | integer | optional | Ppayout day sequence number. must be greater than 0. | ||||||||||||
| 4 | endDate | datetime | optional | Payout expiration date. must be greater than datetime.now, if expiration is set to untildate. | ||||||||||||
| 5 | expiration | enum | optional | payout expiration settings. Avaliable Values:
| ||||||||||||
| 6 | interval | enum | optional | Payout interval. Avaliable Values:
| ||||||||||||
| 7 | intervalCount | integer | optional | Day or month (for monthly option) sequential number. must be greater than 0 | ||||||||||||
| 8 | monthNumber | integer | optional | Month sequential number. maximum = 12. minimum = 1. required if interval=yearly. | ||||||||||||
| 9 | occurencesQuantity | integer | optional | Payouts quantity. required and greater than 0 if expiration=limitedcount. |
| № | Name | Type | Optionality | Description |
| 1 | scheduledFees | list | Optional | Scheduled fees settings. |
| 2 | slidingScaleFees | list | Optional | Scale range fees settings. |
| 3 | transactionFees | list | Optional | Per transaction fees settings. |
| 4 | slidingScaleCounterReset | object | Optional | Counter reset for Sliding Scale fees. |
| № | Name | Type | Optionality | Description | ||||||||||||
| 1 | timeInterval | enum | required | Counter reset intervals. Avaliable Values:
| ||||||||||||
| 2 | numberOfIntervals | integer | required | Enter number of intervals for a selected timeInterval. The counter will reset every number of intervals that you determine: timeInterval=Weekly numberOfIntervals=2 Counter will reset every two weeks |
| № | Name | Type | Optionality | Description | ||||||||||||
| 1 | currency | enum | required | A list of CurrencyTypesIDs. Avaliable Values:
| ||||||||||||
| 2 | id | integer | required | Scheduled fees identifier. | ||||||||||||
| 3 | amount | double | required | Fee amount. Max 2 decimal places. | ||||||||||||
| 4 | dayNumber | integer | required | Day sequential number. 0 is not allowed for “interval”: “Yearly” and “interval”: “Monthly”. 0 is allowed for “interval”: “Daily” and “interval”: “Weekly”. | ||||||||||||
| 5 | endDate | datetime | required | Fee expiration date. Must be greater than DateTime.Now, if Expiration is set to UntilDate. | ||||||||||||
| 6 | expiration | enum | required | Fee expiration settings. Avaliable Values:
| ||||||||||||
| 7 | interval | enum | required | Fee interval. Avaliable Values:
| ||||||||||||
| 8 | intervalCount | integer | required | Day or Month (for a monthly option) sequential number. Must be greater than 0. | ||||||||||||
| 9 | monthNumber | integer | required | Month sequential number. Maximum = 12. Minimum = 1. Required if Interval=Yearly. | ||||||||||||
| 10 | name | string | required | Fee name. Max (50) | ||||||||||||
| 11 | occurencesQuantity | integer | required | Number of a Fee occurrences. Required if Expiration=LimitedCount. |
Can be amount, percentage or combination of the two.
| № | Name | Type | Optionality | Description |
| 1 | amount | double | required | Fee amount. ^\d+(\.\d{1,2})?$ Max 2 decimal places. |
| 2 | percentage | double | required | Fee percentage amount. Max 6 decimal places. |
| 3 | maxCount | integer | required | Maximum transactions count. Must be greater than MinCount. “maxCount” can be equal to “minCount”. |
| 4 | minCount | integer | required | Minimum transactions count. Must be greater than 0. |
| № | Name | Type | Optionality | Description | ||||||||||
| 1 | amount | double | optional | Fee amount. Max 2 decimal places. ^\d+(\.\d{1,2})?$ Required if fee is a fixed amount. | ||||||||||
| 2 | typeId | integer | required | Fee identifier. | ||||||||||
| 3 | percentage | double | optional | Fee percentage amount. Max 6 decimal places. Required if fee is a percentage amount. | ||||||||||
| 4 | includeOwnTransactions | bool | optional | Set "includeOwnTransactions": true to make own transactions and subordinate entities transactions trigger entity fees. | ||||||||||
| 5 | name | string | required | Fee name. | ||||||||||
| 6 | reversalEnabled | enum | optional | Enables fees reversal for Refund, Void and Cancel transaction types. Avaliable Values:
|
| № | Name | Type | Optionality | Description |
| 1 | country | string | conditional | Required if “useBillingAdress” = true else optional country value in the list of available countries. reg exp: /^([a-z]|[A-Z])*$/ |
| 2 | streetAddress | string | conditional | Required if “useBillingAdress” = true else optional reg exp: /^([a-z]|[A-Z]|[0-9]|[.]|[-]|[,]|[+]|[ ]|[/]|[‘])*$/ |
| 3 | city | string | conditional | Required if “useBillingAdress” = true else optional reg exp: /^([a-z]|[A-Z]|[0-9]|[,]|[-]|[ ])*$/ |
| 4 | province | string | conditional | Required if “useBillingAdress” = true and “processor” = “CIBC US” else optional reg exp: /^([a-z]|[A-Z])*$/ |
| 5 | zipCode | string | conditional | Required if “useBillingAdress” = true else optional reg exp: /^([a-z]|[A-Z]|[0-9]|[,]|[-]|[ ])*$/ |
Sub-Accounts Management RESTful Web Service API offers 4 methods:
serviceProviderIdsubAccountIdIn each method you pass a Sub-Account configuration data packet. In the data packet you change values you need to override, other values will be inherited from the source Sub-Account.
Sub-Account Onboarding Flow
1. Invoke GET method to inquire a Sub-Account parameters data packet by the subAccountId or by the serviceProviderId.
2. With the data packet you have received with the GET method you can Create a new Sub-Account using the POST method or Update an existing Sub-Account using the PUT method.
3. Take the data packet you have received with GET method and change values you wish to override. All the unchanged values will be inherited from the source Sub-Account or a template.
Basic Endpoints Sandbox: https://sandbox.4levers.com/managementapi/api/
Basic Endpoints Production: https://managementapi.4levers.com/api/
Use GET Sub-Account Configurations method to inquire all the possible Sub-Account configurations offered by your Service Provider.
Specify (change or pick) necessary parameters, remove what you do not need and use this data packet with POST (Create Sub-Account) method to create a new Sub-Account.
Use GET Sub-Account method to inquire parameters of an existing Sub-Account.
In this case you will receive a limited set of parameters that belong to a specific Sub-Account.
You can take this data and use in POST (Create Sub-Account) method to create a Sub-Account with the same parameters or change it and create a new Sub-Account.
Endpoint:
GET
Sandbox: https://sandbox.4levers.com/managementapi/api/serviceproviders/{serviceProviderId}/template
Production: https://managementapi.4levers.com/api/serviceproviders/{serviceProviderId}/template
In the request URL you enter a target {serviceProviderId} you wish to inquire Sub-Account settings from.
.../api/serviceproviders/{serviceProviderId}/template
{
"accountId": 0,
"subAccountId": 0,
"merchantId": "string",
"externalId": "string",
"mcc": "string",
"applicationId": 0,
"accountName": "string",
"signUpDate": "2021-04-07T04:44:58.6666666",
"approvalDate": "2021-04-08T04:44:58.7777777",
"boardingDate": "2021-04-09T04:44:58.8888888",
"modificationDate": "2021-04-09T05:44:58.9999999",
"billing": {
"interchangeFeesRegions": [
0
],
"interchangeFeesReversalEnabled": [
"Void"
],
"interchangeFeesOverride": {
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
},
"interchangeFeeSeason": {
"dateFrom": "2021-04-07T04:44:58.6666666",
"dateTo": "2021-04-12T04:44:58.6666666",
"offSeasonMonth": [
0
]
},
"scheduledFees": [
{
"id": 0,
"amount": 0,
"dayNumber": 0,
"endDate": "2021-04-12T04:44:58.6666666",
"expiration": "UntilDate",
"interval": "Daily",
"intervalCount": 0,
"monthNumber": 0,
"name": "string",
"occurrencesQuantity": 0,
"override": {
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
},
"feeSeason": {
"dateFrom": "2021-04-07T04:44:58.6666666",
"dateTo": "2021-04-12T04:44:58.6666666",
"offSeasonMonth": [
0
]
}
}
],
"slidingScaleFees": [
{
"feePriorityLevel": 0,
"id": 0,
"name": "string",
"ranges": [
{
"amount": 0,
"maxCount": 0,
"minCount": 0,
"percentage": 0
}
],
"reversalEnabled": [
"Void"
],
"feeSeason": {
"dateFrom": "2021-04-07T04:44:58.6666666",
"dateTo": "2021-04-12T04:44:58.6666666",
"offSeasonMonth": [
0
]
},
"override": {
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
},
"buyrate": {
"amount": 0,
"percentage": 0,
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0,
"buyrateGapPayer":"Agent",
"buyrateGapPayerAgentId":0,
"buyrateGapPayerSubAccountId": 0
},
"split": [
{
"priorityLevel": 0,
"percentage": 0,
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
}
]
}
],
"transactionFees": [
{
"feePriorityLevel": 0,
"amount": 0,
"typeId": 0,
"name": "string",
"percentage": 0,
"buyrate": {
"amount": 0,
"percentage": 0,
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0,
"buyrateGapPayer":"Agent",
"buyrateGapPayerAgentId":0,
"buyrateGapPayerSubAccountId": 0
},
"split": [
{
"priorityLevel": 0,
"percentage": 0,
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
}
],
"reversalEnabled": [
"Void"
],
"feeSeason": {
"dateFrom": "2021-04-07T04:44:58.6666666",
"dateTo": "2021-04-12T04:44:58.6666666",
"offSeasonMonth": [
0
]
},
"override": {
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
}
}
],
"slidingScaleCounterReset": {
"timeInterval": "Weekly",
"numberOfIntervals": 0
}
},
"payouts": {
"manualPayout": true,
"negativePayout": true,
"payouts": [
{
"payoutMethodAch": {
"accountNumber": "string",
"accountType": "None",
"entityType": "Personal",
"nameOnAccount": "string",
"routingNumber": "string"
},
"calculation": {
"fixedAmount": 0,
"intervalCount": 0,
"intervalGap": 0,
"payoutType": "Fixed",
"percentageAmount": 0
},
"name": "string",
"scheduler": {
"id": 0,
"isSchedulerDisabled": false,
"dayNumber": 0,
"endDate": "2021-04-12T04:44:58.6666666",
"expiration": "UntilDate",
"interval": "Daily",
"intervalCount": 0,
"monthNumber": 0,
"occurrencesQuantity": 0
},
"twoStepApproval": true
}
],
"processor": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
},
"cardOnFileProcessorConfiguration": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
},
"payoutMethodCreditCard": {
"creditCardNumber": "string",
"creditCardNameOnCard": "string",
"creditCardExpirationDate": "string",
"creditCardCVV": "string"
},
"skipBalanceCheck": true
},
"processing": {
"ach": {
"processors": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
}
},
"creditCards": {
"autoCapture": true,
"giftCardsEnabled": true,
"creditCardTypes": [
"Visa"
],
"threeDSecure": "true",
"processors": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
},
"tokenization": [
"External"
]
},
"currency": "USD",
"fraudPreventionEnabled": true,
"recurringBilling": {
"autoRenewalEnabled": true,
"recurringEngineEnabled": true,
"subscriptionsEnabled": true
},
"transactionMode": "Processing"
},
"serviceProviderId": 0,
"subAccountName": "string",
"payoutCutOffHour": 0,
"sumUpCutOffHour": 0,
"merchantStatement": {
"merchantNumber": "string",
"merchantName": "string",
"merchantDBA": "string",
"autoDeliveryContactEmail": "string"
},
"isTemplate": true
}
| № | Name | Type | Description | |
| 1 | accountId | integer | Platform Account identifier. | |
| 2 | subAccountId | integer | Sub-Account identifier. | |
| 3 | merchantId | string | Merchant identifier (MID). | |
| 4 | externalId | string | Merchant external identifier. | |
| 5 | mcc | string | Merchant Category Code (MCC). | |
| 6 | applicationId | integer | Underwriting application identifier. | |
| 7 | accountName | string | Max250 Platform Account Name. | |
| 8 | signUpDate | datetime | ||
| 9 | approvalDate | datetime | ||
| 10 | boardingDate | datetime | ||
| 11 | modificationDate | datetime | ||
| 12 | billing | object | Sub-Account billing settings. Only for Fees, that have feeSource=Sub-Account. | |
| 13 | payouts | object | Sub-Account payouts settings. | |
| 14 | processing | object | Sub-Account processing settings. | |
| 15 | serviceProviderId | integer | Service Provider identifier. Serves as SkinID for user authorization purposes. | |
| 16 | subAccountName | string | Sub-Account name. varchar(50) | |
| 17 | sumUpCutOffHour | integer | Auto cut-off value. | |
| 18 | payoutCutOffHour | integer | Payout cut-off value. | |
| 19 | merchantStatement | object | Merchant statement settings. | |
| 20 | isTemplate | boolean | Defines a template account |
| Response Code | Description |
|---|---|
| 400 | Bad Request — Your request is invalid. |
| 401 | Unauthorized — Authorization failed. |
| 403 | Forbidden — Access denied. |
| 404 | Not Found — Wrong URL. |
| 415 | Unsupported Media Type — Wrong request format. |
| 500 | Internal Server Error — We had a problem with our server. Try again later. |
| 503 | Service Unavailable — We’re temporarily offline for maintenance. Please try again later. |
Use this packet to Create (POST method) and/or update existing Sub-Account (PUT method).
Use Get Sub-Account Configurations method to inquire all the available Sub-Account settings from your service provider.
Endpoint:
GET
Sandbox: https://sandbox.4levers.com/managementapi/api/accounts/{accountId}/subaccounts/{subAccountId}
Production: https://managementapi.4levers.com/api/accounts/{accountId}/subaccounts/{subAccountId}
The Values indicated in the URL are the target Platform Account identifier {accountId} and the target Sub-Account identifier {subAccountId} that you want to inquire.
.../api/accounts/{accountId}/subaccounts/{subAccountId}
{
"accountId": 0,
"subAccountId": 0,
"merchantId": "string",
"externalId": "string",
"mcc": "string",
"applicationId": 0,
"accountName": "string",
"signUpDate": "2021-04-07T04:44:58.6666666",
"approvalDate": "2021-04-08T04:44:58.7777777",
"boardingDate": "2021-04-09T04:44:58.8888888",
"modificationDate": "2021-04-09T05:44:58.9999999",
"billing": {
"interchangeFeesRegions": [
0
],
"interchangeFeesReversalEnabled": [
"Void"
],
"interchangeFeesOverride": {
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
},
"interchangeFeeSeason": {
"dateFrom": "2021-04-07T04:44:58.6666666",
"dateTo": "2021-04-12T04:44:58.6666666",
"offSeasonMonth": [
0
]
},
"scheduledFees": [
{
"id": 0,
"amount": 0,
"dayNumber": 0,
"endDate": "2021-04-12T04:44:58.6666666",
"expiration": "UntilDate",
"interval": "Daily",
"intervalCount": 0,
"monthNumber": 0,
"name": "string",
"occurrencesQuantity": 0,
"override": {
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
},
"feeSeason": {
"dateFrom": "2021-04-07T04:44:58.6666666",
"dateTo": "2021-04-12T04:44:58.6666666",
"offSeasonMonth": [
0
]
}
}
],
"slidingScaleFees": [
{
"feePriorityLevel": 0,
"id": 0,
"name": "string",
"ranges": [
{
"amount": 0,
"maxCount": 0,
"minCount": 0,
"percentage": 0
}
],
"reversalEnabled": [
"Void"
],
"feeSeason": {
"dateFrom": "2021-04-07T04:44:58.6666666",
"dateTo": "2021-04-12T04:44:58.6666666",
"offSeasonMonth": [
0
]
},
"override": {
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
},
"buyrate": {
"amount": 0,
"percentage": 0,
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
"buyrateGapPayer":"Agent",
"buyrateGapPayerAgentId":0,
"buyrateGapPayerSubAccountId": 0
},
"split": [
{
"priorityLevel": 0,
"percentage": 0,
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
}
]
}
],
"transactionFees": [
{
"feePriorityLevel": 0,
"amount": 0,
"typeId": 0,
"name": "string",
"percentage": 0,
"buyrate": {
"amount": 0,
"percentage": 0,
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
"buyrateGapPayer":"Agent",
"buyrateGapPayerAgentId":0,
"buyrateGapPayerSubAccountId": 0
},
"split": [
{
"priorityLevel": 0,
"percentage": 0,
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
}
],
"reversalEnabled": [
"Void"
],
"feeSeason": {
"dateFrom": "2021-04-07T04:44:58.6666666",
"dateTo": "2021-04-12T04:44:58.6666666",
"offSeasonMonth": [
0
]
},
"override": {
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
}
}
],
"slidingScaleCounterReset": {
"timeInterval": "Weekly",
"numberOfIntervals": 0
}
},
"payouts": {
"manualPayout": true,
"negativePayout": true,
"payouts": [
{
"payoutMethodAch": {
"accountNumber": "string",
"accountType": "None",
"entityType": "Personal",
"nameOnAccount": "string",
"routingNumber": "string"
},
"calculation": {
"fixedAmount": 0,
"intervalCount": 0,
"intervalGap": 0,
"payoutType": "Fixed",
"percentageAmount": 0
},
"name": "string",
"scheduler": {
"id": 0,
"isSchedulerDisabled": false,
"dayNumber": 0,
"endDate": "2021-04-12T04:44:58.6666666",
"expiration": "UntilDate",
"interval": "Daily",
"intervalCount": 0,
"monthNumber": 0,
"occurrencesQuantity": 0
},
"twoStepApproval": true
}
],
"processor": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
},
"cardOnFileProcessorConfiguration": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
},
"payoutMethodCreditCard": {
"creditCardNumber": "string",
"creditCardNameOnCard": "string",
"creditCardExpirationDate": "string",
"creditCardCVV": "string"
},
"skipBalanceCheck": true
},
"processing": {
"ach": {
"processors": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
}
},
"creditCards": {
"autoCapture": true,
"giftCardsEnabled": true,
"creditCardTypes": [
"Visa"
],
"threeDSecure": "true",
"processors": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
},
"tokenization": [
"External"
]
},
"currency": "USD",
"fraudPreventionEnabled": true,
"recurringBilling": {
"autoRenewalEnabled": true,
"recurringEngineEnabled": true,
"subscriptionsEnabled": true
},
"transactionMode": "Processing"
},
"serviceProviderId": 0,
"subAccountName": "string",
"payoutCutOffHour": 0,
"sumUpCutOffHour": 0,
"merchantStatement": {
"merchantNumber": "string",
"merchantName": "string",
"merchantDBA": "string",
"autoDeliveryContactEmail": "string"
},
"isTemplate": true
}
| № | Name | Type | Description | |
| 1 | accountId | integer | Platform Account identifier. | |
| 2 | subAccountId | integer | Sub-Account identifier. | |
| 3 | merchantId | string | Merchant identifier (MID). | |
| 4 | externalId | string | Merchant external identifier. | |
| 5 | mcc | string | Merchant Category Code (MCC). | |
| 6 | applicationId | integer | Underwriting application identifier. | |
| 7 | accountName | string | Max250 Platform Account Name. | |
| 8 | signUpDate | datetime | ||
| 9 | approvalDate | datetime | ||
| 10 | boardingDate | datetime | ||
| 11 | billing | object | Sub-Account billing settings. Only for Fees, that have feeSource=Sub-Account. | |
| 12 | payouts | object | Sub-Account payouts settings. | |
| 13 | processing | object | Sub-Account processing settings. | |
| 14 | serviceProviderId | integer | Service Provider identifier. Serves as SkinID for user authorization purposes. | |
| 15 | subAccountName | string | Sub-Account name. varchar(50) | |
| 16 | sumUpCutOffHour | integer | Auto cut-off value. | |
| 17 | payoutCutOffHour | integer | Payout cut-off value. | |
| 18 | merchantStatement | object | Merchant statement settings. | |
| 19 | isTemplate | boolean | Defines a template account |
| Response Code | Description |
|---|---|
| 400 | Bad Request — Your request is invalid. |
| 401 | Unauthorized — Authorization failed. |
| 403 | Forbidden — Access denied. |
| 404 | Not Found — Wrong URL. |
| 415 | Unsupported Media Type — Wrong request format. |
| 500 | Internal Server Error — We had a problem with our server. Try again later. |
| 503 | Service Unavailable — We’re temporarily offline for maintenance. Please try again later. |
Use POST method to create a new Sub-Account. To create a new Sub-Account, inquire a source (template) Sub-Account data packet via GET method and pass it with the POST method.
Endpoint:
POST
Sandbox: https://sandbox.4levers.com/managementapi/api/accounts/{accountId}/subaccounts
Production: https://managementapi.4levers.com/api/accounts/{accountId}/subaccounts
The value indicated in the URL is a target Platform Account identifier {accountId} you are creating a new Sub-Account for.
New Sub-Account parameters values you pass in the request body.
Change parameters values you wish to override. Other (unchanged) values will be copied to a new Sub-Account as is.
New Sub-Accounts are being assigned with an identifier, following the last existing Sub-Account identifier of the relevant account (e.g. for account 220.1 will be created a new Sub-Account 220.2)
Example
You pass a 220 Platform Account identifier as a target Platform Account identifier in your API request URL.
In your request body you pass the accountId = 911 and the subAccountId = 1 as a source Platform Account and Sub-Account.
The System will automatically create a Sub-Account for target Platform Account 220 with configurations inherited from Platform Account 911.1
You can override the source Sub-Account configurations by changing the appropriate parameters values in the request body.
{
"accountId": 0,
"subAccountId": 0,
"merchantId": "string",
"externalId": "string",
"mcc": "string",
"applicationId": 0,
"accountName": "string",
"billing": {
"interchangeFeesRegions": [
0
],
"interchangeFeesReversalEnabled": [
"Void"
],
"interchangeFeesOverride": {
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
},
"interchangeFeeSeason": {
"dateFrom": "2021-04-07T04:44:58.6666666",
"dateTo": "2021-04-12T04:44:58.6666666",
"offSeasonMonth": [
0
]
},
"scheduledFees": [
{
"id": 0,
"amount": 0,
"dayNumber": 0,
"endDate": "2021-04-12T04:44:58.6666666",
"expiration": "UntilDate",
"interval": "Daily",
"intervalCount": 0,
"monthNumber": 0,
"name": "string",
"occurrencesQuantity": 0,
"override": {
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
},
"feeSeason": {
"dateFrom": "2021-04-07T04:44:58.6666666",
"dateTo": "2021-04-12T04:44:58.6666666",
"offSeasonMonth": [
0
]
}
}
],
"slidingScaleFees": [
{
"feePriorityLevel": 0,
"id": 0,
"name": "string",
"ranges": [
{
"amount": 0,
"maxCount": 0,
"minCount": 0,
"percentage": 0
}
],
"reversalEnabled": [
"Void"
],
"feeSeason": {
"dateFrom": "2021-04-07T04:44:58.6666666",
"dateTo": "2021-04-12T04:44:58.6666666",
"offSeasonMonth": [
0
]
},
"override": {
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
},
"buyrate": {
"amount": 0,
"percentage": 0,
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0,
"buyrateGapPayer":"Agent",
"buyrateGapPayerAgentId":0,
"buyrateGapPayerSubAccountId": 0
},
"split": [
{
"priorityLevel": 0,
"percentage": 0,
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
}
]
}
],
"transactionFees": [
{
"feePriorityLevel": 0,
"amount": 0,
"typeId": 0,
"name": "string",
"percentage": 0,
"buyrate": {
"amount": 0,
"percentage": 0,
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0,
"buyrateGapPayer":"Agent",
"buyrateGapPayerAgentId":0,
"buyrateGapPayerSubAccountId": 0
},
"split": [
{
"priorityLevel": 0,
"percentage": 0,
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
}
],
"reversalEnabled": [
"Void"
],
"feeSeason": {
"dateFrom": "2021-04-07T04:44:58.6666666",
"dateTo": "2021-04-12T04:44:58.6666666",
"offSeasonMonth": [
0
]
},
"override": {
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
}
}
],
"slidingScaleCounterReset": {
"timeInterval": "Weekly",
"numberOfIntervals": 0
}
},
"payouts": {
"manualPayout": true,
"negativePayout": true,
"payouts": [
{
"payoutMethodAch": {
"accountNumber": "string",
"accountType": "None",
"entityType": "Personal",
"nameOnAccount": "string",
"routingNumber": "string"
},
"calculation": {
"fixedAmount": 0,
"intervalCount": 0,
"intervalGap": 0,
"payoutType": "Fixed",
"percentageAmount": 0
},
"name": "string",
"scheduler": {
"id": 0,
"isSchedulerDisabled": false,
"dayNumber": 0,
"endDate": "2021-04-12T04:44:58.6666666",
"expiration": "UntilDate",
"interval": "Daily",
"intervalCount": 0,
"monthNumber": 0,
"occurrencesQuantity": 0
},
"twoStepApproval": true
}
],
"processor": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
},
"cardOnFileProcessorConfiguration": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
},
"payoutMethodCreditCard": {
"creditCardNumber": "string",
"creditCardNameOnCard": "string",
"creditCardExpirationDate": "string",
"creditCardCVV": "string"
},
"skipBalanceCheck": true
},
"processing": {
"ach": {
"processors": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
}
},
"creditCards": {
"autoCapture": true,
"giftCardsEnabled": true,
"creditCardTypes": [
"Visa"
],
"threeDSecure": "true",
"processors": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
},
"tokenization": [
"External"
]
},
"currency": "USD",
"fraudPreventionEnabled": true,
"recurringBilling": {
"autoRenewalEnabled": true,
"recurringEngineEnabled": true,
"subscriptionsEnabled": true
},
"transactionMode": "Processing"
},
"serviceProviderId": 0,
"subAccountName": "string",
"payoutCutOffHour": 0,
"sumUpCutOffHour": 0,
"merchantStatement": {
"merchantNumber": "string",
"merchantName": "string",
"merchantDBA": "string",
"autoDeliveryContactEmail": "string"
},
}
{
"account":101,
"subAccount":84,
"apiKey":"ac319cffc217497684eff81736a3786d",
"merchantIdFound": [
"101.1",
"101.2"
]
}
| № | Name | Type | Optionality | Description |
| 1 | accountId | integer | required | Platform Account identifier. |
| 2 | subAccountId | integer | optional | Source Sub-Account identifier. |
| 3 | merchantId | string | optional | Merchant identifier (MID). |
| 4 | externalId | string | optional | Merchant external identifier. |
| 5 | mcc | string | optional | Merchant Category Code (MCC). |
| 6 | applicationId | integer | optional | Underwriting application identifier. Required if the related Service Provider has “Require Underwriting” = Yes and “Can override” is not checked. Optional if if the related Service Provider has “Require Underwriting” = Yes and “Can override” is checked. |
| 7 | accountName | string | required | Max250 Platform Account Name. |
| 8 | billing | object | optional | Sub-Account billing settings. Only for Fees, that have feeSource=Sub-Account. |
| 9 | payouts | object | optional | Sub-Account payouts settings. |
| 10 | processing | object | required | Sub-Account processing settings. |
| 11 | serviceProviderId | integer | required | Service Provider identifier. Serves as SkinID for user authorization purposes. |
| 12 | subAccountName | string | required | Sub-Account name. varchar(50) |
| 13 | sumUpCutOffHour | integer | optional | Auto cut-off value. In case empty, values are inherited from the parent system entity |
| 14 | payoutCutOffHour | integer | optional | Payout cut-off value. In case empty and payout and/or scheduled fees included, values are inherited from the parent system entity. |
| 15 | merchantStatement | object | optional | Merchant statement settings. |
| 16 | isTemplate | boolean | optional | Defines a template account |
| № | Name | Type | Description |
| 1 | account | integer | New Platform Account identifier. |
| 2 | subAccount | integer | New Sub-Account identifier. |
| 3 | apiKey | string | API key. Required parameter for Tokenization API. |
| 4 | merchantIdFound | array | Array with the id (PlatdormId.Sub-AccountId) of existing Sub-Accounts with the same MID. |
| Response Code | Description |
|---|---|
| 201 | Created — Sub-Account has been created successfully. |
| 400 | Bad Request — Your request is invalid. |
| 401 | Unauthorized — Authorization failed. |
| 403 | Forbidden — Access denied. |
| 404 | Not Found — Wrong URL. |
| 415 | Unsupported Media Type — Wrong request format. |
| 500 | Internal Server Error — We had a problem with our server. Try again later. |
| 503 | Service Unavailable — We’re temporarily offline for maintenance. Please try again later. |
Use PUT method to update existing Sub-Account parameters. To update a Sub-Account, inquire a source (template) Sub-Account data packet via GET method and pass it with the PUT method.
Change parameters’ values you wish to override. All the unchanged parameters’ values will be inherited from the source Sub-Account data packet.
Endpoint:
PUT
Sandbox: https://sandbox.4levers.com/managementapi/api/accounts/{accountId}/subaccounts/{subAccountId}
Production: https://managementapi.4levers.com/api/accounts/{accountId}/subaccounts/{subAccountId}
Values indicated in the URL are the target Platform Account identifier {accountId} and the target Sub-Account identifier {accountId} that you wish to update.
accountId and subAccountId parameters values that you pass in the request body are mandatory values and also correspond to the target Platform Account identifier and the target Sub-Account identifier.
Values in the URL and the request body must match to validate the request.
{
"accountId": 0,
"subAccountId": 0,
"merchantId": "string",
"externalId": "string",
"mcc": "string",
"applicationId": 0,
"accountName": "string",
"billing": {
"interchangeFeesRegions": [
0
],
"interchangeFeesReversalEnabled": [
"Void"
],
"interchangeFeesOverride": {
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
},
"interchangeFeeSeason": {
"dateFrom": "2021-04-07T04:44:58.6666666",
"dateTo": "2021-04-12T04:44:58.6666666",
"offSeasonMonth": [
0
]
},
"scheduledFees": [
{
"id": 0,
"amount": 0,
"dayNumber": 0,
"endDate": "2021-04-12T04:44:58.6666666",
"expiration": "UntilDate",
"interval": "Daily",
"intervalCount": 0,
"monthNumber": 0,
"name": "string",
"occurrencesQuantity": 0,
"override": {
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
},
"feeSeason": {
"dateFrom": "2021-04-07T04:44:58.6666666",
"dateTo": "2021-04-12T04:44:58.6666666",
"offSeasonMonth": [
0
]
}
}
],
"slidingScaleFees": [
{
"feePriorityLevel": 0,
"id": 0,
"name": "string",
"ranges": [
{
"amount": 0,
"maxCount": 0,
"minCount": 0,
"percentage": 0
}
],
"reversalEnabled": [
"Void"
],
"feeSeason": {
"dateFrom": "2021-04-07T04:44:58.6666666",
"dateTo": "2021-04-12T04:44:58.6666666",
"offSeasonMonth": [
0
]
},
"override": {
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
},
"buyrate": {
"amount": 0,
"percentage": 0,
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0,
"buyrateGapPayer":"Agent",
"buyrateGapPayerAgentId":0,
"buyrateGapPayerSubAccountId": 0
},
"split": [
{
"priorityLevel": 0,
"percentage": 0,
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
}
]
}
],
"transactionFees": [
{
"feePriorityLevel": 0,
"amount": 0,
"typeId": 0,
"name": "string",
"percentage": 0,
"buyrate": {
"amount": 0,
"percentage": 0,
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0,
"buyrateGapPayer":"Agent",
"buyrateGapPayerAgentId":0,
"buyrateGapPayerSubAccountId": 0
},
"split": [
{
"priorityLevel": 0,
"percentage": 0,
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
}
],
"reversalEnabled": [
"Void"
],
"feeSeason": {
"dateFrom": "2021-04-07T04:44:58.6666666",
"dateTo": "2021-04-12T04:44:58.6666666",
"offSeasonMonth": [
0
]
},
"override": {
"source": "SubAccount",
"target": "Platform",
"sourceSubAccountId": 0,
"targetSubAccountId": 0,
"sourceAgentId": 0,
"targetAgentId": 0
}
}
],
"slidingScaleCounterReset": {
"timeInterval": "Weekly",
"numberOfIntervals": 0
}
},
"payouts": {
"manualPayout": true,
"negativePayout": true,
"payouts": [
{
"payoutMethodAch": {
"accountNumber": "string",
"accountType": "None",
"entityType": "Personal",
"nameOnAccount": "string",
"routingNumber": "string"
},
"calculation": {
"fixedAmount": 0,
"intervalCount": 0,
"intervalGap": 0,
"payoutType": "Fixed",
"percentageAmount": 0
},
"name": "string",
"scheduler": {
"id": 0,
"isSchedulerDisabled": false,
"dayNumber": 0,
"endDate": "2021-04-12T04:44:58.6666666",
"expiration": "UntilDate",
"interval": "Daily",
"intervalCount": 0,
"monthNumber": 0,
"occurrencesQuantity": 0
},
"twoStepApproval": true
}
],
"processor": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
},
"cardOnFileProcessorConfiguration": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
},
"payoutMethodCreditCard": {
"creditCardNumber": "string",
"creditCardNameOnCard": "string",
"creditCardExpirationDate": "string",
"creditCardCVV": "string"
},
"skipBalanceCheck": true
},
"processing": {
"ach": {
"processors": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
}
},
"creditCards": {
"autoCapture": true,
"giftCardsEnabled": true,
"creditCardTypes": [
"Visa"
],
"threeDSecure": "true",
"processors": {
"id": 0,
"parameters": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"processor": "NoAcquirer"
},
"tokenization": [
"External"
]
},
"currency": "USD",
"fraudPreventionEnabled": true,
"recurringBilling": {
"autoRenewalEnabled": true,
"recurringEngineEnabled": true,
"subscriptionsEnabled": true
},
"transactionMode": "Processing"
},
"serviceProviderId": 0,
"subAccountName": "string",
"payoutCutOffHour": 0,
"sumUpCutOffHour": 0,
"merchantStatement": {
"merchantNumber": "string",
"merchantName": "string",
"merchantDBA": "string",
"autoDeliveryContactEmail": "string"
}
}
{
"id": "Sub-Account Id",
"name": "Sub-Account Name"
"merchantIdFound": [
"101.1",
"101.2"
]
}
| № | Name | Type | Optionality | Description |
| 1 | accountId | integer | required | Platform Account identifier. |
| 2 | subAccountId | integer | optional | Source Sub-Account identifier. |
| 3 | merchantId | string | optional | Merchant identifier (MID). |
| 4 | externalId | string | optional | Merchant external identifier. |
| 5 | mcc | string | optional | Merchant Category Code (MCC). |
| 6 | applicationId | integer | optional | Underwriting application identifier. Required if the related Service Provider has “Require Underwriting” = Yes and “Can override” is not checked. Optional if if the related Service Provider has “Require Underwriting” = Yes and “Can override” is checked. |
| 7 | accountName | string | required | Max250 Platform Account Name. |
| 8 | billing | object | optional | Sub-Account billing settings. Only for Fees, that have feeSource=Sub-Account. |
| 9 | payouts | object | optional | Sub-Account payouts settings. |
| 10 | processing | object | required | Sub-Account processing settings. |
| 11 | serviceProviderId | integer | required | Service Provider identifier. Serves as SkinID for user authorization purposes. |
| 12 | subAccountName | string | required | Sub-Account name. varchar(50) |
| 13 | sumUpCutOffHour | integer | optional | Auto cut-off value. In case empty, values are inherited from the parent system entity |
| 14 | payoutCutOffHour | integer | optional | Payout cut-off value. In case empty and payout and/or scheduled fees included, values are inherited from the parent system entity. |
| 15 | merchantStatement | object | optional | Merchant statement settings. |
| 16 | isTemplate | boolean | optional | Defines a template account |
| Response Code | Description |
|---|---|
| 204 | No Content — Sub-Account has been updated successfully. |
| 400 | Bad Request — Your request is invalid. |
| 401 | Unauthorized — Authorization failed. |
| 403 | Forbidden — Access denied. |
| 404 | Not Found — Wrong URL. |
| 415 | Unsupported Media Type — Wrong request format. |
| 500 | Internal Server Error — We had a problem with our server. Try again later. |
| 503 | Service Unavailable — We’re temporarily offline for maintenance. Please try again later. |
| № | Name | Type | Optionality | Description |
| 1 | manualPayout | bool | optional | Enables manual payout processing option. Disables external payout processor.
Deprecated
To enable Manual Payouts pass "processor": "None". |
| 2 | negativePayout | bool | optional | A boolean parameter that enables negative payouts processing. |
| 3 | payouts | object | optional | List of payouts. Max (250) |
| 4 | processor | object | optional | Payout processor parameters. |
| 5 | skipBalanceCheck | bool | optional | Allows to skip payouts source platform account available balance check prior the payout processing. Required to enable negativePayout. |
| № | Name | Type | Optionality | Description |
| 1 | calculation | object | required | Payout amount calculation parameters. |
| 2 | name | string | required | Payout name. Max (250) |
| 3 | payoutMethodAch | object | required | ACH payment method parameters. |
| 4 | payoutMethodCreditCard | object | optional | Credit Card payment method parameters. Used in case of a negative payout processed via Card On File instructions and on-demand payouts. |
| 5 | cardOnFileProcessorConfiguration | object | optional | Parameters of card-on-file processor. May vary for different processors. |
| 6 | scheduler | object | required | Payout configurations. |
| 7 | twoStepApproval | bool | optional | Enables two step payout approval: authorization and manual confirmation. |
| № | Name | Type | Optionality | Description | ||||||
| 1 | accountNumber | string | required | ACH account number. Max (17). | ||||||
| 2 | nameOnAccount | string | required | ACH account name. Max (120). | ||||||
| 3 | routingNumber | string | required | ACH bank routing number. Max (9). | ||||||
| 4 | accountType | enum | optional | ACH account type.
Avaliable Values:
|
||||||
| 5 | entityType | enum | optional |
ACH entity type. Avaliable Values:
|
||||||
| 6 | useBillingAdress | bool | required | Must be always “true” if ‘id’ in “processor” object of “CIBC US” | ||||||
| 7 | billingAddress | object | conditional | Required if “useBillingAdress” = true, else optional |
| № | Name | Type | Optionality | Description |
| 1 | id | integer | optional | int64 Processor identifier. Ignore with POST request and supply just the processor name. Not required with PUT method. Required with all other methods. |
| 2 | parameters | string | required | LIst of processor parameters. |
| 3 | processor | Sys.Enum | required | Processors’ names. Determined by the Service Provider. |
| № | Name | Type | Optionality | Description |
| 1 | creditCardNumber | string | required | Credit card number. Varchar (16). Pattern: ^([2-6]{1})([0-9]{11,15}|[0-9\*]{11,15})$ |
| 2 | creditCardNameOnCard | string | required | Cardholder’s name indicaed on the credit card. Varchar(50). |
| 3 | creditCardExpirationDate | string | required | Credit card expiration date. Char (4) Format: MMYY. Pattern: ^(0[1-9]|1[0-2])[0-9]{2}$ |
| 4 | creditCardCVV | string | conditional | Credit card CVV value. Varchar (4). POST – required, if user sets CoF configuration with credit card PUT – 1) optional, if user updates any data except credit card details 2) required, if user updates credit card details |
| № | Name | Type | Optionality | Description | |||||||||||||||
| 1 | fixedAmount | double | optional | Payout amount. Must be greater than 0. Required if PayoutType = Fixed. | |||||||||||||||
| 2 | percentageAmount | double | optional | Payout amount taken as a percentage of the total account balance for a selected date or a time period. Must be greater than 0. | |||||||||||||||
| 3 | intervalCount | integer | optional | Payout intervals count. Must be greater than 0 and required if PayoutType = PastInterval. | |||||||||||||||
| 4 | intervalGap | integer | optional | Payout interval gap. Must be greater than 0 and required if PayoutType = PastInterval. | |||||||||||||||
| 5 | payoutType | enum | optional |
Payout amount calculation mode. Avaliable Values:
|
| № | Name | Type | Optionality | Description | ||||||||||||
| 1 | id | integer | optional | Payouts scheduler identifier. | ||||||||||||
| 2 | isSchedulerDisabled | bool | optional | Set "isSchedulerDisabled": true or false to enable/disable a Payout scheduler. |
||||||||||||
| 3 | dayNumber | integer | optional | Payout day sequence number. Must be greater than 0. | ||||||||||||
| 4 | endDate | datetime | optional | Payout expiration date. Must be greater than DateTime.Now, if Expiration is set to UntilDate. | ||||||||||||
| 5 | expiration | enum | optional |
Payout expiration settings. Avaliable Values:
|
||||||||||||
| 6 | interval | enum | optional |
Fee interval. Avaliable Values:
|
||||||||||||
| 7 | intervalCount | integer | optional | Day sequential number. Must be greater than 0. | ||||||||||||
| 8 | monthNumber | integer | optional | Month sequential number. Maximum = 12. Minimum = 1. Required if Interval=Monthly or Yearly. | ||||||||||||
| 9 | occurrencesQuantity | integer | optional | Payouts quantity. Required and greater than 0 if Expiration=LimitedCount. |
| № | Name | Type | Optionality | Description | |||||||||
| 1 | ach | object | optional | ach processing settings. optional if creditcard is not null. | |||||||||
| 2 | creditСards | object | optional | credit card processing settings. optional if ach is not null. | |||||||||
| 3 | currency | enum | optional | transactions processing currency type. Avaliable Values:
| |||||||||
| 4 | fraudPreventionEnabled | bool | optional | boolean enables fraud detection service. | |||||||||
| 5 | recurringBilling | object | optional | recurring billing configurations. | |||||||||
| 6 | transactionMode | enum | optional | transaction processing mode. Avaliable Values:
|
| № | Name | Type | Optionality | Description | ||||||||||||||||||||||||||||
| 1 | autoCapture | bool | optional | boolean enables capturing service. can be enabled for all transactionmode with the exception of echo and import. | ||||||||||||||||||||||||||||
| 2 | giftCardsEnabled | bool | optional | boolean parameter that enables gift cards processing. available in case credit cards processing is enabled. available for echo and import transaction modes. | ||||||||||||||||||||||||||||
| 3 | creditCardTypes | enum | required | credit card type identifier. required at least one. determined by the service provider. you can remove credit cards from the list that you receive with get method, but cannot add extra credit card types. creditcardtypeids Avaliable Values:
| ||||||||||||||||||||||||||||
| 4 | processors | object | required | processor configurations. | ||||||||||||||||||||||||||||
| 5 | tokenization | enum | optional | tokenization options. Avaliable Values:
|
| № | Name | Type | Optionality | Description |
| 1 | autoRenewalEnabled | bool | optional | enables recurring billing plan auto renewal option. |
| 2 | recurringEngineEnabled | bool | optional | enables recurring billing processing option. |
| 3 | subscriptionsEnabled | bool | optional | enables recurring billing creation option. |
| № | Name | Type | Optionality | Description |
| 1 | processors | object | required | processor configurations. |
| № | Name | Type | Optionality | Description |
| 1 | id | integer | optional | processor identifier. |
| 2 | parameters | string | required | processor parameters. pre-populated for each processor individually. |
| 3 | processor | sys.enum | optional | processors’ names. determined by the service provider. do not change to create/update a sub-account. pass “processor”: “none” to enable manual payouts. effects only ach payouts. |
| № | Name | Type | Optionality | Description | ||||||||||
| 1 | scheduledFees | list | optional | scheduled fees settings. | ||||||||||
| 2 | slidingscaleFees | list | optional | scale range fees settings. | ||||||||||
| 3 | transactionFees | list | optional | per transaction fees settings. | ||||||||||
| 4 | interchangeFeesOverride | object | optional | interchange fees override settings. | ||||||||||
| 5 | interchangeFeeSeason | object | optional | not required parameters enabled for interchangefees. | ||||||||||
| 6 | interchangeFeesRegions | list | optional | interchange fees region(s) id(s). data type is int32 use get method to fetch a sub-account template based on the service provider id. interchange fees regions list will be pre-populated based on service providers interchange fees settings. you can remove but cannot add extra regions. | ||||||||||
| 7 | interchangeFeesReversalEnabled | list | optional | transactions types for interchange fees reversal. Avaliable Values:
| ||||||||||
| 8 | feePriorityLevel | byte | optional | specify fees priority level for per-transaction fees and sliding scale fees. available options: 1-10. | ||||||||||
| 9 | slidingScaleCounterReset | object | optional | counter reset for sliding scale fees. |
| № | Name | Type | Optionality | Description |
| 1 | source | enum | required | string with feesource enum values. Avaliable Values:
|
| 2 | target | enum | required | string with feesource enum values. Avaliable Values:
|
| 3 | sourceSubAccountId | integer | optional | |
| 4 | targetSubAccountId | integer | optional | a target sub-account identifier. |
| 5 | sourceAgentId | integer | optional | a source agent identifier. |
| 6 | targetAgentId | integer | optional | a target agent identifier. |
| № | Name | Type | Optionality | Description |
| 1 | dateFrom | string | required | fee is active starting from this date. |
| 2 | dateTo | string | required | fee ending date. |
| 3 | offSeasonMonth | list | required | a list of fee inactive months. int32 enter zero to make a fee active on every month. |
| № | Name | Type | Optionality | Description |
| 1 | priorityLevel | integer | required | fees split priority level from 1 to 10. |
| 2 | percentage | double | required | each priority level cannot have more than 100% of the total fee amount there can be a level 2 priority even if level 1 has 100% – in this case level 2 will not have any effect each fee target can be assigned to the same priority level just once, but different fee targets can be on the same priority level a specific fee value can be split unlimited number of times but only up to 10 priority levels in case of a partial refund, partial contra (if set) is based on the relative amount |
| 3 | source | enum | required | string with feesource enum values. Avaliable Values:
|
| 4 | target | enum | required | string with feesource enum values. Avaliable Values:
|
| 5 | sourceSubAccountId | integer | optional | source sub-account identifier. |
| 6 | targetSubAccountId | integer | optional | target sub-account identifier. |
| 7 | sourceAgentId | integer | optional | source agent identifier. |
| 8 | targetAgentId | integer | optional | target agent identifier. |
| № | Name | Type | Optionality | Description | ||||||||||||||||
| 1 | amount | double | required | max 6 decimal places. “amount” of “buyrate” cannot be greater than the “amount” of “slidingscalefees” or transactionfees”. in case of “slidingscalefees”, fee can have more than one range and every range has “amount” parameter of “ranges”. buyrate “amount” should be ≤ the smallest “amount” from ranges. else, use validation above. | ||||||||||||||||
| 2 | percentage | double | required | max 6 decimal places. the value of percentage parameter must be ≤ 100 “percentage” of “buyrate” cannot be greater than the “percentage” of “slidingscalefees” or transactionfees”. in case of “slidingscalefees”, fee can have more than one range and every range has “percentage” parameter of “ranges”. buyrate “percentage” should be ≤ the smallest “percentage” from ranges. else, use validation above. | ||||||||||||||||
| 3 | source | enum | required | string with feesource enum values. Avaliable Values:
| ||||||||||||||||
| 4 | target | enum | required | string with feesource enum values. Avaliable Values:
| ||||||||||||||||
| 5 | sourceSubAccountId | integer | optional | source sub-account identifier. | ||||||||||||||||
| 6 | targetSubAccountId | integer | optional | target sub-account identifier. | ||||||||||||||||
| 7 | sourceAgentId | integer | optional | source agent identifier. | ||||||||||||||||
| 8 | targetAgentId | integer | optional | target agent identifier. |
| № | Name | Type | Optionality | Description | ||||||||||||
| 1 | timeinterval | enum | optional | counter reset intervals. Avaliable Values:
| ||||||||||||
| 2 | numberofintervals | integer | required | enter number of intervals for a selected timeinterval. the counter will reset every number of intervals that you determine: timeinterval=”weekly numberofintervals=2 counter will reset every two weeks. |
| № | Name | Type | Optionality | Description |
| 1 | source | enum | required | string with feesource enum values. Avaliable Values:
|
| 2 | target | enum | required | string with feesource enum values. Avaliable Values:
|
| 3 | sourceSubAccountId | integer | optional | a source sub-account identifier. |
| 4 | targetSubAccountId | integer | optional | a target sub-account identifier. |
| 5 | sourceAgentId | integer | optional | a source agent identifier. |
| 6 | targetAgentId | integer | optional | a target agent identifier. |
| № | Name | Type | Optionality | Description | ||||||||||||
| 1 | timeInterval | enum | optional | counter reset intervals. Avaliable Values:
| ||||||||||||
| 2 | numberOfIntervals | integer | required | enter number of intervals for a selected timeinterval. the counter will reset every number of intervals that you determine: timeinterval=weekly numberofintervals=2 counter will reset every two weeks. |
| № | Name | Type | Optionality | Description |
| 1 | id | integer | optional | Scheduled fees identifier. |
| 2 | amount | double | optional | Fee amount.max 2 decimal places. |
| 3 | dayNumber | integer | optional | Day sequential number. must be greater than 0. |
| 4 | endDate | datetime | optional | Fee expiration date. must be greater than datetime.now, if expiration is set to untildate. |
| 5 | expiration | enum | optional | Fee expiration settings. Avaliable Values:untildate – 1 – select to set a fee expiration date. limitedcount – 2 – select to enable fees limited count. neverexpire – 3 – select to disable fees expiration. |
| 6 | interval | enum | optional | Fee interval. Avaliable Values:
Enter day sequential number.
Week enter a week sequential number and a weekday number (see enumeration below).
Enter fee day and month sequential number.
Enter a fee year, month and day sequential number. |
| 7 | intervalCount | integer | optional | Day sequential number. Must be greater than 0. |
| 8 | monthNumber | integer | optional | month sequential number. maximum =” 12. “minimum =” 1. required “if interval=”monthly or yearly. |
| 9 | name | string | optional | fee name. max (50) |
| 10 | occurrencesQuantity | integer | optional | number of a fee occurrences. required if expiration=limitedcount. |
| 11 | override | object | optional | default feesource and feetarget override. |
| 12 | feeSeason | object | optional | not required parameters enabled for slidingscalefees, scheduledfees and transactionfees. |
| № | Name | Type | Optionality | Description | ||||||||||
| 1 | feePriorityLevel | integer | optional | fee priority level from 0 to 10. | ||||||||||
| 2 | id | integer | optional | fee identifier. | ||||||||||
| 3 | name | string | required | fee name. max (50) | ||||||||||
| 4 | override | object | optional | default feesource and feetarget override. | ||||||||||
| 5 | split | object | optional | not required split parameters. use to split fees among multiple targets. set priority level and a fee share for each fee target. | ||||||||||
| 6 | feeSeason | object | optional | not required parameters enabled for slidingscalefees, scheduledfees and transactionfees. | ||||||||||
| 7 | buyrate | object | optional | buyrate parameters. a buyrate is used to split a fee value between the original fee target and the buyrate target. the split is on a value level, for example: a fee is set to 5% and a buyrate is set to 3%. in this case, the fee target will get 2% and the buyrate target will get 3% of the fee value. required in case a fee is configured as buyrate fee. | ||||||||||
| 8 | ranges | enum | required | scale range fees ranges. required at least one. | ||||||||||
| 9 | reversalEnabled | enum | optional | enables fees reversal for refund, void and cancel transaction types. for put and post pass an empty value if “fee target” =” “reserve “balance” and “reserve release date delay” =” “never”. Avaliable Values:
|
Can be amount, percentage or combination of the two.
| № | Name | Type | Optionality | Description |
| 1 | amount | double | required | fee amount. ^\d+(\.\d{1,2})?$ max 2 decimal places. |
| 2 | percentage | double | required | fee percentage amount. max 6 decimal places. |
| 3 | maxCount | integer | required | maximum transactions count.must be greater than mincount. “maxCount” can be equal to “minCount”. |
| 4 | minCount | integer | required | minimum transactions count. must be greater than 0. |
Default FeeSource and FeeTarget override. Not required Split parameters.
Use to split fees among multiple targets.
Set priority level and a fee share for each fee target.
| № | Name | Type | Optionality | Description |
| 1 | feePriorityLevel | integer | optional | fee priority level from 0 to 10. |
| 2 | amount | double | optional | fee amount. ^\d+(\.\d{1,2})?$ max 2 decimal places. |
| 3 | typeid | integer | optional | fee identifier. |
| 4 | percentage | double | optional | fee percentage amount. max 6 decimal places. |
| 5 | name | string | required | fee name. |
| 6 | override | object | optional | fee identifier. |
| 7 | split | object | optional | fee identifier. |
| 8 | feeSeason | object | optional | not required parameters enabled for slidingscalefees, scheduledfees and transactionfees. |
| 9 | buyrate | object | optional | buyrate parameters. a buyrate is used to split a fee value between the original fee target and the buyrate target. the split is on a value level, for example: a fee is set to 5% and a buyrate is set to 3%. in this case, the fee target will get 2% and the buyrate target will get 3% of the fee value. required in case a fee is configured as buyrate fee. |
| 10 | reversalEnabled | enum | optional | enables fees reversal for refund, void and cancel transaction types. for put and post pass an empty value if “fee target” =” “reserve “balance” and “reserve release date delay” =” “never”. Avaliable Values:
|
| № | Name | Type | Optionality | Description |
| 1 | merchantNumber | string | required | merchant number. max 50 pattern: ^([\+ ]+)?(\d[\d- ]+)?(\([\d- ]+\))?[\d- ]+\d$ |
| 2 | merchantName | string | required | merchant name. |
| 3 | merchantDBA | string | required | merchant doing business as (dba) name. |
| 4 | autoDeliveryContactEmail | string | optional | delivery email address. max 50 |
| № | Name | Type | Optionality | Description |
| 1 | country | string | conditional | required if “usebillingadress” =” true “else optional country value in the list of available countries. reg exp: /^([a-z]|[a-z])*$/ |
| 2 | streetAddress | string | conditional | required if “usebillingadress” =” true “else optional reg exp: /^([a-z]|[a-z]|[0-9]|[.]|[-]|[,]|[+]|[ ]|[/]|[‘])*$/ |
| 3 | city | string | conditional | required if “usebillingadress” =” true “else optional reg exp: /^([a-z]|[a-z]|[0-9]|[,]|[-]|[ ])*$/ |
| 4 | province | string | conditional | required if “usebillingadress” =” true “and “processor” =” “cibc “us” else optional reg exp: /^([a-z]|[a-z])*$/ |
| 5 | zipCode | string | conditional | required if “usebillingadress” =” true “else optional reg exp: /^([a-z]|[a-z]|[0-9]|[,]|[-]|[ ])*$/ |
Use GET method to inquire the existing User by the user identifier (userId).
Endpoint:
GET .../api/users/{userId}
The userId Value indicated in the URL is the target User identifier.
.../api/users/{userId}
{
"id": 0,
"operatorId": 0,
"serviceProviderId": 0,
"userName": "string",
"firstName": "string",
"lastName": "string",
"email": "string",
"phone": "string",
"userRole": 0,
"addAllAccounts": true,
"accounts": [],
"isMfaEnabled": true
},
{
"id": 0,
"operatorId": 0,
"serviceProviderId": 0,
"userName": "string",
"firstName": "string",
"lastName": "string",
"email": "string",
"phone": "string",
"userRole": 0,
"addAllAccounts": false,
"accounts": [
{
"accountId": 0,
"subAccounts": []
}
],
"isMfaEnabled": true
}
| № | Name | Type | Description |
| 1 | id | integer | system user identifier. |
| 2 | operatorId | integer | operator identifier. |
| 3 | serviceProviderId | integer | service provider identifier. serves as skinid for user authorization purposes. |
| 4 | userName | string | username. maxlength(20) special characters ” and \ must be placed as \” and \\ |
| 5 | firstName | string | user first name. maxlength(100) special characters ” and \ must be placed as \” and \\ |
| 6 | lastName | string | user last name. maxlength(100) special characters ” and \ must be placed as \” and \\ |
| 7 | string | user last name. maxlength(100) special characters ” and \ must be placed as \” and \\ | |
| 8 | phone | string | user contact phone number. maxlength(50) |
| 9 | userRole | integer | user role. operatormanager – 2 back-office user role. user role for operators’ users. serviceprovideradmin – 3 back-office user role. user role for service provider admin users. platformadmin – 4 back-office user role. user role for platform admin users. platformuser – 5 back-office user role. user role for platform users. apiprocessingreports – 6 api user role. standard api user. apiserviceprovidermanagement – 7 api user role. service provider admin user access rights. apiplatformmanagement – 8 api user role. platform admin user access rights. apioperatormanager – 13 api user role. operator user access rights. customuserrole – id please contact your admin to get custom user roles ids. |
| 10 | addAllAccounts | bool | in case returned true user has access to all available platform accounts and sub-accounts. in case returned false user has only access to the account(s) specified in the response account(s). |
| 11 | accounts | object | available platform accounts and sub-accounts for this user. |
| 11 | isMfaEnabled | bool | Parameter that indicates using of the Multi-factor Authentication functionality. |
| Response Code | Description |
|---|---|
| 200 | Ok |
| 400 | Bad Request — Your request is invalid. |
| 401 | Unauthorized — Authorization failed. |
| 403 | Forbidden — Access denied. |
| 404 | Not Found — Wrong URL. |
| 415 | Unsupported Media Type — Wrong request format. |
| 500 | Internal Server Error — We had a problem with our server. Try again later. |
| 503 | Service Unavailable — We’re temporarily offline for maintenance. Please try again later. |
Use GET method to inquire the existing User by Username (userName).
Endpoint:
GET .../api/users/{userName}
The userName value indicated in the URL is the target User Username.
.../api/users/{userName}{
"id": 0,
"operatorId": 0,
"serviceProviderId": 0,
"userName": "string",
"firstName": "string",
"lastName": "string",
"email": "string",
"phone": "string",
"userRole": 0,
"addAllAccounts": false,
"accounts": [
{
"accountId": 0,
"subAccounts": [
0
]
}
]
},
{
"id": 0,
"operatorId": 0,
"serviceProviderId": 0,
"userName": "string",
"firstName": "string",
"lastName": "string",
"email": "string",
"phone": "string",
"userRole": 0,
"addAllAccounts": true,
"accounts": []
}| № | Name | Type | Description |
| 1 | id | integer | system user identifier. |
| 2 | operatorId | integer | operator identifier. |
| 3 | serviceProviderId | integer | service provider identifier. serves as skinid for user authorization purposes. |
| 4 | userName | string | username. maxlength(20) special characters ” and \ must be placed as \” and \\ |
| 5 | firstName | string | user first name. maxlength(100) special characters ” and \ must be placed as \” and \\ |
| 6 | lastName | string | user last name. maxlength(100) special characters ” and \ must be placed as \” and \\ |
| 7 | string | user last name. maxlength(100) special characters ” and \ must be placed as \” and \\ | |
| 8 | phone | string | user contact phone number. maxlength(50) |
| 9 | userRole | integer | user role. operatormanager – 2back-office user role. user role for operators’ users. serviceprovideradmin – 3back-office user role. user role for service provider admin users. platformadmin – 4back-office user role. user role for platform admin users. platformuser – 5back-office user role. user role for platform users. apiprocessingreports – 6api user role. standard api user. apiserviceprovidermanagement – 7api user role. service provider admin user access rights. apiplatformmanagement – 8api user role. platform admin user access rights. apioperatormanager – 13api user role. operator user access rights. customuserrole – idplease contact your admin to get custom user roles ids. |
| 10 | addAllAccounts | bool | in case returned true user has access to all available platform accounts and sub-accounts. in case returned false user has only access to the account(s) specified in the response account(s). |
| 11 | accounts | object | available platform accounts and sub-accounts for this user. |
| Response Code | Description |
|---|---|
| 200 | Ok |
| 400 | Bad Request — Your request is invalid. |
| 401 | Unauthorized — Authorization failed. |
| 403 | Forbidden — Access denied. |
| 404 | Not Found — Wrong URL. |
| 415 | Unsupported Media Type — Wrong request format. |
| 500 | Internal Server Error — We had a problem with our server. Try again later. |
| 503 | Service Unavailable — We’re temporarily offline for maintenance. Please try again later. |
Use POST method to create an new User. To create a new User, inquire a source User data packet via GET method and pass it with the POST method.
Change parameters’ values you wish to override. All the unchanged parameters’ values will be inherited from the source User data packet.
Endpoint:
POST .../api/users
{
"id": 0,
"operatorId": 0,
"serviceProviderId": 0,
"userName": "string",
"password": "string",
"firstName": "string",
"lastName": "string",
"email": "string",
"phone": "string",
"userRole": 0,
"addAllAccounts": false,
"accounts": [
{
"accountId": 0,
"subAccounts": [
0
]
}
]
},
{
"id": 0,
"operatorId": 0,
"serviceProviderId": 0,
"userName": "string",
"password": "string",
"firstName": "string",
"lastName": "string",
"email": "string",
"phone": "string",
"userRole": 0,
"addAllAccounts": true,
"accounts": []
}
{
"id": 123
}| № | Name | Type | Optionality | Description |
| 1 | id | integer | optional | system user identifier. |
| 2 | operatorId | integer | optional | operator identifier. |
| 3 | serviceProviderId | integer | optional | service provider identifier. serves as skinid for user authorization purposes. |
| 4 | userName | string | required | username. maxlength(20) special characters ” and \ must be placed as \” and \\ |
| 5 | password | string | optional | Nullable MaxLength=”20 Pass this parameter value to create a temporary password for a system user. |
| 6 | firstName | string | required | user first name. maxlength(100) special characters ” and \ must be placed as \” and \\ |
| 7 | lastName | string | required | user last name. maxlength(100) special characters ” and \ must be placed as \” and \\ |
| 8 | string | required | user last name. maxlength(100) special characters ” and \ must be placed as \” and \\ | |
| 9 | phone | string | required | user contact phone number. maxlength(50) |
| 10 | userRole | integer | user role. operatormanager – 2″back-office user role. user role for operators’ users. serviceprovideradmin – 3back-office user role. user role for service provider admin users. platformadmin – 4back-office user role. user role for platform admin users. platformuser – 5back-office user role. user role for platform users. apiprocessingreports – 6api user role. standard api user. apiserviceprovidermanagement – 7api user role. service provider admin user access rights. apiplatformmanagement – 8api user role. platform admin user access rights. apioperatormanager – 13api user role. operator user access rights. customuserrole – idplease contact your admin to get custom user roles ids. | |
| 11 | addAllAccounts | bool | in case returned true user has access to all available platform accounts and sub-accounts. in case returned false user has only access to the account(s) specified in the response account(s). | |
| 12 | accounts | object | available platform accounts and sub-accounts for this user. |
| № | Name | Type | Description |
| 1 | id | integer | system user identifier. |
| Response Code | Description |
|---|---|
| 200 | Ok |
| 201 | Created — User has been created successfully. |
| 400 | Bad Request — Your request is invalid. |
| 401 | Unauthorized — Authorization failed. |
| 403 | Forbidden — Access denied. |
| 404 | Not Found — Wrong URL. |
| 415 | Unsupported Media Type — Wrong request format. |
| 500 | Internal Server Error — We had a problem with our server. Try again later. |
| 503 | Service Unavailable — We’re temporarily offline for maintenance. Please try again later. |
Use PUT method to update an existing User. To update a User, inquire a source User data packet via GET method and pass it with the PUT method.
Change parameters’ values you wish to override. All the unchanged parameters’ values will be inherited from the source User data packet.
Endpoint:
PUT .../api/users
{
"id": 0,
"operatorId": 0,
"serviceProviderId": 0,
"userName": "string",
"firstName": "string",
"lastName": "string",
"email": "string",
"phone": "string",
"userRole": 0,
"addAllAccounts": false,
"accounts": [
{
"accountId": 0,
"subAccounts": [
0
]
}
]
},
{
"id": 0,
"operatorId": 0,
"serviceProviderId": 0,
"userName": "string",
"firstName": "string",
"lastName": "string",
"email": "string",
"phone": "string",
"userRole": 0,
"addAllAccounts": true,
"accounts": []
}{
"id": 123,
"name": "userName"
}
| № | Name | Type | Optionality | Description | |||||||||||||||||||||||||||
| 1 | id | integer | required | System user identifier. | |||||||||||||||||||||||||||
| 2 | operatorId | integer | optional | Operator identifier. Required for operator manager/api operator manager. | |||||||||||||||||||||||||||
| 3 | serviceProviderId | integer | optional | Service provider identifier. Serves as skinid for user authorization purposes. Required for all back-office users/ api users. | |||||||||||||||||||||||||||
| 4 | userName | string | required | Username. Maxlength(20) Special characters ” and \ must be placed as \” and \\ | |||||||||||||||||||||||||||
| 5 | firstName | string | required | User first name. MaxLength(100) Special characters ” and \ must be placed as \” and \\ | |||||||||||||||||||||||||||
| 6 | lastName | string | required | User last name. MaxLength(100) Special characters ” and \ must be placed as \” and \\ | |||||||||||||||||||||||||||
| 7 | string | required | User contact email address. MaxLength(50) | ||||||||||||||||||||||||||||
| 8 | phone | string | required | User contact phone number. MaxLength(50) | |||||||||||||||||||||||||||
| 9 | userRole | integer | User role.
| ||||||||||||||||||||||||||||
| 10 | addAllAccounts | bool | set true to grand your user permissions to all available platform accounts. set false and list platform accounts and sub-accounts you wish your user to get access to. | ||||||||||||||||||||||||||||
| 11 | accounts | object | available platform accounts and sub-accounts for this user. |
| Response Code | Description |
|---|---|
| 200 | Ok |
| 204 | No Content — User has been updated successfully. |
| 400 | Bad Request — Your request is invalid. |
| 401 | Unauthorized — Authorization failed. |
| 403 | Forbidden — Access denied. |
| 404 | Not Found — Wrong URL. |
| 415 | Unsupported Media Type — Wrong request format. |
| 500 | Internal Server Error — We had a problem with our server. Try again later. |
| 503 | Service Unavailable — We’re temporarily offline for maintenance. Please try again later. |
| № | Name | Type | Description |
| 1 | accountId | integer | platform account identifier. |
| 2 | subAccounts | integer | list of sub-account identifiers. |
Underwriting Management RESTful Web Service API offers 7 methods:
Basic Endpoints Sandbox: https://sandbox.4levers.com/managementapi
Basic Endpoints Production: https://managementapi.4levers.com
Use GET Underwriting Application method to inquire an existing underwriting application
{id} of the existing underwriting applicationEndpoint:
GET
Sandbox: https://sandbox.4levers.com/managementapi/api/underwriting-applications/{applicationId}
Production: https://managementapi.4levers.com/api/underwriting-applications/{applicationId}
https://sandbox.4levers.com/managementapi/api/underwriting-applications/{applicationId}
{
"id": 0,
"payoutStatus": "Approved",
"signUpDate": "2021-08-12T13:51:01.911Z",
"modificationDate": "2021-08-12T13:51:01.911Z",
"resubmissionDate": "2021-08-12T13:51:01.911Z",
"approvalDeclineDate": "2021-08-12T13:51:01.911Z",
"name": "string",
"templateId": 0,
"contactEmail": "string",
"applicationBody": {
"businessDetails": {
"name": "string",
"legalName": "string",
"registrationNumber": "string",
"ownershipType": "Individual",
"taxId": "string",
"giin": "string",
"incorporationDate": "2021-08-12T13:51:01.911Z",
"businessAddress": {
"street": "string",
"apartment": "string",
"city": "string",
"country": "string",
"stateCode": "string",
"zip": "string"
},
"corporateAddress": {
"street": "string",
"apartment": "string",
"city": "string",
"country": "string",
"stateCode": "string",
"zip": "string"
},
"companyWebsiteUrl": "string",
"dbaName": "string",
"dbaWebsiteUrl": "string",
"dynamicDescriptor": "string",
"description": "string",
"customerServicePhone": "string",
"customerServiceEmail": "string",
"fax": "string",
"socialMediaAccounts": [
{
"socialNetwork": "Facebook",
"accountName": "string"
}
],
"agreement": true,
"customField1": "string",
"customField2": "string",
"customField3": "string"
},
"businessDetailsDocuments": {
"registrationCertificate": {
"fileName": "string",
"fileBody": "string"
},
"proofOfAddress": {
"fileName": "string",
"fileBody": "string"
},
"customDocument1": {
"fileName": "string",
"fileBody": "string"
},
"customDocument2": {
"fileName": "string",
"fileBody": "string"
},
"customDocument3": {
"fileName": "string",
"fileBody": "string"
}
},
"bankingDetails": {
"bankAccount": {
"accountNumber": "string",
"accountType": "None",
"accountHolderName": "string",
"entityType": "Personal",
"routingNumber": "string",
"bankName": "string",
},
"plaidAccessToken": "string"
},
"bankingDetailsDocuments": {
"voidCheck": {
"fileName": "string",
"fileBody": "string"
},
"customDocument1": {
"fileName": "string",
"fileBody": "string"
},
"customDocument2": {
"fileName": "string",
"fileBody": "string"
},
"customDocument3": {
"fileName": "string",
"fileBody": "string"
}
},
"contactDetails": [
{
"id": "3c35b85f-f372-4835-99d7-e3e0f2e324f1",
"contactType": "Statements",
"firstName": "string",
"lastName": "string",
"legalName": "string",
"email": "string",
"mobilePhone": "string",
"homePhone": "string",
"address": {
"street": "string",
"apartment": "string",
"city": "string",
"country": "string",
"stateCode": "string",
"zip": "string"
},
"customField1": "string",
"customField2": "string",
"customField3": "string"
}
],
"ownerDetails": [
{
"id": "0c35b85f-f372-4835-99d7-e3e0f2e324f1",
"firstName": "string",
"lastName": "string",
"idNumber": "string",
"giin": "string",
"email": "string",
"mobilePhone": "string",
"homePhone": "string",
"address": {
"street": "string",
"apartment": "string",
"city": "string",
"country": "string",
"stateCode": "string",
"zip": "string"
},
"dateOfBirth": "2021-08-12T14:16:54.776Z",
"position": "string",
"citizenship": "string",
"ownershipDate": "2021-08-12T14:16:54.776Z",
"ownershipPercentage": 0,
"driversLicenceNumber": "string",
"customField1": "string",
"customField2": "string",
"customField3": "string",
"ownerDetailsDocuments": {
"proofOfId": {
"fileName": "string",
"fileBody": "string"
},
"proofOfAddress": {
"fileName": "string",
"fileBody": "string"
},
"personalGuarantee": {
"fileName": "string",
"fileBody": "string"
},
"customDocument1": {
"fileName": "string",
"fileBody": "string"
},
"customDocument2": {
"fileName": "string",
"fileBody": "string"
},
"customDocument3": {
"fileName": "string",
"fileBody": "string"
}
}
}
],
"businessProfile": {
"industry": "InformationTechnology",
"category": "Retail",
"privacyPolicyUrl": "string",
"returnsPolicyUrl": "string",
"tcPolicyUrl": "string",
"gstExempt": true,
"gstNumber": "string",
"descriptionOfGoods": "string",
"seasonalBusiness": true,
"saleChannels": [
{
"channelType": "string",
"percentageOfSales": 0
}
],
"shipping": {
"shippingRequired": true,
"inventory": true,
"deliveryTimePercentage": {
"oneToSevenDays": 0,
"eightToFourteenDays": 0,
"fifteenToThirtyDays": 0,
"moreThanThirtyDays": 0
}
},
"pciCompliance": {
"isEnabled": true,
"pciLevel": "DssLevelOne",
"storesSensitiveData": true,
"dataCompromised": true
},
"customField1": "string",
"customField2": "string",
"customField3": "string"
},
"businessProfileDocuments": {
"pciCertificate": {
"fileName": "string",
"fileBody": "string"
},
"customDocument1": {
"fileName": "string",
"fileBody": "string"
},
"customDocument2": {
"fileName": "string",
"fileBody": "string"
},
"customDocument3": {
"fileName": "string",
"fileBody": "string"
}
},
"businessFinancials": {
"volumeProjection": {
"visa": "string",
"mastercard": "string",
"americanExpress": "string",
"localDebitCard": "string",
"discover": "string"
},
"avgTicketPriceProjection": "string",
"previousBankruptcy": true,
"customField1": "string",
"customField2": "string",
"customField3": "string"
},
"businessProcessingHistory": {
"volumeHistory": {
"visa": "string",
"mastercard": "string",
"americanExpress": "string",
"localDebitCard": "string",
"discover": "string"
},
"avgTicketPriceHistory": "string",
"previousBankruptcy": true,
"customField1": "string",
"customField2": "string",
"customField3": "string"
}
}
}
| № | Name | Type | Description |
| 1 | id | string | application identifier. |
| 2 | payoutStatus | enum | application status: Avaliable Values:
|
| 3 | signUpdate | datetime | |
| 4 | approvalDeclineDate | datetime | |
| 5 | resubmissionDate | datetime | |
| 6 | modificationDate | datetime | |
| 7 | name | string | application name. |
| 8 | templateId | string | application template identifier. |
| 9 | contactEmail | string | notification target email. |
| № | Name | Type | Description |
| 1 | businessDetails | object | business details include business general information. |
| 2 | businessDetailsDocuments | object | business details documents include business registration documents. |
| 3 | bankingDetails | object | banking details include business bank and bank account information. |
| 4 | bankingDetailsDocuments | object | banking details documents include business banking documents. |
| 5 | contactDetails | array | contact details include business contact information. |
| 6 | ownerDetails | array | owner details include business owner information. |
| 7 | ownerDetailsDocuments | object | owner details documents include documents provided by the business owner. |
| 8 | businessProfile | object | business profile includes information about the nature of a business |
| 9 | businessProfileDocuments | object | business profile documents include pci compliance certificate. |
| 10 | businessFinancials | object | business financials include business payment cards processing projections. |
| 11 | businessProcessingHistory | object | business processing history includes historical data about payment card processing. |
…/api/underwriting-templates/{templateId}/application-template
{
"businessDetails": {
"name": "Hidden",
"legalName": "Hidden",
"registrationNumber": "Hidden",
"ownershipType": "Hidden",
"taxId": "Hidden",
"giin": "Hidden",
"incorporationDate": "Hidden",
"businessAddress": "Hidden",
"corporateAddress": "Hidden",
"companyWebsiteUrl": "Hidden",
"isRequireDomainValidation": true,
"validationFileLink": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"validationFileLinkName": "string",
"dbaName": "Hidden",
"dbaWebsiteUrl": "Hidden",
"dynamicDescriptor": "Hidden",
"description": "Hidden",
"customerServicePhone": "Hidden",
"customerServiceEmail": "Hidden",
"fax": "Hidden",
"socialMediaAccounts": "Hidden",
"agreement": {
"payoutStatus": "Hidden",
"text": "string",
"url": "string"
},
"customField1": {
"payoutStatus": "Hidden",
"name": "string"
},
"customField2": {
"payoutStatus": "Hidden",
"name": "string"
},
"customField3": {
"payoutStatus": "Hidden",
"name": "string"
}
},
"businessDetailsDocuments": {
"registrationCertificate": "Hidden",
"proofOfAddress": "Hidden",
"customDocument1": {
"payoutStatus": "Hidden",
"name": "string"
},
"customDocument2": {
"payoutStatus": "Hidden",
"name": "string"
},
"customDocument3": {
"payoutStatus": "Hidden",
"name": "string"
}
},
"bankingDetails": {
"bankAccount": "Hidden"
},
"bankingDetailsDocuments": {
"voidCheck": "Hidden",
"customDocument1": {
"payoutStatus": "Hidden",
"name": "string"
},
"customDocument2": {
"payoutStatus": "Hidden",
"name": "string"
},
"customDocument3": {
"payoutStatus": "Hidden",
"name": "string"
}
},
"contactDetails": {
"contactType": "Hidden",
"firstName": "Hidden",
"lastName": "Hidden",
"legalName": "Hidden",
"email": "Hidden",
"mobilePhone": "Hidden",
"homePhone": "Hidden",
"address": "Hidden",
"customField1": {
"payoutStatus": "Hidden",
"name": "string"
},
"customField2": {
"payoutStatus": "Hidden",
"name": "string"
},
"customField3": {
"payoutStatus": "Hidden",
"name": "string"
}
},
"ownerDetails": {
"firstName": "Hidden",
"lastName": "Hidden",
"idNumber": "Hidden",
"giin": "Hidden",
"email": "Hidden",
"mobilePhone": "Hidden",
"homePhone": "Hidden",
"address": "Hidden",
"dateOfBirth": "Hidden",
"position": "Hidden",
"citizenship": "Hidden",
"ownershipDate": "Hidden",
"ownershipPercentage": "Hidden",
"isRequireOwnershipPercentage": true,
"driversLicenceNumber": "Hidden",
"customField1": {
"payoutStatus": "Hidden",
"name": "string"
},
"customField2": {
"payoutStatus": "Hidden",
"name": "string"
},
"customField3": {
"payoutStatus": "Hidden",
"name": "string"
}
},
"ownerDetailsDocuments": {
"proofOfId": "Hidden",
"proofOfAddress": "Hidden",
"personalGuarantee": "Hidden",
"customDocument1": {
"payoutStatus": "Hidden",
"name": "string"
},
"customDocument2": {
"payoutStatus": "Hidden",
"name": "string"
},
"customDocument3": {
"payoutStatus": "Hidden",
"name": "string"
}
},
"businessProfile": {
"industry": "Hidden",
"category": "Hidden",
"privacyPolicyUrl": "Hidden",
"returnsPolicyUrl": "Hidden",
"tcPolicyUrl": "Hidden",
"gstExempt": "Hidden",
"isRequireGstNumber": true,
"descriptionOfGoods": "Hidden",
"seasonalBusiness": "Hidden",
"saleChannels": "Hidden",
"shippingRequired": "Hidden",
"isRequireShippingDetails": true,
"pciCompliance": "Hidden",
"customField1": {
"payoutStatus": "Hidden",
"name": "string"
},
"customField2": {
"payoutStatus": "Hidden",
"name": "string"
},
"customField3": {
"payoutStatus": "Hidden",
"name": "string"
}
},
"businessProfileDocuments": {
"pciCertificate": "Hidden",
"customDocument1": {
"payoutStatus": "Hidden",
"name": "string"
},
"customDocument2": {
"payoutStatus": "Hidden",
"name": "string"
},
"customDocument3": {
"payoutStatus": "Hidden",
"name": "string"
}
},
"businessFinancials": {
"volumeProjection": "Hidden",
"avgTicketPriceProjection": "Hidden",
"customField1": {
"payoutStatus": "Hidden",
"name": "string"
},
"customField2": {
"payoutStatus": "Hidden",
"name": "string"
},
"customField3": {
"payoutStatus": "Hidden",
"name": "string"
}
},
"businessProcessingHistory": {
"volumeHistory": "Hidden",
"avgTicketPriceHistory": "Hidden",
"previousBankruptcy": "Hidden",
"customField1": {
"payoutStatus": "Hidden",
"name": "string"
},
"customField2": {
"payoutStatus": "Hidden",
"name": "string"
},
"customField3": {
"payoutStatus": "Hidden",
"name": "string"
}
}
}
Use GET underwriting application configuration method to inquire an existing underwriting application Template.
{id} of the existing underwriting Templaterequired, visible or hiddenrequired – required fieldsvisible – optional and visible in application fieldshidden – not displayed in applicationEndpoint:
GET
Sandbox: https://sandbox.4levers.com/managementapi/api/underwriting-templates/{templateId}/application-template
Production: https://managementapi.4levers.com/api/underwriting-templates/{templateId}/application-template
{
"businessDetails": {
"name": "New",
"legalName": "New",
"registrationNumber": "New",
"ownershipType": "New",
"taxId": "New",
"giin": "New",
"incorporationDate": "New",
"businessAddress": "New",
"corporateAddress": "New",
"companyWebsiteUrl": "New",
"dynamicDescriptor": "New",
"dbaName": "New",
"dbaWebsiteUrl": "New",
"description": "New",
"customerServicePhone": "New",
"customerServiceEmail": "New",
"fax": "New",
"socialMediaAccounts": "New",
"customField1": "New",
"customField2": "New",
"customField3": "New"
},
"businessDetailsDocuments": {
"registrationCertificate": "New",
"proofOfAddress": "New",
"customDocument1": "New",
"customDocument2": "New",
"customDocument3": "New"
},
"bankingDetails":{
"bankAccount":"New"
},
"bankingDetailsDocuments": {
"voidCheck": "New",
"customDocument1": "New",
"customDocument2": "New",
"customDocument3": "New"
},
"contactDetails": [
{
"contactType": "New",
"firstName": "New",
"lastName": "New",
"legalName": "New",
"email": "New",
"mobilePhone": "New",
"homePhone": "New",
"address": "New",
"customField1": "New",
"customField2": "New",
"customField3": "New"
}
],
"ownerDetails": [
{
"firstName": "New",
"lastName": "New",
"idNumber": "New",
"giin": "New",
"email": "New",
"mobilePhone": "New",
"homePhone": "New",
"address": "New",
"dateOfBirth": "New",
"position": "New",
"citizenship": "New",
"ownershipDate": "New",
"ownershipPercentage": "New",
"driversLicenceNumber": "New",
"customField1": "New",
"customField2": "New",
"customField3": "New"
"ownerDetailsDocuments": {
"proofOfId": "New",
"proofOfAddress": "New",
"personalGuarantee": "New",
"customDocument1": "New",
"customDocument2": "New",
"customDocument3": "New"
}
}
],
"businessProfile": {
"industry": "New",
"category": "New",
"privacyPolicyUrl": "New",
"returnsPolicyUrl": "New",
"tcPolicyUrl": "New",
"gstNumber": "New",
"descriptionOfGoods": "New",
"seasonalBusiness": "New",
"saleChannels": "New",
"shipping": "New",
"pciCompliance": "New",
"customField1": "New",
"customField2": "New",
"customField3": "New"
},
"businessProfileDocuments": {
"pciCertificate": "New",
"customDocument1": "New",
"customDocument2": "New",
"customDocument3": "New"
},
"businessFinancials": {
"volumeProjection": "New",
"avgTicketPriceProjection": "New",
"customField1": "New",
"customField2": "New",
"customField3": "New"
},
"businessProcessingHistory": {
"volumeHistory": "New",
"avgTicketPriceHistory": "New",
"previousBankruptcy": "New",
"customField1": "New",
"customField2": "New",
"customField3": "New"
}
}
Use GET Underwriting Application Fields Statuses method to inquire an existing underwriting application fields statuses
{id} of the existing underwriting applicationValues of application fields in the response Json are fields’ statuses:
new – new fieldsapproved – fields that have been approved by an authorized userdeclined – fields that have been declined by an authorized userEndpoint:
GET
Sandbox: https://sandbox.4levers.com/managementapi/api/underwriting-applications/{applicationId:int}/field-status
Production: https://managementapi.4levers.com/api/underwriting-applications/{applicationId:int}/field-status
…/api/underwriting-applications/{applicationId}/status
{
"payoutStatus": "Approved"
}Use GET Underwriting Application Statuses method to inquire an existing underwriting application statuses
{id} of the existing underwriting applicationValues of application statuses:
Endpoint:
GET
Sandbox: https://sandbox.4levers.com/managementapi/api/underwriting-applications/{applicationId}/status
Production: https://managementapi.4levers.com/api/underwriting-applications/{applicationId}/status
Payload: {
"login": "USERNAME",
"password": "PASSWORD"
}Use POST Authentication Token method to inquire a token to access underwriting application iFrame
Endpoint:
POST
Sandbox: https://sandbox.4levers.com/underwritingiframe/api/auth
Production: https://underwriting.4levers.com/api/auth
submit() method to your application HTML page (parent page in the external system), a specific responses will be received – see attached implementation example.| № | Name | Optionality | Description |
| 1 | template | required | id of the application template to display specific underwriting application form in the external system. |
| 2 | provider | required | id of the service provider that is related to application template in the configuration. |
| 3 | name | required | generated or pre-defined name of the underwriting application form. |
| 4 | required | merchant contact email. | |
| 5 | token | required | token that is taken via get authentication token method. |
| 6 | configuration | optional | pre-filled form information. |
| № | Name | Optionality | Description |
| 1 | name | required | name of the field. |
| 2 | value | optional | value of the field. |
| 3 | isHidden | optional | the flag defines whether the field is hidden or not. |
There are two types of pre-filled information representation:
nameisHidden flag="true"value is saved after submit action from the external systemnameisHidden flag="false"value OR the user input is saved after submit action from the external systemAs each application is based on a specific Template (see list of Component Properties earlier in this section), application fields depend on the related fields in the Template.
submit() method is calledenum number according to Validation rules – see below
businessDetails.businessAddress
[{"name":"businessDetails.businessAddress","isHidden":true},
{"name":"businessDetails.businessAddress.country","value":"US"},
{"name":"businessDetails.businessAddress.stateCode","value":"AK"},
{"name":"businessDetails.businessAddress.city","value":"city test"},
{"name":"businessDetails.businessAddress.street","value":"street test"},
{"name":"businessDetails.businessAddress.apartment","value":"apartment test"},
{"name":"businessDetails.businessAddress.zip","value":"11111"}]
businessDetails.corporateAddress
[{"name":"businessDetails.corporateAddress","isHidden":true},
{"name":"businessDetails.corporateAddress.country","value":"US"},
{"name":"businessDetails.corporateAddress.stateCode","value":"AK"},
{"name":"businessDetails.corporateAddress.city","value":"city test"},
{"name":"businessDetails.corporateAddress.street","value":"street test"},
{"name":"businessDetails.corporateAddress.apartment","value":"apartment test"},
{"name":"businessDetails.corporateAddress.zip","value":"11111"}]
bankingDetails.bankAccount
[{"name":"bankingDetails.bankAccount","isHidden":true},
{"name":"bankingDetails.accountNumber","value":"0123450"},
{"name":"bankingDetails.accountType","value":1},
{"name":"bankingDetails.accountHolderName","value":"accountHolderName iframe config"},
{"name":"bankingDetails.entityType","value":1},
{"name":"bankingDetails.routingNumber","value":"123456789"},
{"name":"bankingDetails.bankName","value":"bankName iframe config"}]
contactDetails.address
[{"name":"contactDetails.address","isHidden":true},
{"name":"contactDetails.address.country","value":"US"},
{"name":"contactDetails.address.stateCode","value":"AK"},
{"name":"contactDetails.address.city","value":"city test"},
{"name":"contactDetails.address.street","value":"street test"},
{"name":"contactDetails.address.apartment","value":"apartment test"},
{"name":"contactDetails.address.zip","value":"11111"}]
ownerDetails.address
[{"name":"ownerDetails.address","isHidden":true},
{"name":"ownerDetails.address.country","value":"US"},
{"name":"ownerDetails.address.stateCode","value":"AK"},
{"name":"ownerDetails.address.city","value":"city test"},
{"name":"ownerDetails.address.street","value":"street test"},
{"name":"ownerDetails.address.apartment","value":"apartment test"},
{"name":"ownerDetails.address.zip","value":"11111"}]
businessProfile.gstExempt
[{"name":"businessProfile.gstExempt","value":true,"isHidden":true},
{"name":"businessProfile.gstNumber","value":"gstNumber iframe config"}]
businessProfile.shippingRequired
[{"name":"businessProfile.shippingRequired","value":true,"isHidden":true},
{"name":"businessProfile.inventory","value":true},
{"name":"businessProfile.deliveryTimePercentage.oneToSevenDays","value":"11.11"},
{"name":"businessProfile.deliveryTimePercentage.eightToFourteenDays","value":"22.22"},
{"name":"businessProfile.deliveryTimePercentage.fifteenToThirtyDays","value":"33.33"},
{"name":"businessProfile.deliveryTimePercentage.moreThanThirtyDays","value":"44.44"}]
businessProfile.pciCompliance
[{"name":"businessProfile.pciCompliance","isHidden":true},
{"name":"businessProfile.pciCompliance.dataCompromised","value":true},
{"name":"businessProfile.pciCompliance.isEnabled","value":true},
{"name":"businessProfile.pciCompliance.storesSensitiveData","value":true},
{"name":"businessProfile.pciCompliance.pciLevel","value":2}]
businessFinancials.volumeProjection
[{"name":"businessFinancials.volumeProjection","isHidden":true},
{"name":"businessFinancials.volumeProjectionVisa",
"value":"volumeProjectionVisa iframe config"},
{"name":"businessFinancials.volumeProjectionMastercard",
"value":"volumeProjectionMastercard iframe config"},
{"name":"businessFinancials.volumeProjectionAmericanExpress",
"value":"volumeProjectionAmericanExpress iframe config"},
{"name":"businessFinancials.volumeProjectionLocalDebitCard",
"value":"volumeProjectionLocalDebitCard iframe config"},
{"name":"businessFinancials.volumeProjectionDiscover",
"value":"volumeProjectionDiscover iframe config"}]
businessProcessingHistory.volumeHistory
[{"name":"businessProcessingHistory.volumeHistory","isHidden":true},
{"name":"businessProcessingHistory.volumeHistoryVisa",
"value":"volumeHistoryVisa iframe config"},
{"name":"businessProcessingHistory.volumeHistoryMastercard",
"value":"volumeHistoryMastercard iframe config"},
{"name":"businessProcessingHistory.volumeHistoryAmericanExpress",
"value":"volumeHistoryAmericanExpress iframe config"},
{"name":"businessProcessingHistory.volumeHistoryDiscover",
"value":"volumeHistoryDiscover iframe config"},
{"name":"businessProcessingHistory.volumeHistoryLocalDebitCard",
"value":"volumeHistoryLocalDebitCard iframe config"}]
Sample with visible and predefined values:
[{"name":"businessDetails.name","value":"name iframe config","isHidden":false},
{"name":"businessDetails.legalName","value":"legal name iframe config","isHidden":false},
{"name":"businessDetails.registrationNumber","value":"registrationNumber iframe config","isHidden":false},
{"name":"businessDetails.ownershipType","value":2,"isHidden":false},
{"name":"businessDetails.taxId","value":"820949745","isHidden":false},
{"name":"businessDetails.giin","value":"86NNNS.99999.SL.840","isHidden":false},
{"name":"businessDetails.incorporationDate","value":"2020-10-10","isHidden":false},
{"name":"businessDetails.companyWebsiteUrl","value":"https://companywebsiteurl.config","isHidden":false},
{"name":"businessDetails.businessAddress","isHidden":false},
{"name":"businessDetails.businessAddress.country","value":"US"},
{"name":"businessDetails.businessAddress.stateCode","value":"AK"},
{"name":"businessDetails.businessAddress.city","value":"city test"},
{"name":"businessDetails.businessAddress.street","value":"street test"},
{"name":"businessDetails.businessAddress.apartment","value":"apartment test"},
{"name":"businessDetails.businessAddress.zip","value":"11111"},
{"name":"businessDetails.corporateAddress","isHidden":false},
{"name":"businessDetails.corporateAddress.country","value":"US"},
{"name":"businessDetails.corporateAddress.stateCode","value":"AK"},
{"name":"businessDetails.corporateAddress.city","value":"city test"},
{"name":"businessDetails.corporateAddress.street","value":"street test"},
{"name":"businessDetails.corporateAddress.apartment","value":"apartment test"},
{"name":"businessDetails.corporateAddress.zip","value":"11111"},
{"name":"businessDetails.dbaName","value":"GERTRUDIS D REYES LLC","isHidden":false},
{"name":"businessDetails.dbaWebsiteUrl","value":"https://dbawebsiteurl.config","isHidden":false},
{"name":"businessDetails.dynamicDescriptor","value":"dynamicDescriptor iframe config","isHidden":false},
{"name":"businessDetails.description","value":"description iframe config","isHidden":false},
{"name":"businessDetails.customerServicePhone","value":"+1234567890","isHidden":false},
{"name":"businessDetails.customerServiceEmail","value":"customerservice@email.iframe","isHidden":false},
{"name":"businessDetails.fax","value":"+0987654321","isHidden":false},
{"name":"businessDetails.agreement","value":true,"isHidden":false},
{"name":"businessDetails.customField1","value":"businessDetails customField1 iframe config","isHidden":false},
{"name":"businessDetails.customField2","value":"businessDetails customField2 iframe config","isHidden":false},
{"name":"businessDetails.customField3","value":"businessDetails customField3 iframe config","isHidden":false},
{"name":"bankingDetails.bankAccount","isHidden":false},
{"name":"bankingDetails.accountNumber","value":"0123450"},
{"name":"bankingDetails.accountType","value":1},
{"name":"bankingDetails.accountHolderName","value":"accountHolderName iframe config"},
{"name":"bankingDetails.entityType","value":1},
{"name":"bankingDetails.routingNumber","value":"123456789"},
{"name":"bankingDetails.bankName","value":"bankName iframe config"},
{"name":"contactDetails.contactType","value":3,"isHidden":false},
{"name":"contactDetails.firstName","value":"contact first name iframe config","isHidden":false},
{"name":"contactDetails.lastName","value":"contact last name iframe config","isHidden":false},
{"name":"contactDetails.legalName","value":"contact legalName iframe config","isHidden":false},
{"name":"contactDetails.email","value":"contact@email.iframe","isHidden":false},
{"name":"contactDetails.mobilePhone","value":"+562-967-8957","isHidden":false},
{"name":"contactDetails.homePhone","value":"+123-678-123","isHidden":false},
{"name":"contactDetails.address","isHidden":false},
{"name":"contactDetails.address.country","value":"US"},
{"name":"contactDetails.address.stateCode","value":"AK"},
{"name":"contactDetails.address.city","value":"city test"},
{"name":"contactDetails.address.street","value":"street test"},
{"name":"contactDetails.address.apartment","value":"apartment test"},
{"name":"contactDetails.address.zip","value":"11111"},
{"name":"contactDetails.customField1","value":"contactDetails customField1 iframe config","isHidden":false},
{"name":"contactDetails.customField2","value":"contactDetails customField2 iframe config","isHidden":false},
{"name":"contactDetails.customField3","value":"contactDetails customField3 iframe config","isHidden":false},
{"name":"ownerDetails.firstName","value":"owner first name iframe config","isHidden":false},
{"name":"ownerDetails.lastName","value":"owner last name iframe config","isHidden":false},
{"name":"ownerDetails.idNumber","value":"941687645","isHidden":false},
{"name":"ownerDetails.giin","value":"86NNNS.99999.SL.840","isHidden":false},
{"name":"ownerDetails.email","value":"owner@email.iframe","isHidden":false},
{"name":"ownerDetails.mobilePhone","value":"+0354-123-089","isHidden":false},
{"name":"ownerDetails.homePhone","value":"+78-567-257","isHidden":false},
{"name":"ownerDetails.address","isHidden":false},
{"name":"ownerDetails.address.country","value":"US"},
{"name":"ownerDetails.address.stateCode","value":"AK"},
{"name":"ownerDetails.address.city","value":"city test"},
{"name":"ownerDetails.address.street","value":"street test"},
{"name":"ownerDetails.address.apartment","value":"apartment test"},
{"name":"ownerDetails.address.zip","value":"11111"},
{"name":"ownerDetails.dateOfBirth","value":"1990-01-01","isHidden":false},
{"name":"ownerDetails.position","value":3,"isHidden":false},
{"name":"ownerDetails.citizenship","value":"citizenship iframe config","isHidden":false},
{"name":"ownerDetails.ownershipDate","value":"2000-02-02","isHidden":false},
{"name":"ownerDetails.ownershipPercentage","value":"50.99","isHidden":false},
{"name":"ownerDetails.driversLicenceNumber","value":"driversLicenceNumber iframe config","isHidden":false},
{"name":"ownerDetails.customField1","value":"ownerDetails customField1 iframe config","isHidden":false},
{"name":"ownerDetails.customField2","value":"ownerDetails customField2 iframe config","isHidden":false},
{"name":"ownerDetails.customField3","value":"ownerDetails customField3 iframe config","isHidden":false},
{"name":"businessProfile.industry","value":2,"isHidden":false},
{"name":"businessProfile.category","value":1,"isHidden":false},
{"name":"businessProfile.privacyPolicyUrl","value":"https://privacypolicyurl.config","isHidden":false},
{"name":"businessProfile.returnsPolicyUrl","value":"https://returnspolicyurl.config","isHidden":false},
{"name":"businessProfile.tcPolicyUrl","value":"https://tcpolicyurl.config","isHidden":false},
{"name":"businessProfile.gstExempt","value":true,"isHidden":false},
{"name":"businessProfile.gstNumber","value":"gstNumber iframe config"},
{"name":"businessProfile.descriptionOfGoods","value":"descriptionOfGoods iframe config","isHidden":false},
{"name":"businessProfile.seasonalBusiness","value":true,"isHidden":false},
{"name":"businessProfile.shippingRequired","value":true,"isHidden":false},
{"name":"businessProfile.inventory","value":true},
{"name":"businessProfile.deliveryTimePercentage.oneToSevenDays","value":"11.11"},
{"name":"businessProfile.deliveryTimePercentage.eightToFourteenDays","value":"22.22"},
{"name":"businessProfile.deliveryTimePercentage.fifteenToThirtyDays","value":"33.33"},
{"name":"businessProfile.deliveryTimePercentage.moreThanThirtyDays","value":"44.44"},
{"name":"businessProfile.pciCompliance","isHidden":false},
{"name":"businessProfile.pciCompliance.dataCompromised","value":true},
{"name":"businessProfile.pciCompliance.isEnabled","value":true},
{"name":"businessProfile.pciCompliance.storesSensitiveData","value":true},
{"name":"businessProfile.pciCompliance.pciLevel","value":2},
{"name":"businessProfile.customField1","value":"businessProfile customField1 iframe config","isHidden":false},
{"name":"businessProfile.customField2","value":"businessProfile customField2 iframe config","isHidden":false},
{"name":"businessProfile.customField3","value":"businessProfile customField3 iframe config","isHidden":false},
{"name":"businessFinancials.volumeProjection","isHidden":false},
{"name":"businessFinancials.volumeProjectionVisa","value":"volumeProjectionVisa iframe config"},
{"name":"businessFinancials.volumeProjectionMastercard","value":"volumeProjectionMastercard iframe config"},
{"name":"businessFinancials.volumeProjectionAmericanExpress","value":"volumeProjectionAmericanExpress iframe config"},
{"name":"businessFinancials.volumeProjectionLocalDebitCard","value":"volumeProjectionLocalDebitCard iframe config"},
{"name":"businessFinancials.volumeProjectionDiscover","value":"volumeProjectionDiscover iframe config"},
{"name":"businessFinancials.avgTicketPriceProjection","value":"avgTicketPriceProjection iframe config","isHidden":false},
{"name":"businessFinancials.customField1","value":"businessFinancials customField1 iframe config","isHidden":false},
{"name":"businessFinancials.customField2","value":"businessFinancials customField2 iframe config","isHidden":false},
{"name":"businessFinancials.customField3","value":"businessFinancials customField3 iframe config","isHidden":false},
{"name":"businessProcessingHistory.volumeHistory","isHidden":false},
{"name":"businessProcessingHistory.volumeHistoryVisa","value":"volumeHistoryVisa iframe config"},
{"name":"businessProcessingHistory.volumeHistoryMastercard","value":"volumeHistoryMastercard iframe config"},
{"name":"businessProcessingHistory.volumeHistoryAmericanExpress","value":"volumeHistoryAmericanExpress iframe config"},
{"name":"businessProcessingHistory.volumeHistoryDiscover","value":"volumeHistoryDiscover iframe config"},
{"name":"businessProcessingHistory.volumeHistoryLocalDebitCard","value":"volumeHistoryLocalDebitCard iframe config"},
{"name":"businessProcessingHistory.avgTicketPriceHistory","value":"avgTicketPriceHistory iframe config","isHidden":false},
{"name":"businessProcessingHistory.previousBankruptcy","value":true,"isHidden":false},
{"name":"businessProcessingHistory.customField1","value":"businessProcessingHistory customField1 iframe config","isHidden":false},
{"name":"businessProcessingHistory.customField2","value":"businessProcessingHistory customField2 iframe config","isHidden":false},
{"name":"businessProcessingHistory.customField3","value":"businessProcessingHistory customField3 iframe config","isHidden":false}]
//1. Request an authorization token via UMS IFrame Authentication method.
//See UMS IFrame Authentication section
//2. Add script reference to your application HTML page
//sandbox environment
<script src= "https://sandbox.4levers.com/underwritingiframe/amaryllis-application.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.16/webfont.js"></script>
//production environment
<script src= "https://underwriting.4levers.com/amaryllis-application.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.16/webfont.js"></script>
//3. Add Underwriting amaryllis-application custom element container.
<div id="container">
<amaryllis-application-create
template="application template id"
provider="Service Provider Id"
name="underwriting application form name"
email="merchant contact email"
configuration='[{"parameterName":"text","value":"text","isHidden":"true"}]'
token="Token that is taken via Get Authentication Token method">
</amaryllis-application-create>
</div>
//4. submit() method example
<script type="application/javascript">
async function submitApplication(){
try {
var applicationElement = document.querySelector('amaryllis-application-create');
var appId = await applicationElement.submit();
document.body.removeChild(document.getElementById('container'));
alert("Your application ID is: " + appId);
} catch (e) {
alert("Please complete all the steps and required fields");
}
}
</script>
//Iframe example
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.16/webfont.js"></script>
<script src="https://sandbox.4levers.com/underwritingiframe/amaryllis-application.js"></script>
<script type="application/javascript">
async function submitApplication(){
try {
var applicationElement = document.querySelector('amaryllis-application-create');
var appId = await applicationElement.submit();
document.body.removeChild(document.getElementById('container'));
alert("Your application ID is: " + appId);
} catch (e) {
alert("Please complete all the steps and required fields");
}
}
</script>
</head>
<body>
<div id="container">
<amaryllis-application-create
template="application template id"
provider="Service Provider Id"
name="underwriting application form name"
email="merchant contact email"
configuration='[{"parameterName":"text","value":"text","isHidden":"true"}]'
token = "Token that is taken via Get Authentication Token method"
>
</amaryllis-application-create>
</div>
<div>
<button onclick="submitApplication()">Submit</button>
</div>
</body>
</html>
| № | Name | Type | Description |
| 1 | businessDetails.name | string | max length =” 255 “symbols. |
| 2 | businessDetails.legalname | string | max length =” 255 “symbols. |
| 3 | businessDetails.registrationnumber | string | max length =” 255 “symbols. |
| 4 | businessDetails.ownershipType | enum | Avaliable Values:
|
| 5 | businessDetails.taxid | string | max length =” 255 “symbols. |
| 6 | businessDetails.giin | string | max length =” 19 “symbols 1st and 2nd parts – numbers and uppercase letters only 3rd part – uppercase letters only 4th part – numbers only |
| 7 | businessDetails.incorporationDate | datetime | date format: us pattern m/d/yyyy |
| 8 | businessDetails.businessAddress | block of parameters | see examples for additional reference |
| 9 | businessDetails.businessAddress.country | string | country from the list of available values |
| 10 | businessDetails.businessAddress.stateCode | string | max length =” 3 “symbols states from the list of available values for country =” “us” “or “ca” or “australia”: |
| 11 | businessDetails.businessAddress.city | string | max length =” 15 “symbols |
| 12 | businessDetails.businessAddress.street | string | max length =” 38 “symbols |
| 13 | businessDetails.businessAddress.apartment | string | max length =” 38 “symbols |
| 14 | businessDetails.corporateAddress.zip | string | if businessdetails.businessaddress.country =” “us”, “max length =” 5 “or 9 symbolsif businessdetails.businessaddress.country !=” “us”, “max length =” 15 “symbols |
| 15 | businessDetails.companyWebsiteURL | string | web address url address should be started with http(s):// |
| 16 | businessDetails.dbaName | string | max length =” 255 “symbols |
| 17 | businessDetails.dbaWebsiteURL | string | web address url address should be started with http(s):// |
| 18 | businessDetails.dynamicDescriptor | string | max length =” 255 “symbols |
| 19 | businessDetails.description | string | max length =” 4000 “symbols |
| 20 | businessDetails.customerServicePhone | string | max length =” 50 “symbols regular expression:/^([+ ]+)?(\d[\d- ]+)?(([\d- ]+))?[\d- ]+\d$/ |
| 21 | businessDetails.customerServiceEmail | string | regular expression: /^(?=”[a-za-z0-9])[“a-za-z0-9.!#$%&’+/=?^_`{|}~-]a-za-z0-9@[a-za-z0-9-]+(?:.[a-za-z0-9-]{2,})$/ |
| 22 | businessDetails.fax | string | max length =” 50 “symbols regular expression: /^([+ ]+)?(\d[\d- ]+)?(([\d- ]+))?[\d- ]+\d$/ |
| 23 | businessDetails.agreement | boolean | true false |
| 24 | businessDetails.customfield1 | string | max length =” 255 “symbols |
| 25 | businessDetails.customfield2 | string | max length =” 255 “symbols |
| 26 | businessDetails.customfield3 | string | max length =” 255 “symbols |
| 27 | bankingDetails.bankAccount | block of parameters | see examples for additional reference: if there is external bank validation (‘external bank validation’ =” ‘plaid’ “in template), then bank account fields (bankingdetails.accountnumber, bankingdetails.accounttype, bankingdetails.accountholdername, bankingdetails.entitytype, bankingdetails.routingnumber, bankingdetails.bankname) must be excluded from config and account number will be validated via plaid wizard in iframe. if there is no external bank validation in template, bank account fields (bankingdetails.accountnumber, bankingdetails.accounttype, bankingdetails.accountholdername, bankingdetails.entitytype, bankingdetails.routingnumber, bankingdetails.bankname) are available for configuration |
| 28 | bankingDetails.accountNumber | string | value restrictions: digits; min.length=”3 max.length=”17 |
| 29 | bankingDetails.accountType | enum | checking – 1 savings -2 |
| 30 | bankingDetails.accountHolderName | string | length=”120 |
| 31″ | bankingDetails.entityType | enum | Avaliable Values:personal – 0 business – 1 |
| 32 | bankingDetails.routingNumber | string | digits;length=”9 |
| 33″ | bankingDetails.bankName | string | max length =” 255 “symbols |
| 34 | contactDetails.firstName | string | max length =” 255 “symbols |
| 35 | contactDetails.contactType | enum | Avaliable Values:
|
| 36 | contactDetails.lastName | string | max length =” 255 “symbols |
| 37 | contactDetails.legalName | string | max length =” 255 “symbols |
| 38 | contactDetails.email | string | regular expression: /^(?=”[a-za-z0-9″])[“a-za-z0-9.!#$%&’+/=?^_`{|}~-]a-za-z0-9@[a-za-z0-9-]+(?:.[a-za-z0-9-]{2,})$/ |
| 39 | contactDetails.mobilePhone | string | max length =” 50 “symbols regular expression: /^([+ ]+)?(\d[\d- ]+)?(([\d- ]+))?[\d- ]+\d$/ |
| 40 | contactDetails.homePhone | string | max length =” 50 “symbols regular expression: /^([+ ]+)?(\d[\d- ]+)?(([\d- ]+))?[\d- ]+\d$/ |
| 41 | contactDetails.address | block of parameters | see examples for additional reference |
| 42 | contactDetails.address.country | string | country from the list of available values |
| 43 | contactDetails.address.statecode | string | max length =” 3 “symbols states from the list of available values for country =” “us” “or “ca” or “australia”: |
| 44 | contactDetails.address.city | string | max length =” 15 “symbols |
| 45 | contactDetails.address.street | string | max length =” 38 “symbols |
| 46 | contactDetails.address.apartment | string | max length =” 38 “symbols |
| 47 | contactDetails.address.zip | string | if businessdetails.businessaddress.country =” “us”, “max length =” 5 “or 9 symbols if businessdetails.businessaddress.country !=” “us”, “max length =” 15 “symbols |
| 48 | contactDetails.customfield1 | string | max length =” 255 “symbols |
| 49 | contactDetails.customfield2 | string | max length =” 255 “symbols |
| 50 | contactDetails.customfield3 | string | max length =” 255 “symbols |
| 51 | ownerDetails.giin | string | max length =” 19 “symbols 1st and 2nd parts – numbers and uppercase letters only 3rd part – uppercase letters only 4th part – numbers only |
| 52 | ownerDetails.email | string | regular expression: /^(?=”[a-za-z0-9])[“a-za-z0-9.!#$%&’+/=?^_`{|}~-]a-za-z0-9@[a-za-z0-9-]+(?:.[a-za-z0-9-]{2,})$/ |
| 53 | ownerDetails.mobilephone | string | max length =” 50 “symbols regular expression: /^([+ ]+)?(\d[\d- ]+)?(([\d- ]+))?[\d- ]+\d$/ |
| 54 | ownerDetails.homephone | string | max length =” 50 “symbols regular expression: /^([+ ]+)?(\d[\d- ]+)?(([\d- ]+))?[\d- ]+\d$/ |
| 55 | ownerDetails.address | block of parameters | see examples for additional reference |
| 56 | ownerDetails.address.country | string | country from the list of available values |
| 57 | ownerDetails.address.statecode | string | max length =” 3 “symbols states from the list of available values for country =” “us” “or “ca” or “australia”: |
| 58 | ownerDetails.address.city | string | max length =” 15 “symbols |
| 59 | ownerDetails.address.street | string | max length =” 38 “symbols |
| 60 | ownerDetails.address.apartment | string | max length =” 38 “symbols |
| 61 | ownerDetails.address.zip | string | if businessdetails.businessaddress.country =” “us”, “max length =” 5 “or 9 symbols if businessdetails.businessaddress.country !=” “us”, “max length =” 15 “symbols |
| 62 | ownerDetails.dateofbirth | datetime | us pattern m/d/yyyy |
| 63 | ownerDetails.position | string | max length =” 255 “symbols |
| 64 | ownerDetails.citizenship | string | max length =” 255 “symbols |
| 65 | ownerDetails.ownershipDate | datetime | us pattern m/d/yyyy |
| 66 | ownerDetails.ownerShipperCentage | string | 6 symbols max 0 >=” value <=” “100 the “value can not have more than 2 symbols in decimal part |
| 67 | ownerDetails.driversLicenceNumber | string | max length =” 255 “symbols |
| 68 | ownerDetails.customfield1 | string | max length =” 255 “symbols |
| 69 | ownerDetails.customfield2 | string | max length =” 255 “symbols |
| 70 | ownerDetails.customfield3 | string | max length =” 255 “symbols |
| 71 | businessProfile.industry | enum | string with industrytype enumeration value. Avaliable Values:
|
| 72 | businessProfile.category | enum | string with the categorytype enumeration value. Avaliable Values:
|
| 73 | businessProfile.privacyPolicyurl | string | web address url address should be started with http(s):// |
| 74 | businessProfile.returnsPolicyurl | string | web address url address should be started with http(s):// |
| 75 | businessProfile.tcpolicyurl | string | web addressurl address should be started with http(s):// |
| 76 | businessProfile.gstexempt | boolean | true false |
| 77 | businessProfile.gstnumber | string | in case businessprofile.gstexempt =” true, “then businessprofile.gstnumber is required businessprofile.gstexempt =” false, “then businessprofile.gstnumber should be empty. |
| 78 | businessProfile.descriptionOfGoods | string | max length =” 4000 “symbols |
| 79 | businessProfile.seasonalBusiness | boolean | true false |
| 80 | businessProfile.shippingRequired | boolean | if businessprofile.shippingrequired =” false, “then following values should be empty: businessprofile.inventory businessprofile.deliverytimepercentage.onetosevendays businessprofile.deliverytimepercentage.eighttofourteendays businessprofile.deliverytimepercentage.fifteentothirtydays deliverytimepercentage.morethanthirtydays true false |
| 81 | businessProfile.inventory | boolean | true false |
| 82 | businessProfile.deliveryTimePercentage.oneToSevenDays | integer | 6 symbols max 0 >=” value <=” “100 the “value can not have more than 2 symbols in decimal part in case businessprofile.shippingrequired =” true “parameter is required businessprofile.shippingrequired =” false “parameter is not required |
| 83 | businessProfile.deliveryTimePercentage.eightToFourTeenDays | integer | 6 symbols max 0 >=” value <=” “100 the “value can not have more than 2 symbols in decimal part in case businessprofile.shippingrequired =” true “parameter is required businessprofile.shippingrequired =” false “parameter is not required |
| 84 | businessProfile.deliveryTimePercentage.fifteentothirtydays | integer | 6 symbols max 0 >=” value <=” “100 the “value can not have more than 2 symbols in decimal part in case businessprofile.shippingrequired =” true “parameter is required businessprofile.shippingrequired =” false “parameter is not required |
| 85 | businessProfile.deliveryTimePercentage.moreThanThirtyDays | integer | 6 symbols max 0 >=” value <=” “100 the “value can not have more than 2 symbols in decimal part in case businessprofile.shippingrequired =” true “parameter is required businessprofile.shippingrequired =” false “parameter is not required |
| 86 | businessProfile.pciCompliance | block of parameters | see examples for additional reference |
| 87 | businessProfile.pciCompliance.pciLevel | enum | in case businessprofile.pcicompliance.isenabled =” true “parameter is required businessprofile.pcicompliance.isenabled =” false “parameter is not required string with the categorytype enumeration value. Avaliable Values:
|
| 88 | businessProfile.pciCompliance.storesSensitiveData | boolean | in case businessprofile.pcicompliance.isenabled =” true “parameter is required businessprofile.pcicompliance.isenabled =” false “parameter is not required true false |
| 89 | businessProfile.pciCompliance.dataCompromised | boolean | in case businessprofile.pcicompliance.isenabled =” true “parameter is required businessprofile.pcicompliance.isenabled =” false “parameter is not required true false |
| 90 | businessProfile.customfield1 | string | max length =” 255 “symbols |
| 91 | businessProfile.customfield2 | string | max length =” 255 “symbols |
| 92 | businessProfile.customfield3 | string | max length =” 255 “symbols |
| 93 | businessFinancials.volumeprojection | block of parameters | see examples for additional reference |
| 94 | businessFinancials.volumeprojectionvisa | string | max length =” 255 “symbols in case parameter “volume projection” =” ‘required’ “under underwriting template the parameter is required |
| 95 | businessFinancials.volumeprojectionmastercard | string | max length =” 255 “symbols in case parameter “volume projection” =” ‘required’ “under underwriting template the parameter is required |
| 96 | businessFinancials.volumeprojectionamericanexpress | string | max length =” 255 “symbols in case parameter “volume projection” =” ‘required’ “under underwriting template the parameter is required |
| 97 | businessFinancials.volumeprojectiondiscover | string | max length =” 255 “symbols in case parameter “volume projection” =” ‘required’ “under underwriting template the parameter is required |
| 98 | businessFinancials.volumeprojectionlocaldebitcard | string | max length =” 255 “symbols in case parameter “volume projection” =” ‘required’ “under underwriting template the parameter is required |
| 99 | businessFinancials.avgticketpriceprojection | string | max length =” 255 “symbolsin case parameter “volume projection” =” ‘required’ “under underwriting template the parameter is required |
| 100 | businessFinancials.customfield1 | string | max length =” 255 “symbols |
| 101 | businessFinancials.customfield2 | string | max length =” 255 “symbols |
| 102 | businessFinancials.customfield3 | string | max length =” 255 “symbols |
| 103 | businessProcessingHistory.volumehistory | block of parameters | see examples for additional reference |
| 104 | businessProcessingHistory.volumehistoryvisa | string | max length =” 255 “symbols in case parameter “volume history” =” ‘required’ “under underwriting template the parameter is required |
| 105 | businessProcessingHistory.volumehistorymastercard | string | max length =” 255 “symbols in case parameter “volume history” =” ‘required’ “under underwriting template the parameter is required |
| 106 | businessProcessingHistory.volumehistoryamericanexpress | string | max length =” 255 “symbols in case parameter “volume history” =” ‘required’ “under underwriting template the parameter is required |
| 107 | businessProcessingHistory.volumehistorydiscover | string | max length =” 255 “symbols in case parameter “volume history” =” ‘required’ “under underwriting template the parameter is required |
| 108 | businessProcessingHistory.volumehistorylocaldebitcard | string | max length =” 255 “symbolsin case parameter “volume history” =” ‘required’ “under underwriting template the parameter is required |
| 109 | businessProcessingHistory.avgticketpricehistory | string | max length =” 255 “symbols in case parameter “volume history” =” ‘required’ “under underwriting template the parameter is required |
| 110 | businessProcessingHistory.previousbankruptcy | boolean | true false |
| 111 | businessProcessingHistory.customfield1 | string | max length =” 255 “symbols |
| 112 | businessProcessingHistory.customfield2 | string | max length =” 255 “symbols |
| 113 | businessProcessingHistory.customfield3 | string | max length =” 255 “symbols |
Once the “Request Resubmission“ action is selected, user can choose to send a direct email with a link to the UMS resubmission page
URL is set in Back-Office Application
//implementation example
const appElement = document.querySelector( 'amaryllis-application-create');
try {
const applicationId = await appElement.submit();
} catch (e) {
console.log(e);
}1.Add the provided script reference to your application HTML page.
2.Add Underwriting amaryllis-application custom element form the container with specified parameters on the HTML page (parent page in the external system).
3.After the “Request Resubmission“ action is perfomed the User receives the link to be able to redirect to the page via URL.
4.Underwriting Application data is retrived from Amaryllis Back-Office database with the fields specific to Resubmission view.
5.After Underwriting Application is filled in with data then submit() method is called to send Underwriting Application data into Amaryllis Back-Office database. As a result specific responses will be received.
Use POST method to create a new underwriting application
applicationId and responseCode in case of a success. In case of a failure, user receives the error code.Endpoint:
POST
Sandbox: https://sandbox.4levers.com/managementapi/api/underwriting-applications
Production: https://managementapi.4levers.com/api/underwriting-applications
{
"name": "string",
"templateId": 0,
"contactEmail": "string",
"applicationBody": {
"businessDetails": {
"name": "string",
"legalName": "string",
"registrationNumber": "string",
"ownershipType": "Individual",
"taxId": "string",
"giin": "string",
"incorporationDate": "2021-08-12T14:16:54.776Z",
"businessAddress": {
"street": "string",
"apartment": "string",
"city": "string",
"country": "string",
"stateCode": "string",
"zip": "string"
},
"corporateAddress": {
"street": "string",
"apartment": "string",
"city": "string",
"country": "string",
"stateCode": "string",
"zip": "string"
},
"companyWebsiteUrl": "string",
"dbaName": "string",
"dbaWebsiteUrl": "string",
"dynamicDescriptor": "string",
"description": "string",
"customerServicePhone": "string",
"customerServiceEmail": "string",
"fax": "string",
"socialMediaAccounts": [
{
"socialNetwork": "Facebook",
"accountName": "string"
}
],
"agreement": true,
"customField1": "string",
"customField2": "string",
"customField3": "string"
},
"businessDetailsDocuments": {
"registrationCertificate": {
"fileName": "string",
"fileBody": "string"
},
"proofOfAddress": {
"fileName": "string",
"fileBody": "string"
},
"customDocument1": {
"fileName": "string",
"fileBody": "string"
},
"customDocument2": {
"fileName": "string",
"fileBody": "string"
},
"customDocument3": {
"fileName": "string",
"fileBody": "string"
}
},
"bankingDetails": {
"bankAccount": {
"accountNumber": "string",
"accountType": "None",
"accountHolderName": "string",
"entityType": "Personal",
"routingNumber": "string",
"bankName": "string",
},
"plaidAccessToken": "string"
},
"bankingDetailsDocuments": {
"voidCheck": {
"fileName": "string",
"fileBody": "string"
},
"customDocument1": {
"fileName": "string",
"fileBody": "string"
},
"customDocument2": {
"fileName": "string",
"fileBody": "string"
},
"customDocument3": {
"fileName": "string",
"fileBody": "string"
}
},
"contactDetails": [
{
"contactType": "Statements",
"firstName": "string",
"lastName": "string",
"legalName": "string",
"email": "string",
"mobilePhone": "string",
"homePhone": "string",
"address": {
"street": "string",
"apartment": "string",
"city": "string",
"country": "string",
"stateCode": "string",
"zip": "string"
},
"customField1": "string",
"customField2": "string",
"customField3": "string"
}
],
"ownerDetails": [
{
"firstName": "string",
"lastName": "string",
"idNumber": "string",
"giin": "string",
"email": "string",
"mobilePhone": "string",
"homePhone": "string",
"address": {
"street": "string",
"apartment": "string",
"city": "string",
"country": "string",
"stateCode": "string",
"zip": "string"
},
"dateOfBirth": "2021-08-12T14:16:54.776Z",
"position": "string",
"citizenship": "string",
"ownershipDate": "2021-08-12T14:16:54.776Z",
"ownershipPercentage": 0,
"driversLicenceNumber": "string",
"customField1": "string",
"customField2": "string",
"customField3": "string",
"ownerDetailsDocuments": {
"proofOfId": {
"fileName": "string",
"fileBody": "string"
},
"proofOfAddress": {
"fileName": "string",
"fileBody": "string"
},
"personalGuarantee": {
"fileName": "string",
"fileBody": "string"
},
"customDocument1": {
"fileName": "string",
"fileBody": "string"
},
"customDocument2": {
"fileName": "string",
"fileBody": "string"
},
"customDocument3": {
"fileName": "string",
"fileBody": "string"
}
}
}
],
"businessProfile": {
"industry": "InformationTechnology",
"category": "Retail",
"privacyPolicyUrl": "string",
"returnsPolicyUrl": "string",
"tcPolicyUrl": "string",
"gstExempt": true,
"gstNumber": "string",
"descriptionOfGoods": "string",
"seasonalBusiness": true,
"saleChannels": [
{
"channelType": "string",
"percentageOfSales": 0
}
],
"shipping": {
"shippingRequired": true,
"inventory": true,
"deliveryTimePercentage": {
"oneToSevenDays": 0,
"eightToFourteenDays": 0,
"fifteenToThirtyDays": 0,
"moreThanThirtyDays": 0
}
},
"pciCompliance": {
"isEnabled": true,
"pciLevel": "DssLevelOne",
"storesSensitiveData": true,
"dataCompromised": true
},
"customField1": "string",
"customField2": "string",
"customField3": "string"
},
"businessProfileDocuments": {
"pciCertificate": {
"fileName": "string",
"fileBody": "string"
},
"customDocument1": {
"fileName": "string",
"fileBody": "string"
},
"customDocument2": {
"fileName": "string",
"fileBody": "string"
},
"customDocument3": {
"fileName": "string",
"fileBody": "string"
}
},
"businessFinancials": {
"volumeProjection": {
"visa": "string",
"mastercard": "string",
"americanExpress": "string",
"localDebitCard": "string",
"discover": "string"
},
"avgTicketPriceProjection": "string",
"previousBankruptcy": true,
"customField1": "string",
"customField2": "string",
"customField3": "string"
},
"businessProcessingHistory": {
"volumeHistory": {
"visa": "string",
"mastercard": "string",
"americanExpress": "string",
"localDebitCard": "string",
"discover": "string"
},
"avgTicketPriceHistory": "string",
"previousBankruptcy": true,
"customField1": "string",
"customField2": "string",
"customField3": "string"
}
}
}
{
"id": 0
}| № | Name | Type | Description |
| 1 | id | string | application identifier. can be ommited in post request. all new applictions are created with a unique identifier. |
| 2 | name | string | application name. |
| 3 | templateId | string | application template identifier. |
| 4 | contactEmail | string | notification target email. |
| № | Name | Type | Description |
| 1 | businessDetails | object | business details include business general information. |
| 2 | businessDetailsDocuments | object | business details documents include business registration documents. |
| 3 | bankingDetails | object | banking details include business bank and bank account information. |
| 4 | bankingDetailsDocuments | object | banking details documents include business banking documents. |
| 5 | contactDetails | array | contact details include business contact information. |
| 6 | ownerDetails | array | owner details include business owner information. |
| 7 | ownerDetailsDocuments | object | owner details documents include documents provided by the business owner. |
| 8 | businessProfile | object | business profile includes information about the nature of a business |
| 9 | businessProfileDocuments | object | business profile documents include pci compliance certificate. |
| 10 | businessFinancials | object | business financials include business payment cards processing projections. |
| 11 | businessProcessingHistory | object | business processing history includes historical data about payment card processing. |
Use PUT method to update the existing underwriting application.
Endpoint:
PUT
Sandbox: https://sandbox.4levers.com/managementapi/api/underwriting-applications/{applicationId}
Production: https://managementapi.4levers.com/api/underwriting-applications/{applicationId}
{
"id": 0,
"name": "string",
"templateId": 0,
"contactEmail": "string",
"applicationBody": {
"businessDetails": {
"name": "string",
"legalName": "string",
"registrationNumber": "string",
"ownershipType": "Individual",
"taxId": "string",
"giin": "string",
"incorporationDate": "2021-08-12T14:16:31.972Z",
"businessAddress": {
"street": "string",
"apartment": "string",
"city": "string",
"country": "string",
"stateCode": "string",
"zip": "string"
},
"corporateAddress": {
"street": "string",
"apartment": "string",
"city": "string",
"country": "string",
"stateCode": "string",
"zip": "string"
},
"companyWebsiteUrl": "string",
"dbaName": "string",
"dbaWebsiteUrl": "string",
"dynamicDescriptor": "string",
"description": "string",
"customerServicePhone": "string",
"customerServiceEmail": "string",
"fax": "string",
"socialMediaAccounts": [
{
"socialNetwork": "Facebook",
"accountName": "string"
}
],
"agreement": true,
"customField1": "string",
"customField2": "string",
"customField3": "string"
},
"businessDetailsDocuments": {
"registrationCertificate": {
"fileName": "string",
"fileBody": "string"
},
"proofOfAddress": {
"fileName": "string",
"fileBody": "string"
},
"customDocument1": {
"fileName": "string",
"fileBody": "string"
},
"customDocument2": {
"fileName": "string",
"fileBody": "string"
},
"customDocument3": {
"fileName": "string",
"fileBody": "string"
}
},
"bankingDetails": {
"bankAccount": {
"accountNumber": "string",
"accountType": "None",
"accountHolderName": "string",
"entityType": "Personal",
"routingNumber": "string",
"bankName": "string",
},
"plaidAccessToken": "string"
},
"bankingDetailsDocuments": {
"voidCheck": {
"fileName": "string",
"fileBody": "string"
},
"customDocument1": {
"fileName": "string",
"fileBody": "string"
},
"customDocument2": {
"fileName": "string",
"fileBody": "string"
},
"customDocument3": {
"fileName": "string",
"fileBody": "string"
}
},
"contactDetails": [
{
"id": "3c35b85f-f372-4835-99d7-e3e0f2e324f1",
"contactType": "Statements",
"firstName": "string",
"lastName": "string",
"legalName": "string",
"email": "string",
"mobilePhone": "string",
"homePhone": "string",
"address": {
"street": "string",
"apartment": "string",
"city": "string",
"country": "string",
"stateCode": "string",
"zip": "string"
},
"customField1": "string",
"customField2": "string",
"customField3": "string"
}
],
"ownerDetails": [
{
"id": "0c35b85f-f372-4835-99d7-e3e0f2e324f1",
"firstName": "string",
"lastName": "string",
"idNumber": "string",
"giin": "string",
"email": "string",
"mobilePhone": "string",
"homePhone": "string",
"address": {
"street": "string",
"apartment": "string",
"city": "string",
"country": "string",
"stateCode": "string",
"zip": "string"
},
"dateOfBirth": "2021-08-12T14:16:54.776Z",
"position": "string",
"citizenship": "string",
"ownershipDate": "2021-08-12T14:16:54.776Z",
"ownershipPercentage": 0,
"driversLicenceNumber": "string",
"customField1": "string",
"customField2": "string",
"customField3": "string",
"ownerDetailsDocuments": {
"proofOfId": {
"fileName": "string",
"fileBody": "string"
},
"proofOfAddress": {
"fileName": "string",
"fileBody": "string"
},
"personalGuarantee": {
"fileName": "string",
"fileBody": "string"
},
"customDocument1": {
"fileName": "string",
"fileBody": "string"
},
"customDocument2": {
"fileName": "string",
"fileBody": "string"
},
"customDocument3": {
"fileName": "string",
"fileBody": "string"
}
}
}
],
"businessProfile": {
"industry": "InformationTechnology",
"category": "Retail",
"privacyPolicyUrl": "string",
"returnsPolicyUrl": "string",
"tcPolicyUrl": "string",
"gstExempt": true,
"gstNumber": "string",
"descriptionOfGoods": "string",
"seasonalBusiness": true,
"saleChannels": [
{
"channelType": "string",
"percentageOfSales": 0
}
],
"shipping": {
"shippingRequired": true,
"inventory": true,
"deliveryTimePercentage": {
"oneToSevenDays": 0,
"eightToFourteenDays": 0,
"fifteenToThirtyDays": 0,
"moreThanThirtyDays": 0
}
},
"pciCompliance": {
"isEnabled": true,
"pciLevel": "DssLevelOne",
"storesSensitiveData": true,
"dataCompromised": true
},
"customField1": "string",
"customField2": "string",
"customField3": "string"
},
"businessProfileDocuments": {
"pciCertificate": {
"fileName": "string",
"fileBody": "string"
},
"customDocument1": {
"fileName": "string",
"fileBody": "string"
},
"customDocument2": {
"fileName": "string",
"fileBody": "string"
},
"customDocument3": {
"fileName": "string",
"fileBody": "string"
}
},
"businessFinancials": {
"volumeProjection": {
"visa": "string",
"mastercard": "string",
"americanExpress": "string",
"localDebitCard": "string",
"discover": "string"
},
"avgTicketPriceProjection": "string",
"previousBankruptcy": true,
"customField1": "string",
"customField2": "string",
"customField3": "string"
},
"businessProcessingHistory": {
"volumeHistory": {
"visa": "string",
"mastercard": "string",
"americanExpress": "string",
"localDebitCard": "string",
"discover": "string"
},
"avgTicketPriceHistory": "string",
"previousBankruptcy": true,
"customField1": "string",
"customField2": "string",
"customField3": "string"
}
}
}
{
"id": 0
}| № | Name | Type | Description |
| 1 | id | string | application identifier. can be skipped in put request. id is taken from the request endpoint. |
| 2 | name | string | application name. |
| 3 | templateId | string | application template identifier. |
| № | Name | Type | Description |
| 1 | businessDetails | object | business details include business general information. |
| 2 | businessDetailsDocuments | object | business details documents include business registration documents. |
| 3 | bankingDetails | object | banking details include business bank and bank account information. |
| 4 | bankingDetailsDocuments | object | banking details documents include business banking documents. |
| 5 | contactDetails | array | contact details include business contact information. |
| 6 | ownerDetails | array | owner details include business owner information. |
| 7 | ownerDetailsDocuments | object | owner details documents include documents provided by the business owner. |
| 8 | businessProfile | object | business profile includes information about the nature of a business |
| 9 | businessProfileDocuments | object | business profile documents include pci compliance certificate. |
| 10 | businessFinancials | object | business financials include business payment cards processing projections. |
| 11 | businessProcessingHistory | object | business processing history includes historical data about payment card processing. |
Use PATCH method to update status(s) of an existing underwriting application fields.
Endpoint:
PATCH
Sandbox: https://sandbox.4levers.com/managementapi/api/underwriting-applications/{applicationId:int}/field-status
Production: https://managementapi.4levers.com/api/underwriting-applications/{applicationId:int}/field-status
{
"businessDetails": {
"name": "New",
"legalName": "New",
"registrationNumber": "New",
"ownershipType": "New",
"taxId": "New",
"giin": "New",
"incorporationDate": "New",
"businessAddress": "New",
"corporateAddress": "New",
"companyWebsiteUrl": "New",
"dynamicDescriptor": "New",
"dbaName": "New",
"dbaWebsiteUrl": "New",
"description": "New",
"customerServicePhone": "New",
"customerServiceEmail": "New",
"fax": "New",
"socialMediaAccounts": "New",
"customField1": "New",
"customField2": "New",
"customField3": "New"
},
"businessDetailsDocuments": {
"registrationCertificate": "New",
"proofOfAddress": "New",
"customDocument1": "New",
"customDocument2": "New",
"customDocument3": "New"
},
"bankingDetails":{
"bankAccount":"New"
},
"bankingDetailsDocuments": {
"voidCheck": "New",
"customDocument1": "New",
"customDocument2": "New",
"customDocument3": "New"
},
"contactDetails": [
{
"contactType": "New",
"firstName": "New",
"lastName": "New",
"legalName": "New",
"email": "New",
"mobilePhone": "New",
"homePhone": "New",
"address": "New",
"customField1": "New",
"customField2": "New",
"customField3": "New"
}
],
"ownerDetails": [
{
"firstName": "New",
"lastName": "New",
"idNumber": "New",
"giin": "New",
"email": "New",
"mobilePhone": "New",
"homePhone": "New",
"address": "New",
"dateOfBirth": "New",
"position": "New",
"citizenship": "New",
"ownershipDate": "New",
"ownershipPercentage": "New",
"driversLicenceNumber": "New",
"customField1": "New",
"customField2": "New",
"customField3": "New"
"ownerDetailsDocuments": {
"proofOfId": "New",
"proofOfAddress": "New",
"personalGuarantee": "New",
"customDocument1": "New",
"customDocument2": "New",
"customDocument3": "New"
}
}
],
"businessProfile": {
"industry": "New",
"category": "New",
"privacyPolicyUrl": "New",
"returnsPolicyUrl": "New",
"tcPolicyUrl": "New",
"gstNumber": "New",
"descriptionOfGoods": "New",
"seasonalBusiness": "New",
"saleChannels": "New",
"shipping": "New",
"pciCompliance": "New",
"customField1": "New",
"customField2": "New",
"customField3": "New"
},
"businessProfileDocuments": {
"pciCertificate": "New",
"customDocument1": "New",
"customDocument2": "New",
"customDocument3": "New"
},
"businessFinancials": {
"volumeProjection": "New",
"avgTicketPriceProjection": "New",
"customField1": "New",
"customField2": "New",
"customField3": "New"
},
"businessProcessingHistory": {
"volumeHistory": "New",
"avgTicketPriceHistory": "New",
"previousBankruptcy": "New",
"customField1": "New",
"customField2": "New",
"customField3": "New"
}
}
{
"id": 0
}Use PUT Underwriting Application Statuses method to update Underwriting Application status
{id} and status of the existing underwriting applicationValues of application statuses:
Endpoint:
PUT
Sandbox: https://sandbox.4levers.com/managementapi/api/underwriting-applications/{applicationId}/status
Production: https://managementapi.4levers.com/api/underwriting-applications/{applicationId}/status
…/api/underwriting-applications/{applicationId}/status
Request
{
"id": 261,
"payoutStatus": "Approved"
}
Response
{
"id": 261,
"status": "Approved"
}
{
"name": "string",
"templateId": 0,
"contactEmail": "string",
"applicationBody": {
"businessDetails": {
"name": "string",
"legalName": "string",
"registrationNumber": "string",
"ownershipType": "Individual",
"taxId": "string",
"giin": "string",
"incorporationDate": "2021-08-12T14:16:54.776Z",
"businessAddress": {
"street": "string",
"apartment": "string",
"city": "string",
"country": "string",
"stateCode": "string",
"zip": "string"
},
"corporateAddress": {
"street": "string",
"apartment": "string",
"city": "string",
"country": "string",
"stateCode": "string",
"zip": "string"
},
"companyWebsiteUrl": "string",
"dbaName": "string",
"dbaWebsiteUrl": "string",
"dynamicDescriptor": "string",
"description": "string",
"customerServicePhone": "string",
"customerServiceEmail": "string",
"fax": "string",
"socialMediaAccounts": [
{
"socialNetwork": "Facebook",
"accountName": "string"
}
],
"agreement": true,
"customField1": "string",
"customField2": "string",
"customField3": "string"
},
"businessDetailsDocuments": {
"registrationCertificate": {
"fileName": "string",
"fileBody": "string"
},
"proofOfAddress": {
"fileName": "string",
"fileBody": "string"
},
"customDocument1": {
"fileName": "string",
"fileBody": "string"
},
"customDocument2": {
"fileName": "string",
"fileBody": "string"
},
"customDocument3": {
"fileName": "string",
"fileBody": "string"
}
},
"bankingDetails": {
"bankAccount": {
"accountNumber": "string",
"accountType": "None",
"accountHolderName": "string",
"entityType": "Personal",
"routingNumber": "string",
"bankName": "string",
}
"plaidAccessToken": "string"
},
........................
"bankingDetails": {
"bankAccount": {
"accountNumber": "string",
"accountType": "None",
"accountHolderName": "string",
"entityType": "Personal",
"routingNumber": "string",
"bankName": "string",
},
"plaidAccessToken": "string"
},
........................
"bankingDetailsDocuments": {
"voidCheck": {
"fileName": "string",
"fileBody": "string"
},
"customDocument1": {
"fileName": "string",
"fileBody": "string"
},
"customDocument2": {
"fileName": "string",
"fileBody": "string"
},
"customDocument3": {
"fileName": "string",
"fileBody": "string"
}
},
"contactDetails": [
{
"id": "3c35b85f-f372-4835-99d7-e3e0f2e324f1",
"contactType": "Statements",
"firstName": "string",
"lastName": "string",
"legalName": "string",
"email": "string",
"mobilePhone": "string",
"homePhone": "string",
"address": {
"street": "string",
"apartment": "string",
"city": "string",
"country": "string",
"stateCode": "string",
"zip": "string"
},
"customField1": "string",
"customField2": "string",
"customField3": "string"
}
],
"ownerDetails": [
{
"id": "0c35b85f-f372-4835-99d7-e3e0f2e324f1",
"firstName": "string",
"lastName": "string",
"idNumber": "string",
"giin": "string",
"email": "string",
"mobilePhone": "string",
"homePhone": "string",
"address": {
"street": "string",
"apartment": "string",
"city": "string",
"country": "string",
"stateCode": "string",
"zip": "string"
},
"dateOfBirth": "2021-08-12T14:16:54.776Z",
"position": "string",
"citizenship": "string",
"ownershipDate": "2021-08-12T14:16:54.776Z",
"ownershipPercentage": 0,
"driversLicenceNumber": "string",
"customField1": "string",
"customField2": "string",
"customField3": "string",
"ownerDetailsDocuments": {
"proofOfId": {
"fileName": "string",
"fileBody": "string"
},
"proofOfAddress": {
"fileName": "string",
"fileBody": "string"
},
"personalGuarantee": {
"fileName": "string",
"fileBody": "string"
},
"customDocument1": {
"fileName": "string",
"fileBody": "string"
},
"customDocument2": {
"fileName": "string",
"fileBody": "string"
},
"customDocument3": {
"fileName": "string",
"fileBody": "string"
}
}
}
],
"businessProfile": {
"industry": "InformationTechnology",
"category": "Retail",
"privacyPolicyUrl": "string",
"returnsPolicyUrl": "string",
"tcPolicyUrl": "string",
"gstExempt": true,
"gstNumber": "string",
"descriptionOfGoods": "string",
"seasonalBusiness": true,
"saleChannels": [
{
"channelType": "string",
"percentageOfSales": 0
}
],
"shipping": {
"shippingRequired": true,
"inventory": true,
"deliveryTimePercentage": {
"oneToSevenDays": 0,
"eightToFourteenDays": 0,
"fifteenToThirtyDays": 0,
"moreThanThirtyDays": 0
}
},
"pciCompliance": {
"isEnabled": true,
"pciLevel": "DssLevelOne",
"storesSensitiveData": true,
"dataCompromised": true
},
"customField1": "string",
"customField2": "string",
"customField3": "string"
},
"businessProfileDocuments": {
"pciCertificate": {
"fileName": "string",
"fileBody": "string"
},
"customDocument1": {
"fileName": "string",
"fileBody": "string"
},
"customDocument2": {
"fileName": "string",
"fileBody": "string"
},
"customDocument3": {
"fileName": "string",
"fileBody": "string"
}
},
"businessFinancials": {
"volumeProjection": {
"visa": "string",
"mastercard": "string",
"americanExpress": "string",
"localDebitCard": "string",
"discover": "string"
},
"avgTicketPriceProjection": "string",
"previousBankruptcy": true,
"customField1": "string",
"customField2": "string",
"customField3": "string"
},
"businessProcessingHistory": {
"volumeHistory": {
"visa": "string",
"mastercard": "string",
"americanExpress": "string",
"localDebitCard": "string",
"discover": "string"
},
"avgTicketPriceHistory": "string",
"previousBankruptcy": true,
"customField1": "string",
"customField2": "string",
"customField3": "string"
}
}
}
Request/Response Parameters
| № | Name | Type | Description |
| 1 | id | string | application identifier. |
| 2 | name | string | application name. |
| 3 | templateId | string | application template identifier. |
| 4 | status | enum | application status. |
| 5 | contactEmail | string |
approved declined underreview
|
| 6 | businessDetails | object | business details include business general information. |
| 7 | businessDetailsDocuments | object | business details documents include business registration documents. |
| 8 | bankingDetails | object | banking details include business bank and bank account information. |
| 9 | bankingDetailsDocuments | object | banking details documents include business banking documents. |
| 10 | contactDetails | array | contact details include business contact information. |
| 11 | ownerDetails | array | owner details include business owner information. |
| 12 | ownerDetailsDocuments | object | owner details documents include documents provided by the business owner. |
| 13 | businessProfile | object | business profile includes information about the nature of a business |
| 14 | businessProfileDocuments | object | business profile documents include pci compliance certificate. |
| 15 | businessFinancials | object | business financials include business payment cards processing projections. |
| 16 | businessProcessingHistory | object | business processing history includes historical data about payment card processing. |
| № | Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1 | businessDetails | object |
business details include business general information. Avaliable Values:
|
| № | Name | Type | Description | ||||
| 1 | registrationСertificate | object |
copy of the registration certificate.
|
||||
| 2 | proofOfAddress | object |
proof of address documents.
|
||||
| 3 | customDocument1 | object |
applicable in case of get application template
|
||||
| 4 | customDocument1 | object |
applicable in case get/create/update application
|
||||
| 5 | customDocument2 | object |
applicable in case of get application template
|
||||
| 6 | customDocument2 | object |
applicable in case get/create/update application
|
||||
| 7 | customDocument3 | object |
applicable in case of get application template
|
||||
| 8 | customDocument3 | object | applicable in case get/create/update application
|
| № | Name | Type | Description |
| 1 | plaidAccessToken | string, max 17, min 3 | max length is 255 characters |
| 2 | accountNumber | string, max 17, min 3 | bank account number. |
| 3 | accountType | enum |
string with achaccounttype. Avaliable Values:
|
| 4 | accountHolderName | string, max 120 | bank account holder’s full name. |
| 5 | entityType | enum |
string with achentitytype. Avaliable Values:
|
| 6 | routingNumber | string, max 9, min 9 | bank routing number. |
| 7 | bankName | string, max 9, min 9 | bank name. |
| № | Name | Type | Description | ||||
| 1 | voidCheck | object |
copy of a void check.
|
||||
| 2 | customDocument1 | object |
applicable in case get/create/update application
|
||||
| 3 | customDocument1 | object |
applicable in case of get application template
|
||||
| 4 | customDocument2 | object |
applicable in case get/create/update application
|
||||
| 5 | customDocument2 | object |
applicable in case of get application template
|
||||
| 6 | customDocument3 | object |
applicable in case get/create/update application
|
||||
| 7 | customDocument3 | object |
applicable in case of get application template
|
| № | Name | Type | Description | ||||||||||||
| 1 | contactType | enum |
statements – 1
finances – 2
legal- 3
disputes – 4
|
||||||||||||
| 2 | firstName | string, max 255 | contact first name. | ||||||||||||
| 3 | lastName | string, max 255 | contact last name. | ||||||||||||
| 4 | legalName | string, max 255 | contact legal name. | ||||||||||||
| 5 | string, max 100 | contact’s email address. pattern: /^(?=”[a-za-z0-9])[“a-za-z0-9.!#$%&’+/=?^_`{|}~-]a-za-z0-9@[a-za-z0-9-]+(?:.[a-za-z0-9-]{2,})$/ | |||||||||||||
| 6 | mobilePhone | string, max 50 | contact’s mobile phone number. pattern: ^([\+ ]+)?(\d[\d- ]+)?(\([\d- ]+\))?[\d- ]+\d$ | ||||||||||||
| 7 | homePhone | string, max 50 | contact’s home phone number. pattern: ^([\+ ]+)?(\d[\d- ]+)?(\([\d- ]+\))?[\d- ]+\d$ | ||||||||||||
| 8 | address | object |
|
||||||||||||
| 9 | customField1 | object |
applicable in case of get application template
|
||||||||||||
| 10 | customField1 | string | applicable in case get/create/update application | ||||||||||||
| 11 | customField2 | object |
applicable in case of get application template
|
||||||||||||
| 12 | customField2 | string | applicable in case get/create/update application | ||||||||||||
| 13 | customField3 | object |
applicable in case of get application template
|
||||||||||||
| 14 | customField3 | string | applicable in case get/create/update application |
| № | Name | Type | Description | ||||||||||||
| 1 | firstName | string, max 255 | business owner first name. | ||||||||||||
| 2 | lastName | string, max 255 | business owner last name. | ||||||||||||
| 3 | idNumber | string, max 255 | business owner identification document number. | ||||||||||||
| 4 | giin | string | 1st and 2nd part numbers and uppercase letters only 3rd – uppercase letters only 4th – numbers only entered value must not contain spaces length can not be more than 19 characters | ||||||||||||
| 5 | string, max 100 | business owner email address. pattern: /^(?=”[a-za-z0-9])[“a-za-z0-9.!#$%&’+/=?^_`{|}~-]a-za-z0-9@[a-za-z0-9-]+(?:.[a-za-z0-9-]{2,})$/ | |||||||||||||
| 6 | mobilePhone | string, max 50 | business owner mobile phone number. pattern: ^([\+ ]+)?(\d[\d- ]+)?(\([\d- ]+\))?[\d- ]+\d$ | ||||||||||||
| 7 | homePhone | string, max 50 | business owner home phone number. pattern: ^([\+ ]+)?(\d[\d- ]+)?(\([\d- ]+\))?[\d- ]+\d$ | ||||||||||||
| 8 | address | object |
|
||||||||||||
| 9 | dateOfBirth | datetime | business owner date of birth. | ||||||||||||
| 10 | position | string, max 255 | business owner position. | ||||||||||||
| 11 | citizenShip | string, max 255 | business owner citizenship. | ||||||||||||
| 12 | ownerShipDate | datetime | ownership official date. | ||||||||||||
| 13 | ownershipPercentage | double, max 100 | business owner share of ownership in %. pattern: ^\d*(\.\d{0,2})?$ | ||||||||||||
| 14 | driversLicenceNumber | string, max 255 | business owner drivers license number. | ||||||||||||
| 15 | customField1 | object |
applicable in case of get application template
|
||||||||||||
| 16 | customField1 | string | applicable in case get/create/update application | ||||||||||||
| 17 | customField2 | object |
applicable in case of get application template
|
||||||||||||
| 18 | customField2 | string | applicable in case get/create/update application | ||||||||||||
| 19 | customField3 | object |
applicable in case of get application template
|
||||||||||||
| 20 | customField3 | string | applicable in case get/create/update application | ||||||||||||
| 21 | ownerDetailsDocuments | object | Owner details documents include documents provided by the business owner. |
| № | Name | Type | Description | ||||
| 1 | proofOfId | object |
copy of an identification document of the business owner.
|
||||
| 2 | proofOfAddress | object |
copy of a document that can prove the business owner residence address.
|
||||
| 3 | personalGuarantee | object |
copy of a document that can serve as the business owner personal guarantee.
|
||||
| 4 | customDocument1 | object |
applicable in case of get application template
|
||||
| 5 | customDocument1 | object |
applicable in case get/create/update application
|
||||
| 6 | customDocument2 | object |
applicable in case of get application template
|
||||
| 7 | customDocument2 | object |
applicable in case get/create/update application
|
||||
| 8 | customDocument3 | object |
applicable in case of get application template
|
||||
| 9 | customDocument3 | object |
applicable in case get/create/update application
|
| № | Name | Type | Description | ||||||||
| 1 | industry | enum |
Avaliable Values:
|
||||||||
| 2 | category | enum |
Avaliable Values:
|
||||||||
| 3 | privacyPolicyURL | string, max 255 | business privacy policy url. pattern: ^(https?:[\/]{2})(www.)?[a-za-z0-9@:%._\+~#=\-]{2,256}\.[a-z]{2,6}\b([a-za-z0-9@:%_\+.~#?&/=\-]*)$ | ||||||||
| 4 | returnPolicyURL | string, max 255 | business return policy url. pattern: ^(https?:[\/]{2})(www.)?[a-za-z0-9@:%._\+~#=\-]{2,256}\.[a-z]{2,6}\b([a-za-z0-9@:%_\+.~#?&/=\-]*)$ | ||||||||
| 5 | tcPolicyURL | string, max 255 | business terms and conditions policy url. pattern: ^(https?:[\/]{2})(www.)?[a-za-z0-9@:%._\+~#=\-]{2,256}\.[a-z]{2,6}\b([a-za-z0-9@:%_\+.~#?&/=\-]*)$ | ||||||||
| 6 | gstExempt | boolean | business goods and services tax exempt. | ||||||||
| 7 | gstNumber | string, max 255 | business goods and services tax exempt number. in case gstexempt = ‘true’ gstnumber is required in case gstexempt = ‘false’ gstnumber should be null | ||||||||
| 8 | descriptionOfGoods | string, max 4000 | description of goods and services. | ||||||||
| 9 | seasonalBusiness | boolean | business seasonal nature. | ||||||||
| 10 | saleChannels | array |
business sales channels details.
|
||||||||
| 11 | shippingRequired | boolean | business shipping requirements. | ||||||||
| 12 | inventory | boolean | business inventory requirements. in case shippingrequired is ‘true’ parameter is required in case shippingrequired is ‘false’ parameter should be null | ||||||||
| 13 | deliveryTimePercentage | object | business sales channels details. in case shippingrequired is ‘true’ parameter is required
in case shippingrequired is ‘false’ parameter should be null
|
||||||||
| 14 | pciCompliance | object |
business sales channels details.
|
||||||||
| 15 | customField1 | object |
applicable in case of get application template
|
||||||||
| 16 | customField1 | string | applicable in case get/create/update application | ||||||||
| 17 | customField2 | object |
applicable in case of get application template
|
||||||||
| 18 | customField2 | string | applicable in case get/create/update application | ||||||||
| 19 | customField3 | object |
applicable in case of get application template
|
||||||||
| 20 | customField3 | string | applicable in case get/create/update application |
| № | Name | Type | Description | ||||
| 1 | pciCertificate | object |
copy of the pci certificate.
|
||||
| 2 | customDocument1 | object |
applicable in case of get application template
|
||||
| 3 | customDocument1 | object |
applicable in case get/create/update application
|
||||
| 4 | customDocument2 | object |
applicable in case of get application template
|
||||
| 5 | customDocument2 | object |
applicable in case get/create/update application
|
||||
| 6 | customDocument3 | object |
applicable in case of get application template
|
||||
| 7 | customDocument3 | object |
applicable in case get/create/update application
|
| № | Name | Type | Description | |||
| 1 | volumeProjectionVisa | string, max 255 | projections on transactions volume via visa. | |||
| 2 | volumeProjectionMasterCard | string, max 255 | projections on transactions volume via mastercard. | |||
| 3 | volumeProjectionAmericanExpress | string, max 255 | projections on transactions volume via americanexpress. | |||
| 4 | volumeProjectionLocalDebitCard | string, max 255 | projections on transactions volume via local debit cards. | |||
| 5 | volumeProjectionDiscover | string, max 255 | projections on transactions volume via discover. | |||
| 6 | avgTicketPriceProjection | string, max 255 | projections on an average ticket price. | |||
| 7 | customField1 | object |
applicable in case of get application template
|
|||
| 8 | customField1 | string | applicable in case get/create/update application | |||
| 9 | customField2 | object |
applicable in case of get application template
|
|||
| 10 | customField2 | string | applicable in case get/create/update application | |||
| 11 | customField3 | object |
applicable in case of get application template
|
|||
| 12 | customField3 | string | applicable in case get/create/update application |
| № | Name | Type | Description | |||
| 1 | volumeHistoryVisa | string, max 255 | history of transactions volume via visa. | |||
| 2 | volumeHistoryMasterCard | string, max 255 | history of transactions volume via mastercard. | |||
| 3 | volumeHistoryAmericanExpress | string, max 255 | history of transactions volume via americanexpress. | |||
| 4 | volumeHistoryLocalDebitCard | string, max 255 | history of transactions volume via local debit cards. | |||
| 5 | volumeHistoryDiscover | string, max 255 | history of transactions volume via discover. | |||
| 6 | avgTicketPriceHistory | string, max 255 | history of an average ticket price. | |||
| 7 | previousBankruptcy | boolean | business bankruptcy. | |||
| 8 | customField1 | object |
applicable in case of get application template
|
|||
| 9 | customField1 | string | applicable in case get/create/update application | |||
| 10 | customField2 | object |
applicable in case of get application template
|
|||
| 11 | customField2 | string | applicable in case get/create/update application | |||
| 12 | customField3 | object |
applicable in case of get application template
|
|||
| 13 | customField3 | string | applicable in case get/create/update application |
| Response Code | Description |
|---|---|
| 400 | Bad Request — Your request is invalid. |
| 401 | Unauthorized — Authorization failed. |
| 403 | Forbidden — Access denied. |
| 404 | Not Found — Wrong URL. |
| 415 | Unsupported Media Type — Wrong request format. |
| 500 | Internal Server Error — We had a problem with our server. Try again later. |
| 503 | Service Unavailable — We’re temporarily offline for maintenance. Please try again later. |
Endpoints:
Sandbox URL: https://sandbox.4levers.com/TxWs/ATPayTxWS.svc/json/Transaction
Production URL: https://transactions.4levers.com/ATPayTxWS.svc/json/Transaction
Phase 1 → provide to the client ACSUrl and PaReq for performing request to Issuer Bank page
Phase 2 → provide to the client threeDSToken, eci, xid, cavv
Phase 3 → Process transaction with threeDSToken or eci, xid, cavv
“check3DSEnrollment” Endpoint:
Sandbox URL: TxWs/ATPayTxWS.svc/json/сheck3DSEnrollment
Production URL: TxWs/ATPayTxWS.svc/json/сheck3DSEnrollment
{
"subAccountId": "Sub-Account Id",
"accountId": "Platform Account Id",
"amount": 13,
"currency": "USD",
"creditCard": {
"number": "4111111111111",
"expirationDate": "1220",
"nameOnCard": "Eleanor Johansson",
"type": "Visa",
"cvv": "123",
"tokenization": {
"type": "Internal",
"token": "1232535645746"
}
}
}| № | Name | Type | Optionality | Description |
| 1 | subAccountId | integer | required | sub-account identifier. must be greater than 0. |
| 2 | accountId | integer | required | platform account identifier. must be greater than 0. |
| 3 | amount | decimal | required | transaction amount. value ≥ 0 (2 decimal places) |
| 4 | currency | enum | required | currencytypeid. Avaliable Values:
|
| 5 | creditCard | object | required | credit card data object. |
{
"orderId":"1234560000789",
"responseCode": 0,
"responseDescription":"Operation successful",
"paymentToken": "...",
"redirectURL": "https://example.aspx?ReqType=0",
"paReq": "eNpVUsFu2zAMvesrchjQ"
}| № | Name | Type | Optionality | Description |
| 1 | orderId | string | required | transaction identifier. |
| 2 | responseCode | integer | required | system response code. |
| 3 | responseDescription | string | required | system response code description. |
| 4 | paymentToken | string | required | system response code description. |
| 5 | redirectURL | string | required | url to the issuer bank page. |
| 6 | paReq | string | required |
Sandbox URL: TxWs/ATPayTxWS.svc/json/
Production URL: TxWs/ATPayTxWS.svc/json/
{
"subAccountId": "Sub-Account Id"
"accountId": "Account Id",
"orderId": "1618001128118361545",
"paResp":"eJzNWVmvm9iy/it"
}
| № | Name | Type | Optionality | Description |
| 1 | subAccountId | integer | required | sub-account identifier. must be greater than 0. |
| 2 | accountId | integer | required | platform account identifier. must be greater than 0. |
| 3 | orderId | string | required | id to match the transaction |
| 4 | paResp | string | required | request value from issuer bank |
{
"responseCode":"0",
"responseDescription":"Operation successful",
"token": "8e86aef68037e8849980"
"eci": "3",
"xid": "857e2347c329eec31c75",
"cavv":"645sd54ad5a5sd65"
}| № | Name | Type | Optionality | Description |
| 1 | responseCode | integer | required | system response code. |
| 2 | responseDescription | string | required | system response code description. |
| 3 | token | string | required | 3D – Secure token. this parameter is used to indicate if a transaction has been authenticated |
| 4 | eci | string | required | ECI indicates the result of 3D-secfure authentication process (verification successful/verification attempted/unable to verify) |
| 5 | xid | string | required | XID is the id (or code) of the particular authentication |
| 6 | cavv | string | required | CAVV is the authentication verification value |
Authorization transaction confirms that the Buyer has provided valid payment information and reserves sufficient funding to perform the transaction.
Following a successful Authorization transaction, you will receive a confirmation with the transaction identifier numberTransactionID":"1010000000139894". Use this identifier as a parent transaction identifier (OriginalTransactionId) for all subsequent transactions that derive from the current transaction.
Authorizations may also serve to reserve an amount of money on a credit card balance for security and verification purposes until the actual Deposit transaction is executed.
Authorization transaction may be followed by:
Void (Cancel Authorization) transaction. In this type of transaction, the amount reserved by the Authorization transaction is being released back to the credit card balance.
Released funds are previously reserved funds that now have become available.
Partial Void (Partial Cancel Authorization) transaction. This transaction involves the partial release of the amount reserved by the parent Authorization transaction.
Capture transaction. Capture transaction transfers the previously reserved amount from the buyer’s bank account to the acquirer bank account.
{
"accountId": "Platform Account Id",
"amount": 13,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"creditCard": {
"bin": "411111",
"expirationDate": "1220",
"last4": "1111",
"nameOnCard": "Eleanor Johansson",
"type": "Visa"
},
"currency": "USD",
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"entryMode": "2",
"paymentMethod": "CreditCard",
"processorData": {
"authorizationNumber": "01919Z",
"errorCode": "",
"errorCodeDescription": "",
"transactionId": "1234567891"
},
"status": "Processed",
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Authorization"
}
"threeDSecure": {
"eci": "7",
"xid": "857e2347c329eec31c75",
"cavv": "645sd54ad5a5sd65",
"token": "8e86aef68037e8849980"
}
| № | Name | Type | Optionality | Description |
| 1 | accountId | integer | required | platform account identifier. must be greater than 0. |
| 2 | amount | decimal | required | transaction amount. value ≥ 0 (2 decimal places) |
| 3 | billingAddress | object | optional | user billing address data object. |
| 4 | billingOverride | object | optional | data object that contains an array of billingfee objects. |
| 5 | creditCard | object | conditional | credit card data object. required if payment method = creditcard; |
| 6 | ach | object | conditional | ach data object. required if payment method = ach. |
| 7 | currency | enum | required | currencyTypeId. Avaliable Values:
|
| 8 | merchantData | object | optional | merchant data data object. |
| 9 | entryMode | integer | optional | nullable transaction entry mode numerical value. |
| 10 | paymentMethod | enum | required | Avaliable Values:paymentMethodTypeId. creditcard – 0 credit card payments ach – 1 ach payments |
| 11 | processorData | object | optional | processor data data object. |
| 12 | subAccountId | integer | required | sub-account identifier.value ≥ 0 |
| 13 | terminalId | string | optional | terminal identifier. maxlength(20) |
| 14 | transactionMethod | enum | optional | transactionmethodid. Avaliable Values:
|
| 15 | type | enum | required | transactiontypeid.authorization |
| 15 | threeDSecure | object | optional | 3D-Secure data object..authorization |
In this type of transaction, the amount reserved by the Authorization transaction is released back to the credit card balance.
{
"accountId": "Platform Account Id",
"amount": 13,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"originalTransaction": {
"transactionId": "732000000002107745",
"transactionType": "merchant"
},
"creditCard": {
"bin": "411111",
"expirationDate": "1220",
"last4": "1111",
"nameOnCard": "Eleanor Johansson",
"type": "Visa"
},
"currency": "USD",
"entryMode": "2",
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"paymentMethod": "CreditCard",
"processorData": {
"authorizationNumber": "01919Z",
"errorCode": "",
"errorCodeDescription": "",
"transactionId": "1234567891"
},
"status": "Processed",
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Void"
}
| № | Name | Type | Optionality | Description |
| 1 | accountId | integer | required | platform account identifier. must be greater than 0. |
| 2 | amount | decimal | required | transaction amount. value ≥ 0 (2 decimal places) amount=0 can be passed with partial void transaction type. |
| 3 | billingAddress | object | optional | user billing address data object. |
| 4 | billingOverride | object | optional | data object that contains an array of billingfee objects. |
| 5 | creditCard | object | conditional | credit card data object. required in case payment method is credit card. |
| 6 | ach | object | conditional | ach data object. required if payment method = ach. |
| 7 | currency | enum | required | currencytypeid. Avaliable Values:
|
| 8 | merchantData | object | optional | merchant data data object. |
| 9 | entryMode | integer | optional | nullable transaction entry mode numerical value. |
| 10 | paymentMethod | enum | required | Avaliable Values:paymentmethodtypeid. creditcard – 0 credit card payments ach – 1 ach payments |
| 11 | processorData | object | optional | processor data data object. |
| 12 | subAccountId | integer | required | sub-account identifier. |
| 13 | terminalId | string | optional | terminal identifier. |
| 14 | transactionMethod | enum | optional | transactionmethodid. Avaliable Values:
|
| 15 | type | enum | required | transactiontypeid. Avaliable Values:
|
| 16 | originalTransaction | object | required | original transaction data object. required for capture and refund and update and void. |
Capture derives from the parent (original) Authorization transaction – – pass parent transaction identifier (originalTransaction object) with the request.
Deposit Transaction Types
Capture is initiated by the Merchant and is based on a successful Authorization transaction. Pass authorization identifier with the request.
Charge is a direct funds transfer without a prior Authorization transaction. The Authorization and the actual funds transfer are performed in a single transaction.
In a Deposit transaction, funds are transferred from the buyer’s bank account to the seller’s bank account after the order/service is completely fulfilled.
A Partial Deposit occurs when only part of the amount is transferred.
A Partial Deposit is always followed by a Partial Void Cancel Authorization, because the funds that have not been deposited are to be released back to the buyer.
A Partial Deposit takes place when the order/service has not been completely fulfilled, and some of the transaction amount must be released back to the buyer.
{
"accountId": "Platform Account Id",
"amount": 13,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"originalTransaction": {
"transactionId": "732000000002107745",
"transactionType": "merchant"
},
"creditCard": {
"bin": "411111",
"expirationDate": "1220",
"last4": "1111",
"nameOnCard": "Eleanor Johnson",
"type": "Visa"
},
"currency": "USD",
"entryMode": "2",
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"paymentMethod": "CreditCard",
"processorData": {
"authorizationNumber": "01919Z",
"errorCode": "",
"errorCodeDescription": "",
"transactionId": "1234567891"
},
"status": "Processed",
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Capture"
}
| № | Name | Type | Optionality | Description |
| 1 | accountId | integer | required | platform account identifier. must be greater than 0. |
| 2 | amount | decimal | required | transaction amount. value ≥ 0 (2 decimal places) Amount=0 can be passed with Partial Capture transaction Type. |
| 3 | billingAddress | object | optional | user billing address data object. |
| 4 | billingOverride | object | optional | data object that contains an array of billingfee objects. |
| 5 | creditCard | object | conditional | credit card data object. required in case payment method is credit card. |
| 6 | ach | object | conditional | ach data object. required if payment method = ach. |
| 7 | currency | enum | required | currencytypeid. Avaliable Values:
|
| 8 | merchantData | object | optional | merchant data data object. |
| 9 | entryMode | integer | optional | nullable transaction entry mode numerical value. |
| 10 | paymentMethod | enum | required | Avaliable Values:creditcard – 0 credit card payments ach – 1 ach payments |
| 11 | processorData | object | optional | processor data data object. |
| 12 | subAccountId | integer | required | sub-account identifier. value ≥ 0 |
| 13 | terminalId | string | optional | terminal identifier. maxlength(20) |
| 14 | transactionMethod | enum | optional | transactionmethodid. Avaliable Values:
|
| 15 | type | enum | required | transactiontypeid. Avaliable Values:
|
| 16 | originalTransaction | object | required | original transaction data object. required for capture and refund and update and void. |
Deposit Transaction Types
Capture is initiated by the Merchant and is based on a successful Authorization transaction – pass authorization id with the request.
Charge is a direct funds transfer without a prior Authorization transaction. The Authorization and the actual funds transfer are performed in a single transaction.
In a Deposit transaction, funds are transferred from the buyer’s bank account to the seller’s bank account after the order/service is completely fulfilled. A Partial Deposit occurs when only part of the amount is transferred. A Partial Deposit is always followed by a Partial Void Cancel Authorization, because the funds that have not been deposited are to be released back to the buyer. A Partial Deposit takes place when the order/service has not been completely fulfilled, and some of the transaction amount must be released back to the buyer.
{
"accountId": "Platform Account Id",
"amount": 13,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"creditCard": {
"bin": "411111",
"expirationDate": "1220",
"last4": "1111",
"nameOnCard": "Eleanor Johnson",
"type": "Visa"
},
"currency": "USD",
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"entryMode": "2",
"paymentMethod": "CreditCard",
"processorData": {
"authorizationNumber": "01919Z",
"errorCode": "",
"errorCodeDescription": "",
"transactionId": "1234567891"
},
"status": "Processed",
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Charge"
}
| № | Name | Type | Optionality | Description |
| 1 | accountId | integer | required | platform account identifier. must be greater than 0. |
| 2 | amount | decimal | required | transaction amount. value ≥ 0 (2 decimal places) amount=0 can be passed with charge void transaction type. |
| 3 | billingAddress | object | optional | user billing address data object. |
| 4 | billingOverride | object | optional | data object that contains an array of billingfee objects. |
| 5 | creditCard | object | conditional | credit card data object. required in case payment method is credit card. |
| 6 | ach | object | conditional | ach data object. required if payment method = ach. |
| 7 | currency | enum | required | currencytypeid. Avaliable Values:
|
| 8 | merchantData | object | optional | merchant data data object. |
| 9 | entryMode | integer | optional | nullable transaction entry mode numerical value. |
| 10 | paymentMethod | enum | required | paymentmethodtypeid. Avaliable Values:
|
| 11 | processorData | object | optional | processor data data object. |
| 12 | subAccountId | integer | required | sub-account identifier. value ≥ 0 |
| 13 | terminalId | string | optional | terminal identifier. maxlength(20) |
| 14 | transactionMethod | enum | optional | transactionmethodid. Avaliable Values:
|
| 15 | type | enum | required | transactiontypeid. charge |
| 16 | subscription | object | conditional | subscription data object. use for recurring transactions. |
| 17 | threeDSecure | object | optional | 3D-Secure data object. |
Refund derives from the parent (original) Capture or Charge transactions – pass parent transaction identifier (originalTransaction object) with the request. Refund transaction returns funds from the Merchant to the Buyer upon the Buyer’s request.
{
"accountId": "Platform Account Id",
"amount": 13,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"originalTransaction": {
"transactionId": "732000000002107745",
"transactionType": "merchant"
},
"creditCard": {
"bin": "411111",
"expirationDate": "1220",
"last4": "1111",
"nameOnCard": "Eleanor Johansson",
"type": "Visa"
},
"currency": "USD",
"entryMode": "2",
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"paymentMethod": "CreditCard",
"processorData": {
"authorizationNumber": "01919Z",
"errorCode": "",
"errorCodeDescription": "",
"transactionId": "1234567891"
},
"status": "Processed",
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Refund"
}
"originalTransaction": {
"transactionId": "TransactionID",
"transactionType": "System"
}
| № | Name | Type | Optionality | Description |
| 1 | accountId | integer | required | platform account identifier. must be greater than 0. |
| 2 | amount | decimal | required | transaction amount. value ≥ 0 (2 decimal places) amount=0 can be passed with refund transaction type. |
| 3 | billingAddress | object | optional | user billing address data object. |
| 4 | billingOverride | object | optional | data object that contains an array of billingfee objects. |
| 5 | creditCard | object | conditional | credit card data object. required in case payment method is credit card. |
| 6 | ach | object | conditional | ach data object. required if payment method = ach. |
| 7 | currency | enum | required | currencytypeid. Avaliable Values:
|
| 8 | merchantData | object | optional | merchant data data object. |
| 9 | entryMode | integer | optional | nullable transaction entry mode numerical value. |
| 10 | paymentMethod | enum | required | paymentmethodtypeid. creditcard – 0 credit card payments ach – 1 ach payments |
| 11 | processorData | object | optional | processor data data object. |
| 12 | subAccountId | integer | required | sub-account identifier. value ≥ 0 |
| 13 | terminalId | string | optional | terminal identifier. maxlength(20) |
| 14 | transactionMethod | enum | optional | transactionmethodid. Avaliable Values:
|
| 15 | type | enum | required | transactiontypeid. refund |
| 16 | originalTransaction | object | required | original transaction data object. required for capture and refund and update and void. |
Credit transaction in use:
The difference between Refund and Credit transaction types, is that Refund is based on a previous (parent) transaction (e.g. Charge).
{
"accountId": "Platform Account Id",
"amount": 13,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"creditCard": {
"bin": "411111",
"expirationDate": "1220",
"last4": "1111",
"nameOnCard": "Eleanor Johnson",
"type": "Visa"
},
"currency": "USD",
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"entryMode": "2",
"paymentMethod": "CreditCard",
"processorData": {
"authorizationNumber": "01919Z",
"errorCode": "",
"errorCodeDescription": "",
"transactionId": "1234567891"
},
"status": "Processed",
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Credit"
}| № | Name | Type | Optionality | Description |
| 1 | accountId | integer | required | platform account identifier. must be greater than 0. |
| 2 | amount | decimal | required | transaction amount. value ≥ 0 (2 decimal places) |
| 3 | billingAddress | object | optional | user billing address data object. |
| 4 | billingOverride | object | optional | data object that contains an array of billingfee objects. |
| 5 | creditCard | object | conditional | credit card data object. required if payment method = creditcard; |
| 6 | ach | object | conditional | ach data object. required if payment method = ach. |
| 7 | currency | enum | required | currencytypeid. Avaliable Values:
|
| 8 | merchantData | object | optional | merchant data data object. |
| 9 | entryMode | integer | optional | nullable transaction entry mode numerical value. |
| 10 | paymentMethod | enum | required | paymentmethodtypeid. Avaliable Values:
|
| 11 | processorData | object | optional | processor data data object. |
| 12 | subAccountId | integer | required | sub-account identifier. value ≥ 0 |
| 13 | terminalId | string | optional | terminal identifier. maxlength(20) |
| 14 | transactionMethod | enum | optional | transactionmethodid. Avaliable Values:
|
| 15 | type | enum | required | transactiontypeid. credit |
Verify (Check Payment Method) transaction can have two purposes:
Verify transaction request parameters must include:
In case the transaction request Tokenization values are either Internal or External, the gateway will return a response including a new "PaymentMethodToken": "Token". Save the token and use it with all subsequent transactions instead of credit card information.
Go to Tokenization chapter for more information on Tokenization.
{
"accountId": "Platform Account Id",
"amount": 13,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"creditCard": {
"number": "4111111111111111",
"expirationDate": "1225",
"nameOnCard": "Eleanor Johansson",
"type": "Visa",
"cvv": "123"
},
"currency": "USD",
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"entryMode": "2",
"paymentMethod": "CreditCard",
"processorData": {
"dynamicDescriptor": "01919Z"
},
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Verify"
}| № | Name | Type | Optionality | Description |
| 1 | accountId | integer | required | platform account identifier. must be greater than 0. |
| 2 | amount | decimal | required | transaction amount. value ≥ 0 (2 decimal places) |
| 3 | billingAddress | object | optional | user billing address data object. |
| 4 | billingOverride | object | optional | data object that contains an array of billingfee objects. |
| 5 | creditCard | object | conditional | credit card data object. required if payment method = creditcard; |
| 6 | ach | object | conditional | ach data object. required if payment method = ach. |
| 7 | currency | enum | required | currencytypeid. Avaliable Values:
|
| 8 | merchantData | object | optional | merchant data data object. |
| 9 | entryMode | integer | optional | nullable transaction entry mode numerical value. |
| 10 | paymentMethod | enum | required | paymentmethodtypeid. Avaliable Values:
|
| 11 | processorData | object | optional | processor data data object. |
| 12 | subAccountId | integer | required | sub-account identifier. value ≥ 0 |
| 13 | terminalId | string | optional | terminal identifier. maxlength(20) |
| 14 | transactionMethod | enum | optional | transactionmethodid. Avaliable Values:
|
| 15 | type | enum | required | transactiontypeid. verify |
{
"accountId": "Platform Account Id",
"amount": 13,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"creditCard": {
"number": "4111111111111111",
"expirationDate": "1225",
"nameOnCard": "Eleanor Johansson",
"type": "Visa",
"cvv": "123"
},
"currency": "USD",
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"entryMode": "2",
"paymentMethod": "CreditCard",
"processorData": {
"dynamicDescriptor": "01919Z"
},
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Chargeback",
"chargeback": {
"disputeDate": "string",
"reasonCode": "string"
}
}| № | Name | Type | Optionality | Description |
| 1 | accountId | integer | required | platform account identifier. must be greater than 0. |
| 2 | amount | decimal | required | transaction amount. value ≥ 0 (2 decimal places) |
| 3 | billingAddress | object | optional | user billing address data object. |
| 4 | billingOverride | object | optional | data object that contains an array of billingfee objects. |
| 5 | creditCard | object | conditional | credit card data object. required if payment method = creditcard; |
| 6 | ach | object | conditional | ach data object. required if payment method = ach. |
| 7 | currency | enum | required | currencytypeid. Avaliable Values:
|
| 8 | merchantData | object | optional | merchant data data object. |
| 9 | entryMode | integer | optional | nullable transaction entry mode numerical value. |
| 10 | paymentMethod | enum | required | paymentmethodtypeid. Avaliable Values:
|
| 11 | processorData | object | optional | processor data data object. |
| 12 | subAccountId | integer | required | sub-account identifier. value ≥ 0 |
| 13 | terminalId | string | optional | terminal identifier. maxlength(20) |
| 14 | transactionMethod | enum | optional | transactionmethodid. Avaliable Values:
|
| 15 | type | enum | required | transactiontypeid. Avaliable Values:
|
| 16 | chargeBack | object | conditional | additional chargeback parameters. null if transaction “type“ ≠ “chargeback” and “update“ conditional if transaction “type“ = “chargeback” or “update“ |
{
"accountId": "Platform Account Id",
"amount": 13,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"creditCard": {
"number": "4111111111111111",
"expirationDate": "1225",
"nameOnCard": "Eleanor Johansson",
"type": "Visa",
"cvv": "123"
},
"currency": "USD",
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"entryMode": "2",
"paymentMethod": "CreditCard",
"processorData": {
"dynamicDescriptor": "01919Z"
},
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Cancel",
"originalTransaction": {
"transactionId": "TransactionID",
"transactionType": "System"
}
}| № | Name | Type | Optionality | Description |
| 1 | accountId | integer | required |
platform account identifier. must be greater than 0. |
| 2 | amount | decimal | required |
transaction amount. value ≥ 0 (2 decimal places) |
| 3 | billingAddress | object | optional | user billing address data object. |
| 4 | billingOverride | object | optional | data object that contains an array of billingfee objects. |
| 5 | creditCard | object | conditional |
credit card data object. required if payment method = creditcard;
|
| 6 | ach | object | conditional |
ach data object. required if payment method = ach. |
| 7 | currency | enum | required |
currencytypeid. Avaliable Values:
|
| 8 | merchantData | object | optional | merchant data data object. |
| 9 | entryMode | integer | optional |
nullable transaction entry mode numerical value. |
| 10 | paymentMethod | enum | required |
Avaliable Values:paymentmethodtypeid.creditcard – 0 credit card payments ach – 1 ach payments |
| 11 | processorData | object | optional | processor data data object. |
| 12 | subAccountId | integer | required |
sub-account identifier. value ≥ 0 |
| 13 | terminalId | string | optional |
terminal identifier. maxlength(20) |
| 14 | transactionMethod | enum | optional |
transactionmethodid. Avaliable Values:
|
| 15 | type | enum | required |
transactiontypeid. Avaliable Values:
|
| 16 | originalTransaction | object | required |
original transaction data object.
required for capture and refund and update and void.
|
transactionId, subAccountId, accountId.
{
"accountId": "Platform Account Id",
"subAccountId": "Sub-Account Id",
"amount": 10,
"currency": "USD",
"type": "Update",
"originalTransaction": {
"transactionId": "Transaction Id",
"transactionType": "System"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
}
}| № | Name | Type | Optionality | Description |
| 1 | accountId | integer | required |
platform account identifier. muset be greater than 0. disabled for updating by the update transaction.
|
| 2 | amount | decimal | required |
transaction amount. value ≥ 0 (2 decimal places) amount=0 can be passed with update transaction type.
|
| 3 | billingAddress | object | optional | user billing address data object. |
| 4 | billingOverride | object | optional | data object that contains an array of billingfee objects. |
| 5 | currency | enum | required |
currencytypeid. disabled for updating by the update transaction. Avaliable Values:
|
| 6 | merchantData | object | optional | merchant data data object. |
| 7 | subAccountId | integer | required |
sub-account identifier. value ≥ 0 disabled for updating by the update transaction.
|
| 8 | terminalId | string | optional |
terminal identifier. maxlength(20) |
| 9 | transactionMethod | enum | optional |
transactionmethodid. Avaliable Values:
|
| 10 | type | enum | required |
transactiontypeid. Avaliable Values:
|
| 11 | chargeback | object | conditional |
additional chargeback parameters. null if transaction “type“ ≠ “chargeback” and “update“ conditional if transaction “type“ = “chargeback” or “update“
|
| 12 | originalTransaction | object | required |
original transaction data object. disabled for updating by the update transaction. |
billingOverride with fees values you wish to override (change) without relation to any particular transaction type. In such cases, a fee execution is triggered by the Adjustment transaction.
Example
Service Provider charges merchants 10 $ fee for each Technical Support request. To apply such fees, Service Provider may send an Adjustment transaction for each Support request with the transaction amount = 0 and fee amount = 10 $. {
"accountId": "Platform Account Id",
"subAccountId": "Sub-Account Id",
"amount": 10,
"currency": "USD",
"type": "Adjustment",
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"entryMode": "2",
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"processorData": {
"dynamicDescriptor": "01919Z2"
}
}| № | Name | Type | Optionality | Description |
| 1 | accountId | integer | required |
platform account identifier.muset be greater than 0. |
| 2 | amount | decimal | required |
transaction amount. amount >=0 is acceptable for adjustment transaction type |
| 3 | billingAddress | object | optional | user billing address data object. |
| 4 | billingOverride | object | required | data object that contains an array of billingfee objects. |
| 5 | currency | enum | required |
currencytypeid. Avaliable Values:
|
| 6 | merchantData | object | optional | merchant data data object. |
| 7 | entryMode | integer | optional |
nullable transaction entry mode numerical value. |
| 8 | processorData | object | optional | processor data data object. |
| 9 | subAccountId | integer | required |
sub-account identifier. value ≥ 0 |
| 10 | terminalId | string | optional |
terminal identifier. maxlength(20) |
| 11 | transactionMethod | enum | optional |
transactionmethodid. Avaliable Values:
|
| 12 | type | enum | required |
transactiontypeid. Avaliable Values:
|
{
"accountId": "Platform Account Id",
"subAccountId": "Sub-Account Id",
"amount": 10,
"currency": "USD",
"type": "Authorization",
"paymentMethod": "CreditCard",
"creditCard": {
"number": "4111111111111111",
"expirationDate": "1225",
"nameOnCard": "Eleanor Johansson",
"type": "Visa",
"cvv": "123"
},
"subscription": {
"schedule": {
"interval": "interval type",
"intervalCount": "intervalCount for Daily, Weekly, Monthly interval",
"dayNumber": "dayNumber for Weekly, Monthly, Yearly interval",
"monthNumber": "monthNumber for Yearly interval"
},
"expiration": {
"type": "expiration type",
"numberOfOccurrences": "numberOfOccurrences for EndAfterNumberOfOccurrences expiration",
"date": "dateTime for EndByDate expiration",
"numberOfDays": "numberOfDays for EndAfterNumberOfDays expiration"
},
"recurringAmount": 2,
"initialPreAuthAmount": 0
}
}{
"accountId": "Platform Account Id",
"amount": 13,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"ach": {
"accountNumber": "1099999903",
"accountType": "Savings",
"entityType": "Personal",
"nameOnAccount": "Eleanor Johnson",
"routingNumber": "114567895"
},
"currency": "USD",
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"entryMode": "2",
"paymentMethod": "ACH",
"processorData": {
"dynamicDescriptor": "01919Z"
},
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Charge"
}| № | Name | Type | Optionality | Description |
| 1 | accountId | integer | required |
platform account identifier. muset be greater than 0. |
| 2 | amount | decimal | required |
transaction amount. value ≥ 0 (2 decimal places) |
| 3 | billingAddress | object | optional | user billing address data object. |
| 4 | billingOverride | object | optional | data object that contains an array of billingfee objects. |
| 5 | ach | object | conditional |
ach data object. required if payment method = ach. |
| 6 | currency | enum | required |
currencytypeid. Avaliable Values:
|
| 7 | merchantData | object | optional | merchant data data object. |
| 8 | entryMode | integer | optional |
nullable transaction entry mode numerical value. |
| 9 | paymentMethod | enum | required |
paymentmethodtypeid. Avaliable Values:
|
| 10 | processorData | object | optional | processor data data object. |
| 11 | subAccountId | integer | required |
sub-account identifier. value ≥ 0 |
| 12 | terminalId | string | optional |
terminal identifier. maxlength(20) |
| 13 | transactionMethod | enum | optional |
transactionmethodid. Avaliable Values:
|
| 14 | type | enum | required |
transactiontypeid.authorization |
| 15 | chargeback | object | conditional |
additional chargeback parameters. null if transaction “type“ ≠ “chargeback” and “update“ conditional if transaction “type“ = “chargeback” or “update“
|
| 16 | originalTransaction | object | conditional |
original transaction data object. required for capture and refund and update. |
| 17 | subscription | object | conditional |
subscription data object. use for recurring transactions. |
{
"transactionId":"1234560000789",
"merchantTransactionId": "2135345654786567",
"responseCode": 0,
"responseDescription":"OK",
"paymentToken": "",
"processorResult": {
"transactionId": "",
"authNumber": "",
"responseCode": "",
"responseDescription":"OK",
"cvvResult": "",
"avsResult": ""
}
}| № | Name | Description |
| 1 | transactionId | system transaction identifier. |
| 2 | merchantTransactionId | merchant transaction identifier. |
| 3 | responseCode | system response code. view all response codes |
| 4 | responseDescription | system response code description. |
| 5 | paymentToken | credit card payment token |
| 6 | processorResult object | processor response parameters |
| № | Name | Type | Description |
| 1 | transactionId | transaction identifier by processor. | |
| 2 | authNumber | string | authentication number |
| 3 | responseCode | string | response code by processor. |
| 4 | responseDescription | string | response code description by processor. |
| 5 | cvvResult | string | clearing cvv result code |
| 6 | avsResult | string | clearing avs result code |
| № | Name | Type | Optionality | Description |
| 1 | accountNumber | string | required |
ach account number. maxlength(17) |
| 2 | accountType | enum | required |
achaccounttypeid savings – 1 savings accounts are intended for putting money aside for long periods of time. checking – 2 checking accounts are intended for depositing checks, making withdrawals and managing bill payments.
|
| 3 | entityType | enum | required |
achentitytypeid personal – 0 personal accountbusiness – 1 business account
|
| 4 | nameOnAccount | string | required |
name of the account owner. max (120) |
| 5 | routingNumber | string | required |
the ach routing number is a 9–digit number assigned to financial institutions by the american bankers association (aba) to identify the financial institution upon which a payment was drawn.max (9)
|
| № | Name | Type | Optionality | Description |
| 1 | addressline | string | optional |
billing address.maxlength(50) |
| 2 | city | string | optional |
city name. maxlength(50) |
| 3 | country | string | optional |
country name. enter two or three-letter country code. maxlength(3)
|
| 4 | string | optional |
contact email. maxlength(50) |
|
| 5 | phoneNumber | string | optional |
contact phone number.maxlength(20) |
| 6 | state | string | optional |
sate name. enter two or three-letter state code. maxlength(3)
|
| 7 | zipPostalCode | string | optional |
zip code.maxlength(20) |
| № | Name | Type | Optionality | Description |
| 1 | fixedAmount | decimal | conditional |
fee fixed amount. required if billingamount is not populated. if “billingamount” is not populated or null then “fixedamount” must be >= 0; max 6 decimal places.
|
| 2 | id | string | conditional |
fee identifier. required if billing override object is included in the request. value > 0
|
| 3 | percentageAmount | decimal | conditional |
max 6 decimal places. fee percentage amount. required if billingamount is not populated. if “billingamount” is not populated or null then “percentageamount” must be >= 0.
|
| 4 | sourceId | string | optional |
fee source identifier. in case sourcetype=subaccountid the entry format must be as follows: accountid.subaccountid (101.2). specify sourcetype as well if selected. in case sourceid and sourcetype are omitted, the default values are current accountid and subaccountid. in case sourcetype=operatorid, sourceid is ignored and a source billing account is determined based on provided subaccountid and transactionid.
|
| 5 | sourceType | enum | conditional |
source type. required if there’s sourceid in the request. Avaliable Values:
|
| 6 | targetId | string | optional |
fee target identifier. in case targettype=subaccountid the entry format must be as follows: accountid.subaccountid (101.2). specify targettype as well if selected. in case targetid and targettype are omitted, the default values are taken from the current service provider fee target settings. in case targettype=operatorid, targetid is ignored and a target billing account is determined based on provided subaccountid and transactionid.
|
| 7 | targetType | enum | conditional |
target type. required if there’s targetid in the request. Avaliable Values:
|
| 8 | reverse | boolean | optional |
boolean to enable fees reversal. true reversal enabled false reversal disabled
|
| 9 | billingAmount | decimal | optional |
billing amount value. pass billing amount value to set/change transaction amount for commission and fees calculation. in case you wish to use this feature, billingamount parameter must be included and have a valid value in the transaction billingoverride to override the original transaction billing amount for calculation of commissions and fees.
|
| № | Name | Type | Optionality | Description |
| 1 | number | string | conditional |
credit card number. required if “token” is null; else – null |
| 2 | expirationDate | string | conditional |
credit card expiration date. required if “token” is null; else – null |
| 3 | nameOnCard | string | conditional |
cardholder’s name. maxlength(120) required if “token” is null; else – null
|
| 4 | type | enum | conditional |
creditcardtypeid. required if “token” is null. else null Avaliable Values:
|
| 5 | cvv | string | conditional |
credit card cvv value. only digits are allowed. min length = 3,max length = 4 required if “token” is null; else – null
|
| 6 | tokenization | object | conditional |
tokenization parameters. in case the token is specified then credit card information should be empty and vise versa. |
| № | Name | Type | Optionality | Description |
| 1 | type | enum | conditional |
tokenization flags indicationg external or internal tokenization type. internal tokenization is performed by the system propritary tools. null if there is no tokenization object. Avaliable Values:
|
| 2 | cardtype | enum | conditional |
creditcardtypeid. null if “token” is null Avaliable Values:
|
| 3 | token | string | conditional |
credit card token value. null if there is no tokenization object. maxlength(255)
|
| 4 | maskedNumber | string | conditional |
credit card masked number. null if “token” is null. |
| 5 | nameOnCard | string | conditional |
cardholder’s name. maxlength(120)required if “token” is not null and “type” = 1 (required only for external tokenization), else – null.
|
| 6 | cvv | string | conditional |
credit card cvv value. only digits are allowed. min length = 3,max length = 4 required if “token” is null; else – null
|
| № | Name | Type | Optionality | Description |
| 1 | freeText | string | optional |
merchant free text. maxlength(255) |
| 2 | transactionDate | datetime | optional |
merchant transaction processing date. iso format (yyyy-mm-dd hh:mm:ss). |
| 3 | transactionDescription | string | optional |
merchant transaction description. maxlength(255) |
| 4 | transactionId | string | optional |
merchant transaction identifier. maxlength(255) |
| № | Name | Type | Optionality | Description |
| 1 | transactionId | string | conditional |
original transaction identifier. required for submit transaction and transaction “type“ = “update“ if “transactiontype” = system , then the value must be > 0, if “transactiontype” = processor, then the value must be text, if “transactiontype” = merchant, then the value must be text.
|
| 2 | transactionType | enum | required |
original transaction type identifier. Avaliable Values:system – 0 processor – 1 merchant – 2
|
| № | Name | Type | Optionality | Description |
| 1 | dynamicDescriptor | string | required |
processor dynamic descriptor value. maxlength(255) |
| № | Name | Type | Optionality | Description |
| 1 | disputeDate | datetime | optional |
dispute date of the chargeback. date ≤ today |
| 2 | reasonCode | string | optional |
chargeback reason code. maxlength(25) |
| № | Name | Type | Optionality | Description |
| 1 | firstInstallment | object | conditional | |
| 2 | schedule | object | conditional | required if “subscription” is not null |
| 3 | expiration | object | conditional | required if “subscription” is not null |
| 4 | recurringAmount | decimal | required | value > 0 (2 decimal places) |
| 5 | initialPreAuthaMount | decimal | conditional |
value ≥ 0 (2 decimal places). gateway validation logic: if initialpreauthamount > 0 then transaction amount should be 0 |
| № | Name | Type | Optionality | Description |
| 1 | amount | decimal | conditional |
installment amount value > 0 required if “firstinstallment” is not null
|
| 2 | interval | decimal | conditional |
installment interval value > 0 required if “firstinstallment” is not null
|
| № | Name | Type | Optionality | Description |
| 1 | interval | integer | conditional |
schedule interval value value > 0 required if “schedule” is not null Avaliable Values:
|
| 2 | intervalCount | integer | conditional |
available values: 1-999 – for daily available values: 1-999 – for monthly, weekly value > 0 required if “interval”=daily, weekly, monthly
|
| 3 | dayNumber | integer | conditional |
available values: 0-6 – for weekly available values: 1-31 – for monthly/yearly required if “interval”=weekly, monthly, yearly
|
| 4 | monthNumber | integer | conditional |
available values: 1-12 required if “interval”= yearly |
| № | Name | Type | Optionality | Description |
| 1 | type | enum | optional |
expiration type. Avaliable Values:
|
| 2 | numberOfOccurrences | integer | conditional |
number of occurences required if “type”=2 (endafternumberofoccurrences) available values: 1-99999
|
| 3 | date | datetime | conditional | required if “type”=3 (endbydate) |
| 4 | numberOfDays | integer | conditional |
required if “type”=4 (endafternumberofdays) value > 0 |
| № | Name | Type | Optionality | Description |
| 1 | eci | string | optional | eci indicates the result of 3d-secfure authentication process (verification successful/verification attempted/unable to verify). optional if “token” is null, else required maxlength(2) |
| 2 | xid | string | optional | xid is the id (or code) of the particular authentication. optional if “token” is null, else required maxlength(28) |
| 3 | cavv | string | optional | cavv is the authentication verification value. optional if “token” is null, else required. maxlength(99) |
| 4 | token | string | optional | 3d – secure token. this parameter is used to indicate if a transaction has been authenticated. optional if “cavv”, “xid”, “eci” is not null. else required maxlength(255) |
Echo API is intended to supply the System with the transaction data that has been processed by the client via the external transactions processing processor. The System will use the supplied transaction data for such operations as billing, payouts, reconciliation and other operations that require original transaction data.
Endpoints:
Sandbox URL: https://sandbox.4levers.com/EchoAPI/api/Import
Production URL: https://echo-api.4levers.com/api/Import
{
"accountId": "Platform Account Id",
"amount": 13,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"creditCard": {
"bin": "411111",
"expirationDate": "1220",
"last4": "1111",
"nameOnCard": "Eleanor Johansson",
"type": "Visa"
},
"currency": "USD",
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"entryMode": "2",
"paymentMethod": "CreditCard",
"processorData": {
"authorizationNumber": "01919Z",
"errorCode": "",
"errorCodeDescription": "",
"transactionId": "1234567891"
},
"status": "Processed",
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Authorization"
}
| № | Name | Type | Optionality | Description |
| 1 | accountId | integer | required | platform account identifier. |
| 2 | amount | decimal | required |
transaction amount. amount=0 can be passed with authorization transaction type. |
| 3 | billingAddress | object | optional | user billing address data object. |
| 4 | billingOverride | object | optional | data object that contains an array of billingfee objects. |
| 5 | creditCard | object | required | credit card data object. |
| 6 | currency | enum | required |
currencytypeid. Avaliable Values:
|
| 7 | entryMode | integer | optional |
nullable transaction entry mode numerical value.
|
| 8 | merchantData | object | required | merchant data data object. |
| 9 | paymentMethod | enum | required |
paymentmethodtypeid. Avaliable Values:
|
| 10 | processorData | object | required | processor data data object. |
| 11 | status | enum | required |
transactionstatusid. Avaliable Values:
|
| 12 | subAccountId | integer | required | sub-account identifier. |
| 13 | terminalId | string | optional | terminal identifier. |
| 14 | transactionMethod | enum | optional |
transactionmethodid. Avaliable Values:
|
| 15 | type | enum | required |
transactiontypeid. Avaliable Values:
|
{
"accountId": "Platform Account Id",
"amount": 13,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"originalTransaction": {
"transactionId": "732000000002107745",
"transactionType": "merchant"
},
"creditCard": {
"bin": "411111",
"expirationDate": "1220",
"last4": "1111",
"nameOnCard": "Eleanor Johansson",
"type": "Visa"
},
"currency": "USD",
"entryMode": "2",
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"paymentMethod": "CreditCard",
"processorData": {
"authorizationNumber": "01919Z",
"errorCode": "",
"errorCodeDescription": "",
"transactionId": "1234567891"
},
"status": "Processed",
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Void"
}
| № | Name | Type | Optionality | Description |
| 1 | accountId | integer | required | platform account identifier. |
| 2 | amount | decimal | required |
transaction amount. amount=0 can be passed with partial void transaction type. |
| 3 | billingAddress | object | optional | user billing address data object. |
| 4 | billingOverride | object | optional | data object that contains an array of billingfee objects. |
| 5 | creditCard | object | required | credit card data object. |
| 6 | currency | enum | required |
currencytypeid. Avaliable Values:
|
| 7 | entryMode | integer | optional |
nullable transaction entry mode numerical value.
|
| 8 | merchantData | object | optional | merchant data data object. |
| 9 | originalTransaction | object | optional |
original transaction data object. required only if transactiontypeid = 3 (void) or 4 (partial void) or 5 (capture) or 6 (partial capture) or 8 (refund) or 9 (partial refund) or 12 (cancel) or 13 (adjustment) or 14 (retrieval) or 15 (representment) or 16 (arbitration) or 17 (reversal). |
| 10 | paymentMethod | enum | required |
paymentmethodtypeid. Avaliable Values:
|
| 11 | processorData | object | required | processor data data object. |
| 12 | status | enum | required |
transactionstatusid. Avaliable Values:
|
| 13 | subAccountId | integer | required | sub-account identifier. |
| 14 | terminalId | string | optional | terminal identifier. |
| 15 | transactionMethod | enum | optional |
transactionmethodid. Avaliable Values:
|
| 16 | type | enum | required |
transactiontypeid. Avaliable Values:
|
{
"accountId": "Platform Account Id",
"amount": 13,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"originalTransaction": {
"transactionId": "732000000002107745",
"transactionType": "merchant"
},
"creditCard": {
"bin": "411111",
"expirationDate": "1220",
"last4": "1111",
"nameOnCard": "Eleanor Johnson",
"type": "Visa"
},
"currency": "USD",
"entryMode": "2",
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"paymentMethod": "CreditCard",
"processorData": {
"authorizationNumber": "01919Z",
"errorCode": "",
"errorCodeDescription": "",
"transactionId": "1234567891"
},
"status": "Processed",
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Capture"
}
| № | Name | Type | Optionality | Description |
| 1 | accountId | integer | required | platform account identifier. |
| 2 | amount | decimal | required |
transaction amount. amount=0 can be passed with partial void transaction type. |
| 3 | billingAddress | object | optional | user billing address data object. |
| 4 | billingOverride | object | optional | data object that contains an array of billingfee objects. |
| 5 | creditCard | object | required | credit card data object. |
| 6 | currency | enum | required |
currencytypeid. Avaliable Values:
|
| 7 | entryMode | integer | optional |
nullable transaction entry mode numerical value.
|
| 8 | merchantData | object | optional | merchant data data object. |
| 9 | originalTransaction | object | optional |
original transaction data object. required only if transactiontypeid = 3 (void) or 4 (partial void) or 5 (capture) or 6 (partial capture) or 8 (refund) or 9 (partial refund) or 12 (cancel) or 13 (adjustment) or 14 (retrieval) or 15 (representment) or 16 (arbitration) or 17 (reversal).
|
| 10 | paymentMethod | enum | required |
paymentmethodtypeid. Avaliable Values:
|
| 11 | processorData | object | required | processor data data object. |
| 12 | status | enum | required |
transactionstatusid. Avaliable Values:
|
| 13 | subAccountId | integer | required | sub-account identifier. |
| 14 | terminalId | string | optional | terminal identifier. |
| 15 | transactionMethod | enum | optional |
transactionmethodid. Avaliable Values:
|
| 16 | type | enum | required |
transactiontypeid. Avaliable Values:
|
{
"accountId": "Platform Account Id",
"amount": 13,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"creditCard": {
"bin": "411111",
"expirationDate": "1220",
"last4": "1111",
"nameOnCard": "Eleanor Johnson",
"type": "Visa"
},
"currency": "USD",
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"entryMode": "2",
"paymentMethod": "CreditCard",
"processorData": {
"authorizationNumber": "01919Z",
"errorCode": "",
"errorCodeDescription": "",
"transactionId": "1234567891"
},
"status": "Processed",
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Charge"
}
| № | Name | Type | Optionality | Description |
| 1 | accountId | integer | required | platform account identifier. |
| 2 | amount | decimal | required |
transaction amount. amount=0 can be passed with charge transaction type. |
| 3 | billingAddress | object | optional | user billing address data object. |
| 4 | billingoverride | object | optional | data object that contains an array of billingfee objects. |
| 5 | creditcard | object | required | credit card data object. |
| 6 | currency | enum | required |
currencytypeid. Avaliable Values:
|
| 7 | entrymode | integer | optional |
nullable transaction entry mode numerical value.
|
| 8 | merchantdata | object | optional | merchant data data object. |
| 9 | paymentmethod | enum | required |
paymentmethodtypeid. Avaliable Values:
|
| 10 | processordata | object | required | processor data data object. |
| 11 | status | enum | required |
transactionstatusid. Avaliable Values:
|
| 12 | subaccountid | integer | required | sub-account identifier. |
| 13 | terminalid | string | optional | terminal identifier. |
| 14 | transactionmethod | optional |
transactionmethodid. Avaliable Values:
|
|
| 15 | type | enum | required |
transactiontypeid. Avaliable Values:
|
{
"accountId": "Platform Account Id",
"amount": 13,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"originalTransaction": {
"transactionId": "732000000002107745",
"transactionType": "merchant"
},
"creditCard": {
"bin": "411111",
"expirationDate": "1220",
"last4": "1111",
"nameOnCard": "Eleanor Johansson",
"type": "Visa"
},
"currency": "USD",
"entryMode": "2",
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"paymentMethod": "CreditCard",
"processorData": {
"authorizationNumber": "01919Z",
"errorCode": "",
"errorCodeDescription": "",
"transactionId": "1234567891"
},
"status": "Processed",
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Refund"
}
| № | Name | Type | Optionality | Description |
| 1 | accountid | integer | required | platform account identifier. |
| 2 | amount | decimal | required |
transaction amount.amount=0 can be passed with partial refund transaction type. |
| 3 | billingaddress | object | optional | user billing address data object. |
| 4 | billingoverride | object | optional | data object that contains an array of billingfee objects. |
| 5 | creditcard | object | required | credit card data object. |
| 6 | currency | enum | required |
currencytypeid. Avaliable Values:
|
| 7 | entrymode | integer | optional |
nullable transaction entry mode numerical value.
|
| 8 | merchantdata | object | optional | merchant data data object. |
| 9 | originaltransaction | object | optional |
original transaction data object. required only if transactiontypeid = 3 (void) or 4 (partial void) or 5 (capture) or 6 (partial capture) or 8 (refund) or 9 (partial refund) or 12 (cancel) or 13 (adjustment) or 14 (retrieval) or 15 (representment) or 16 (arbitration) or 17 (reversal). |
| 10 | paymentmethod | enum | required |
paymentmethodtypeid. Avaliable Values:
|
| 11 | processordata | object | required | processor data data object. |
| 12 | status | enum | required |
transactionstatusid. Avaliable Values:
|
| 13 | subaccountid | integer | required | sub-account identifier |
| 14 | terminalid | string | optional | terminal identifier. |
| 15 | transactionmethod | enum | optional |
transactionmethodid. Avaliable Values:
|
| 16 | type | enum | required |
transactiontypeid. Avaliable Values:
|
{
"accountId": "Platform Account Id",
"amount": 13,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"creditCard": {
"bin": "411111",
"expirationDate": "1220",
"last4": "1111",
"nameOnCard": "Eleanor Johnson",
"type": "Visa"
},
"currency": "USD",
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"entryMode": "2",
"paymentMethod": "CreditCard",
"processorData": {
"authorizationNumber": "01919Z",
"errorCode": "",
"errorCodeDescription": "",
"transactionId": "1234567891"
},
"status": "Processed",
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Credit"
}
| № | Name | Type | Optionality | Description |
| 1 | accountid | integer | required | platform account identifier. |
| 2 | amount | decimal | required |
transaction amount. amount=0 can be passed with credit transaction type. |
| 3 | billingaddress | object | optional | user billing address data object. |
| 4 | billingoverride | object | optional | data object that contains an array of billingfee objects. |
| 5 | creditcard | object | required | credit card data object. |
| 6 | currency | enum | required |
currencytypeid. Avaliable Values:
|
| 7 | entrymode | integer | optional |
nullable transaction entry mode numerical value.
|
| 8 | merchantdata | object | optional | merchant data data object. |
| 9 | paymentmethod | enum | required |
paymentmethodtypeid. Avaliable Values:
|
| 10 | processordata | object | required | processor data data object. |
| 11 | status | enum | required |
transactionstatusid. Avaliable Values:
|
| 12 | subaccountid | integer | required | sub-account identifier. |
| 13 | terminalid | string | optional | terminal identifier. |
| 14 | transactionmethod | enum | optional |
transactionmethodid Avaliable Values:
|
| 15 | type | enum | required |
transactiontypeid. Avaliable Values:
|
{
"accountId": "Platform Account Id",
"amount": 1,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"creditCard": {
"bin": "411111",
"expirationDate": "1220",
"last4": "1111",
"nameOnCard": "Eleanor Johansson",
"type": "Visa"
},
"currency": "USD",
"entryMode": "2",
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"paymentMethod": "CreditCard",
"processorData": {
"authorizationNumber": "01919Z",
"errorCode": "",
"errorCodeDescription": "",
"transactionId": "1234567891"
},
"status": "Processed",
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Verify"
}
| № | Name | Type | Optionality | Description |
| 1 | accountid | integer | required | platform account identifier. |
| 2 | amount | decimal | required |
transaction amount. amount=0 can be passed with verify transaction type. |
| 3 | billingaddress | object | optional | user billing address data object. |
| 4 | creditcard | object | required | credit card data object. |
| 5 | currency | enum | required |
currencytypeid. Avaliable Values:
|
| 6 | entrymode | integer | optional |
nullable transaction entry mode numerical value.
|
| 7 | merchantdata | object | optional | merchant data data object. |
| 8 | paymentmethod | enum | required |
paymentmethodtypeid. Avaliable Values:
|
| 9 | processordata | object | required | processor data data object. |
| 10 | status | enum | required |
transactionstatusid. Avaliable Values:
|
| 11 | subaccountid | integer | required | sub-account identifier. |
| 12 | terminalid | string | optional | terminal identifier. |
| 13 | transactionmethod | enum | optional |
transactionmethodid. Avaliable Values:
|
| 14 | type | enum | required |
transactiontypeid. Avaliable Values:
|
{
"accountId": "Platform Account Id",
"amount": 13,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
},
{
"fixedAmount": 2,
"id": 2641,
"percentageAmount": 20,
"sourceId": "1000385095",
"sourceType": "BillingAccountId",
"targetId": "1000311145",
"targetType": "BillingAccountId"
}
],
"originalTransaction": {
"transactionId": "732000000002107745",
"transactionType": "merchant"
},
"creditCard": {
"bin": "411111",
"expirationDate": "1220",
"last4": "1111",
"nameOnCard": "Eleanor Johansson",
"type": "Visa"
},
"currency": "USD",
"entryMode": "2",
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"paymentMethod": "CreditCard",
"processorData": {
"authorizationNumber": "01919Z",
"errorCode": "",
"errorCodeDescription": "",
"transactionId": "1234567891"
},
"chargeback": {
"disputeDate": "string",
"reasonCode": "string"
},
"status": "Processed",
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Chargeback"
}
| № | Name | Type | Optionality | Description |
| 1 | accountid | integer | required | platform account identifier. |
| 2 | amount | decimal | required |
transaction amount. amount=0 can be passed with any transaction type. |
| 3 | billingaddress | object | optional | user billing address data object. |
| 4 | billingoverride | object | optional | data object that contains an array of billingfee objects. |
| 5 | creditcard | object | required | credit card data object. |
| 6 | currency | enum | required |
currencytypeid. Avaliable Values:
|
| 7 | entrymode | integer | optional |
nullable transaction entry mode numerical value.
|
| 8 | merchantdata | object | optional | merchant data data object. |
| 9 | originaltransaction | object | optional |
original transaction data object. required only if transactiontypeid = 3 (void) or 4 (partial void) or 5 (capture) or 6 (partial capture) or 8 (refund) or 9 (partial refund) or 12 (cancel) or 13 (adjustment) or 14 (retrieval) or 15 (representment) or 16 (arbitration) or 17 (reversal).
|
| 10 | paymentmethod | enum | required |
Avaliable Values:
|
| 11 | processordata | object | required | processor data data object. |
| 12 | chargeback | object | optional | additional chargeback parameters. |
| 13 | status | enum | required |
transactionstatusid. Avaliable Values:
|
| 14 | subaccountid | integer | required | sub-account identifier. |
| 15 | terminalid | string | optional | terminal identifier. |
| 16 | transactionmethod | enum | optional |
transactionmethodid. Avaliable Values:
|
| 17 | type | enum | required |
transactiontypeid. Avaliable Values:
|
{
"accountId": "Platform Account Id",
"amount": 10,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"originalTransaction": {
"transactionId": "732000000002107745",
"transactionType": "merchant"
},
"creditCard": {
"bin": "411111",
"expirationDate": "1220",
"last4": "1111",
"nameOnCard": "Eleanor Johnson",
"type": "Visa"
},
"currency": "USD",
"entryMode": 99,
"merchantData": {
"freeText": "string",
"transactionDate": "dateTime",
"transactionDescription": "string",
"transactionId": "string"
},
"paymentMethod": "CreditCard",
"processorData": {
"authorizationNumber": "A0101Z",
"avsResultIndication": "P",
"cvvResultIndication": "D",
"errorCode": "123",
"errorCodeDescription": "Error Code Description",
"transactionId": "Transaction ID"
},
"status": "Processed",
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Cancel"
}
| № | Name | Type | Optionality | Description |
| 1 | accountid | integer | required | platform account identifier. |
| 2 | amount | decimal | required |
transaction amount. amount=0 can be passed with cancel transaction type. |
| 3 | billingaddress | object | optional | user billing address data object. |
| 4 | originaltransaction | object | optional |
original transaction data object. required only if transactiontypeid = 3 (void) or 4 (partial void) or 5 (capture) or 6 (partial capture) or 8 (refund) or 9 (partial refund) or 12 (cancel) or 13 (adjustment) or 14 (retrieval) or 15 (representment) or 16 (arbitration) or 17 (reversal). |
| 5 | creditcard | object | required | credit card data object. |
| 6 | currency | enum | required |
currencytypeid. Avaliable Values:
|
| 7 | entrymode | integer | optional |
nullable transaction entry mode numerical value.
|
| 8 | merchantdata | object | optional | merchant data data object. |
| 9 | paymentmethod | enum | required |
paymentmethodtypeid. Avaliable Values:
|
| 10 | processordata | object | required | processor data data object. |
| 11 | status | enum | required |
transactionstatusid. Avaliable Values:
|
| 12 | subaccountid | integer | required | sub-account identifier. |
| 13 | terminalid | string | optional | terminal identifier. |
| 14 | transactionmethod | enum | optional |
transactionmethodid Avaliable Values:
|
| 15 | type | enum | required |
transactiontypeid.
Avaliable Values:
|
OriginalTransactioID, SubAccountID, AccountID.
Use regular Echo request packet for Update transactions.
{
"accountId": "Platform Account Id",
"amount": null,
"billingAddress": {
"addressLine": "Update-AddressLine",
"city": "Update-City",
"country": "Update-Country",
"email": "Update-Email",
"phoneNumber": "Update-Phone",
"state": "Update-State",
"zipPostalCode": "Update-ZIP"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmountValue",
"id": "objectIdentifier",
"percentageAmount": "feePercentageAmountValue",
"billingAmount": "billingAmountValue"
}
],
"originalTransaction": {
"transactionId": "732000000002107745",
"transactionType": "merchant"
},
"currency":"USD",
"entryMode":100,
"merchantData": {
"freeText": "Update MerchantText",
"transactionDate": "2022-01-10T18:19:11",
"transactionDescription": "Update Description",
"transactionId": "UpdateMerchantTrxID"
},
"processorData": {
"authorizationNumber": "AK00z",
"avsResultIndication": "DDD",
"cvvResultIndication": "PPP",
"transactionId": "UpdateTrxAqcTrxID"
},
"chargeback": {
"disputeDate": "string",
"reasonCode": "string"
},
"subAccountId": "Sub-Account Id",
"terminalId": "777",
"type": "Update"
}| № | Name | Type | Optionality | Description |
| 1 | accountid | integer | required |
platform account identifier. disabled for updating by the update transaction. |
| 2 | amount | decimal | required |
transaction amount. the value of ‘amount’ must be empty or null for type=’update’ |
| 3 | billingaddress | object | optional | user billing address data object. |
| 4 | billingoverride | object | optional | data object that contains an array of billingfee objects. |
| 5 | currency | enum | required |
currencytypeid. disabled for updating by the update transaction. Avaliable Values:
|
| 6 | entrymode | integer | optional |
nullable transaction entry mode numerical value.
|
| 7 | merchantdata | object | optional | merchant data data object. |
| 8 | originaltransaction | object | required |
original transaction data object. disabled for updating by the update transaction. |
| 9 | processordata | object | optional | processor data data object. |
| 10 | chargeback | object | optional | additional chargeback parameters. |
| 11 | subaccountid | integer | required |
sub-account identifier. disabled for updates by update transactions. |
| 12 | terminalid | string | optional | terminal identifier. |
| 13 | type | enum | required |
transactiontypeid. disabled for updates by update transactions. Avaliable Values:
|
billingOverride with fees values you wish to override (change) without relation to any particular transaction type.
In such cases, a fee execution is triggered by the Adjustment transaction.
Example
Service Provider charges merchants 10 $ fee for each Technical Support request.
To apply such fees, Service Provider may send an Adjustment transaction for each Support request with the transaction amount = 0 and fee amount = 10 $.
{
"accountId": "Platform Account Id",
"amount": 0,
"billingAddress": {
"addressLine": "Address Line",
"city": "City Name",
"country": "Country Name",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "State Name",
"zipPostalCode": "ZIP Code"
},
"billingOverride": [
{
"fixedAmount": 66.66,
"id": 5896,
"percentageAmount": 0,
"sourceId": 1000421511,
"sourceType": "billingAccountId",
"targetId": 1000397047,
"targetType": "billingAccountId",
"reverse": false
}
],
"currency": "USD",
"status": "Processed",
"subAccountId": "Sub-Account Id",
"terminalId": "",
"transactionMethod": "RegularTransaction",
"type": "Adjustment"
}
| № | Name | Type | Optionality | Description |
| 1 | accountid | integer | required | platform account identifier. |
| 2 | amount | decimal | optional |
transaction amount. acceptable values: amount=null / amount is absent / amount = “” / amount = 0. request validation fails with the amount value that is greater or lower than zero.
|
| 3 | billingaddress | object | optional | user billing address data object. |
| 4 | billingoverride | object | required | data object that contains an array of billingfee objects. |
| 5 | currency | enum | required |
currencytypeid. Avaliable Values:
|
| 6 | status | enum | optional |
acceptable values: status=null / status is absent / status = “”/ status: processed. Avaliable Values:
|
| 7 | subaccountid | integer | required | sub-account identifier. |
| 8 | terminalid | string | optional | terminal identifier. |
| 9 | transactionmethod | enum | optional |
transactionmethodid. Avaliable Values:
|
| 10 | type | enum | required |
transactiontypeid. Avaliable Values:
|
{
"accountId": "Platform Account Id",
"amount": 13,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"ach": {
"accountNumber": "1099999903",
"accountType": "Savings",
"entityType": "Personal",
"nameOnAccount": "Eleanor Johnson",
"routingNumber": "114567895"
},
"currency": "USD",
"entryMode": "2",
"merchantData": {
"freeText": "Update MerchantText",
"transactionDate": "2022-01-10T18:19:11",
"transactionDescription": "Update Description",
"transactionId": "UpdateMerchantTrxID"
},
"paymentMethod": "Ach",
"processorData": {
"authorizationNumber": "01919Z",
"errorCode": "",
"errorCodeDescription": "",
"transactionId": "MCS1L2VI720190390"
},
"status": "Processed",
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Authorization"
}{
"accountId": "Platform Account Id",
"amount": 50,
"billingAddress": {
"addressLine": "Address",
"city": "City Name",
"country": "USA",
"email": "email@mail.com",
"phoneNumber": "12346879",
"state": "FL",
"zipPostalCode": "123465798"
},
"billingOverride": [
{
"fixedAmount": "feeFixedAmount",
"id": "objectId",
"percentageAmount": "feePercentageAmount",
"sourceId": "feeSourceIdentifier",
"sourceType": "BillingAccountId",
"targetId": "feeTargetIdentifier",
"targetType": "BillingAccountId",
"reverse": "true",
"billingAmount": "billingAmountValue"
}
],
"ach": {
"accountNumber": "ACH Account Number",
"accountType": "ACH Account Type",
"entityType": "Personal",
"nameOnAccount": "Scarlet Johnson",
"routingNumber": "ACH Account Routing Number"
},
"originalTransaction": {
"transactionId": "Transaction ID",
"transactionType": "Processor"
},
"currency": "USD",
"entryMode": "2",
"merchantData": {
"freeText": "Update MerchantText",
"transactionDate": "2022-01-10T18:19:11",
"transactionDescription": "Update Description",
"transactionId": "UpdateMerchantTrxID"
},
"paymentMethod": "ACH",
"processorData": {
"authorizationNumber": "A0101Z",
"avsResultIndication": "P",
"cvvResultIndication": "D",
"errorCode": "123",
"errorCodeDescription": "Error description message",
"transactionId": "Transaction ID"
},
"status": "Processed",
"subAccountId": "Sub-Account Id",
"terminalId": "string",
"transactionMethod": "RegularTransaction",
"type": "Chargeback"
}| № | Name | Type | Description |
| 1 | transactionid | long | system transaction identifier. |
| 2 | responsecode | integer | system response code. view all response codes |
| 3 | responsedescription | string | system response description. |
| 4 | title | string | error title. |
| 5 | status | integer | error code value |
| 6 | detail | string | error path and details. |
| 7 | instance | string | error instance guid. |
{
"transactionId":"1234560000789",
"responseCode": 0,
"responseDescription":"OK"
}
{
"title":"Model validation failed",
"status": 400,
"detail":"{\"Amount\":[\"'Amount' must be greater than '0'.\"]}"
}
{
"title":"Request Validation Error",
"status": 400,
"detail":"{\"\":[\"Error converting value \\\ "accountId\\\".Path '', line 2, position 13..Path'', line 2, position 13.\"]}",
"instance": "urn:error:e86c6a80-8128-xxxx-be5b-4d40cda04253"
}
{
"transactionId":"1234560000789",
"responseCode": 10042,
"responseDescription":" Authorization transaction already deposited"
}| № | Name | Type | Optionality | Description |
| 1 | accountnumber | string | required | ach account number. |
| 2 | accounttype | enum | required |
achaccounttypeid Avaliable Values:
|
| 3 | entitytype | enum | required |
achentitytypeid Avaliable Values:
|
| 4 | nameonaccount | string | required | name of the account owner. |
| 5 | routingnumber | string | required |
the ach routing number is a 9–digit number assigned to financial institutions by the american bankers association (aba) to identify the financial institution upon which a payment was drawn. |
| № | Name | Type | Optionality | Description |
| 1 | addressline | string | optional | billing address. |
| 2 | city | string | optional | city name. |
| 3 | country | string | optional |
country name. enter two or three-letter country code. |
| 4 | string | optional | contact email. | |
| 5 | phonenumber | string | optional | contact phone number. |
| 6 | state | string | optional |
state name. enter two or three-letter state code. |
| 7 | zippostalcode | string | optional | zip code. |
| № | Name | Type | Optionality | Description |
| 1 | fixedamount | decimal | optional |
fee fixed amount. required if billingamount is not populated. |
| 2 | id | string | optional |
fee identifier. required if billing override object is included in the request. |
| 3 | percentageamount | decimal | optional |
max 6 decimal places. fee percentage amount. required if billingamount is not populated.
|
| 4 | sourceid | string | optional |
fee source identifier. in case sourcetype=subaccountid the entry format must be as follows: accountid.subaccountid (101.2). specify sourcetype as well if selected. in case sourceid and sourcetype are omitted, the default values are current accountid and subaccountid. in case sourcetype=operatorid, sourceid is ignored and a source billing account is determined based on provided subaccountid and transactionid.
|
| 5 | sourcetype | enum | optional |
source type. required if there’s sourceid in the request. Avaliable Values:
|
| 6 | targetid | string | optional |
fee target identifier. in case targettype=subaccountid the entry format must be as follows: accountid.subaccountid (101.2). specify targettype as well if selected. in case targetid and targettype are omitted, the default values are taken from the current service provider fee target settings. in case targettype=operatorid, targetid is ignored and a target billing account is determined based on provided subaccountid and transactionid.
|
| 7 | targettype | enum | optional |
target type. required if there’s targetid in the request. Avaliable Values:
|
| 8 | reverse | boolean | optional |
boolean to enable fees reversal. true reversal enabled false reversal disabled
|
| 9 | billingamount | decimal | optional |
billing amount value. pass billing amount value to set/change transaction amount for commission and fees calculation. in case you wish to use this feature, billingamount parameter must be included and have a valid value in the transaction billingoverride to override the original transaction billing amount for calculation of commissions and fees.
|
| № | Name | Type | Optionality | Description |
| 1 | bin | string | required |
credit card bank identification number. first 6 digits of the credit card number. |
| 2 | expirationdate | string | required | credit card expiration date. |
| 3 | last4 | string | required | credit card number last 4 digits. |
| 4 | nameoncard | string | optional | cardholders name. |
| 5 | token | string | optional | credit card payment external token. |
| 6 | type | enum | required |
creditcardtypeid. Avaliable Values:
|
| № | Name | Type | Optionality | Description |
| 1 | freetext | string | optional | merchant free text. |
| 2 | transactiondate | datetime | optional |
merchant transaction processing date. iso format (yyyy-mm-dd hh:mm:ss). |
| 3 | transactiondescription | string | optional | merchant transaction description. |
| 4 | transactionid | string | optional | merchant transaction identifier. |
| № | Name | Type | Optionality | Description |
| 1 | transactionid | string | optional |
original transaction identifier. required only if transactiontypeid = 3 (void) or 4 (partial void) or 5 (capture) or 6 (partial capture) or 8 (refund) or 9 (partial refund) or 12 (cancel) or 13 (adjustment) or 14 (retrieval) or 15 (representment) or 16 (arbitration) or 17 (reversal). |
| 2 | transactiontype | enum | optional |
original transaction type identifier. required only if transactiontypeid = 3 (void) or 4 (partial void) or 5 (capture) or 6 (partial capture) or 8 (refund) or 9 (partial refund) or 12 (cancel) or 13 (adjustment) or 14 (retrieval) or 15 (representment) or 16 (arbitration) or 17 (reversal). Avaliable Values:
|
| № | Name | Type | Optionality | Description |
| 1 | authorizationnumber | string | optional | authorization number. |
| 2 | avsresultindication | char (max 3) | optional | avs result indication. |
| 3 | cvvresultindication | char | optional | cvv result indication. |
| 4 | errorcode | string | optional |
error code. required if transactionstatusid=1 (declined). only for declined transactions.
|
| 5 | errorcodedescription | string | optional |
error code description. required if transactionstatusid=1 (declined). only for declined transactions.
|
| 6 | transactionid | string | optional | processor transaction identifier. |
| № | Name | Type | Optionality | Description |
| 1 | disputedate | datetime | optional | dispute date of the chargeback. |
| 2 | reasoncode | string | optional | chargeback reason code. |
In the world of electronic commerce PCI (payment card industry) security standards compliance is a key factor for anyone who is involved in processing of electronic payments.
PCI security standard ensures network safety, cardholder’s data protection, strong system access management, comprehensive information security policy and other measures that determine your client’s loyalty and, ultimately, the success of any e-commerce business.
Anyone who intends to process credit card payments, store and transmit sensitive credit card data must be PCI compliant or cooperate with PCI compliant service provider.
The System fully meets all electronic commerce PCI standards and, thus, can be your reliable partner in processing credit card transactions and lift your PCI compliance burden.
Tokenization Service allows you to process credit card payments, store and transmit your customer’s sensitive data without the need of meeting PCI standards in full.
Ultimately, we take your customer’s sensitive credit card data and return it to you in a form of a Payment Token, which you can use for all the subsequent operations with the same credit card. We store sensitive data on our server and make sure this data never touches your system.
Tokenization is the process of substituting sensitive cardholder data with a secure token,
for the purpose of heightened security and to prevent the theft of stored credit card information.
In the payment industry, tokenization is a way of protecting sensitive cardholder information to comply with industry standards and government regulations (PCI compliance).
Reasons to use tokenization include:
•For a PCI-compliant integration. In this case, sensitive data is not stored on your server.
•If you are going to use sensitive data for multiple transactions. Here, you can substitute credit card data with a token for all subsequent transactions.
You can access the Tokenization service two ways:
Endpoints
Sandbox (test environment) and Production URLs for processing transactions:
Sandbox URL:https://sandbox.4levers.com/TxWs/ATPayTxWS.svc/json/Transaction
Production URL: https://transactions.4levers.com/ATPayTxWS.svc/json/Transaction
The System supports two types of tokenization: internal and external.
Internal Tokenization
Internal tokenization refers to situations in which tokens are provided by the System.
Tokenization logic is as follows:
1.In the first transaction the merchant is conducting with a specific credit card, the merchant activates the tokenization service in the transaction request by passing Tokenization=Internal and the credit card information is sent to the System
2.The System receives the credit card information from the Merchant
3.If the merchant has specified internal tokenization Tokenization=Internal, the System encrypts the credit card information, saves it in its own database in the encrypted mode, and issues a PaymentMethodToken that gets returned to the merchant in the first server response. The PaymentMethodToken is used by the merchant with subsequent transactions on this credit card, instead of credit card information
4.In subsequent transactions on this card, the System checks the PaymentMethodToken against the database and finds the relevant transaction based on the token. It then decrypts the related credit card information and uses it in place of the token
5.With internal tokenization, you may pass your credit card CVV value if required by the bank. Consult with your bank for more details (some banks require CVV just for the first transactions).
External Tokenization
With external tokenization, the external Processor provides the tokens. Internal and external tokenization follow nearly identical tokenization logic.
Activating Tokenization
Follow these steps to activate tokenization with a first-time purchase:
"TokenizationFlag": "Internal" OR "TokenizationFlag": "External" and include full payment method information"PaymentMethodToken": "Your Token"IMPORTANT:
keep the token in a safe place and use it in all subsequent transactions instead of credit card information
Initial Transaction
{
.......
"creditCard": {
"number": "4111111111111111",
"expirationDate": "1225",
"nameOnCard": "Eleanor Johansson",
"type": "Visa",
"cvv": "123",
"tokenization": {
"type": "External"
}
......
}
Response with Payment Token
{
.....
"paymentToken": "",
.....
}
}
Using Payment Token
{
.......
"creditCard": {
"tokenization": {
"type": "External",
"cardType": "Visa",
"token": "1232535645746",
"nameOnCard": "Eleanor Johansson"
}
OR
"creditCard": {
"tokenization": {
"type": "Internal",
"token": "1232535645746",
}
......
}| № | Name | Type | Optionality | Description |
| 1 | “creditcard” | object | conditional | required if payment method = creditcard; null if transaction “type“ = “update”, “adjustment” and payment method = ach; |
| 2 | “tokenization” | object | optional |
| № | Name | Type | Optionality | Description |
| 1 | “paymenttoken” | string | required | credit card payment token |
| № | Name | Type | Optionality | Description |
| 1 | “number” | string | conditional | required if “token” is null. else null |
| 2 | “expirationdate” | string | conditional | required if “token” is null. else null |
| 3 | “nameoncard” | string | conditional | required if “token” is null. else null |
| 4 | “type” | enum | conditional |
credit card type. required when paymentmethod = creditcard and “tokenization”.”type”=external Avaliable Values:
|
| 5 | “cvv” | string | optional | required if “token” is null. else null |
| № | Name | Type | Optionality | Description |
| 1 | “type” | enum | conditional |
null if there is no tokenization object; Avaliable Values:
|
| 2 | “cardtype“ | enum | conditional |
null if “token” is null Avaliable Values:
|
| 3 | “token” | string | conditional | null if there is no tokenization object |
| 4 | “maskednumber” | string | optional | null if “token” is null |
| 5 | “nameoncard“ | string | conditional | required if “token” is not null and “type” = 1 (required only for external tokenization) else null |
https://sandbox.4levers.com/TokenizationApi/Scripts/fourlevers.js
Production environment JavaScript URL: https://tokens.4levers.com/Scripts/fourlevers.js
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:mso="urn:schemas-microsoftcom:office:office" xmlns:msdt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882">
<head>
<title>Tokenization integration sample</title>
<!-- add 4levers script reference with specified client api key -->
<script src="https://sandbox.4levers.com/TokenizationApi/Scripts/fourlevers.js" data-4levers-key="[client apiKey]" data-theme='[css theme name]' ></script>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
/* iFrame Style*/
<style>
label, input, select {
display: block;
margin-left: 8px;
width: 170px;
}
.fourlevers-iframe {
border: none;
height: 200px;
width: 450px;
}
</style>
</head>
<body>
<!-- customer fields -->
<form>
<div>
<label for="addressLine">Address Line 1</label>
<input name="addressLine" id="addressLine" type="text" maxlength="50" />
</div>
<div>
<label for="addressLine2">Address Line 2</label>
<input id="addressLine2" name="addressLine2" type="text" maxlength="50" />
</div>
<div>
<label for="city">City</label>
<input id="city" name="city" type="text" maxlength="50" />
</div>
<div>
<label for="country">Country</label>
<select id="country" name="country">
<option value="1">USA</option>
<option value="2">Canada</option>
<option value="3">United Kingdom</option>
</select>
</div>
<div>
<label for="phone">Phone</label>
<input id="phone" name="phone" type="tel" maxlength="15" />
</div>
</form>
<!-- div container for tokenization iframe -->
<div id="container"></div>
<input type="button" value="submit" onclick=" submitData() " />
<input type="button" value="reset" onclick="reset()"/>
<script>
$().ready(function () {
//create tokenization iframe element on the page inside the element with
id='container'
fourlevers.createIframe('container');
});
//submit button handler
function submitData() {
//sending iframe data to 4levers to obtain token (if validation passed)
//tokenizationComplete - callback function
fourlevers.fetchTokenizedData(tokenizationComplete);
}
//reset button handler
function reset() {
fourlevers.resetIframe();
}
//tokenization complete callback
function tokenizationComplete(tokenizationData) {
//check response status (200 - OK, 400 - Bad Request, 500 - Server Error)
if (tokenizationData.status === 200) {
//perform any operation that you need
alert(JSON.stringify(tokenizationData));
$.post('[some client url]', tokenizationData)
.done(function (data) {
});
}
}
</script>
</body>
</html>
//add 4levers script reference with specified client api key
//div container for tokenization iframe
$().ready(function () {
//create tokenization iframe on the page inside the element with id='container'
fourlevers.createIframe('container');
});
5.Call fourlevers.fetchTokenizedData method to subscribe for the callback function
to retirve the tokenized data in case of a successful validation or a response status code in case of an arror
fourlevers.fetchTokenizedData(tokenizationComplete);6.After you receive the tokenized data, call the tokenizationComplete callback function. Within this function you may implement any custom logic for processing tokenized data (for example get tokenized data and post it to your server). Response statuses: 200 – OK 400 – Bad Request or iFrame validation error 500 – Server Error
//tokenization complete callback function
function tokenizationComplete(tokenizationData) {
//check response status (200 - OK, 400 - Bad Request, 500 - Server Error)
if (tokenizationData.status === 200) {
//perform any operation that you need
alert(JSON.stringify(tokenizationData));
$.post('[some client url]', tokenizationData)
.done(function (data) {
});
}
}
<script src= "https://sandbox.4levers.com/TokenizationApi/Scripts/fourlevers.js" data-4levers-key="[client apiKey]" data-theme='[css theme name]' ></script>4.Contact Customer Support to upload new CSS file to your merchant account to activate template
https://sandbox.4levers.com/TokenizationIframe/
Sandbox Environment JavaScript Reference: https://sandbox.4levers.com/TokenizationApi/Scripts/fourlevers.js
Test API Key: e9d0242db35c4a59a74cf48fe5a92da0
Test Input Data:
Test credit card number: 4111111111111111
Name on card: Eleanor Johnson
Credit card expiration date: 11/2025
CVV: 123
{
"bin": "411111",
"expirationMonth": 11,
"expirationYear": 2025,
"last4": "1111",
"nameOnCard": "Eleanor Johnson",
"paymentToken": "06cfae4e-17e2-4e29-a4a9-267f64c2929b",
"status": 200
}
{
"status": 400
}
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:mso="urn:schemas-microsoftcom:office:office" xmlns:msdt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882">
<head>
<title>Tokenization integration sample</title>
<!-- add 4levers script reference with specified client api key -->
<script src="https://sandbox.4levers.com/TokenizationApi/Scripts/fourlevers.js" data-4levers-key="e9d0242db35c4a59a74cf48fe5a92da0" data-theme='sample' ></script>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
/* iFrame Style*/
<style>
label, input, select {
display: block;
margin-left: 8px;
width: 170px;
}
.fourlevers-iframe {
border: none;
height: 400px;
width: 250px;
}
</style>
</head>
<body>
<!-- customer fields -->
<form>
<div>
<label for="addressLine">Address Line 1</label>
<input name="addressLine" id="addressLine" type="text" maxlength="50" />
</div>
<div>
<label for="addressLine2">Address Line 2</label>
<input id="addressLine2" name="addressLine2" type="text" maxlength="50" />
</div>
<div>
<label for="city">City</label>
<input id="city" name="city" type="text" maxlength="50" />
</div>
<div>
<label for="country">Country</label>
<select id="country" name="country">
<option value="1">USA</option>
<option value="2">Canada</option>
<option value="3">United Kingdom</option>
</select>
</div>
<div>
<label for="phone">Phone</label>
<input id="phone" name="phone" type="tel" maxlength="15" />
</div>
</form>
<!-- div container for tokenization iframe -->
<div id="container"></div>
<input type="button" value="submit" onclick=" submitData() " />
<input type="button" value="reset" onclick="reset()"/>
<script>
$().ready(function () {
//create tokenization iframe element on the page inside the element with
id='container'
fourlevers.createIframe('container');
});
//submit button handler
function submitData() {
//sending iframe data to 4levers to obtain token (if validation passed)
//tokenizationComplete - callback function
fourlevers.fetchTokenizedData(tokenizationComplete);
}
//reset button handler
function reset() {
fourlevers.resetIframe();
}
//tokenization complete callback
function tokenizationComplete(tokenizationData) {
//check response status (200 - OK, 400 - Bad Request, 500 - Server Error)
if (tokenizationData.status === 200) {
//perform any operation that you need
alert(JSON.stringify(tokenizationData));
$.post('[some client url]', tokenizationData)
.done(function (data) {
});
}
}
</script>
</body>
</html>
Tokenization API allows authorized users to generate credit card payment tokens without integration with processing gateway and processing actual transactions. You will receive a credit card payment token in the response in case your API request has been processed successfully. Otherwise, you will get an error message with the status code and error description.
Endpoints
Sandbox:https://sandbox.4levers.com/TokenizationApi/[ApiKeyOfAccount]
Production:https://tokens.4levers.com/[ApiKeyOfAccount]
{
"CardType": "0",
"Cvv": "123",
"CreditCardNumber": "4111111111111111",
"ExpirationMonth": "11",
"ExpirationYear": "2025",
"NameOnCard": "Eleanor Johnson"
}
| № | Name | Type | Optionality | Description |
| 1 | cardtype | enum | optional |
creditcardtypeid Avaliable Values:
|
| 2 | cvv | string | required | varchar (4) card verification value. typically featured on the back of the credit card. |
| 3 | creditcardnumber | string | required | varchar (16) credit card number |
| 4 | expirationmonth | string | required | char (2) credit card expiration month |
| 5 | expirationyear | string | required | char (4) credit card expiration year |
| 6 | nameoncard | string | required | varchar (120) cardholders name |
{
"bin": "411111",
"expirationMonth": "11",
"expirationYear": "2025",
"last4": "1111",
"nameOnCard": "Eleanor Johnson",
"paymentToken": "06cfae4e-17e2-4e29-a4a9-267f64c2929b"
}
{
"field": "Invalid Field Name",
"errors": [
"Error description message"
]
}
| № | Name | Type | Description |
| 1 | bin | string | credit card bank identification number. first 6 digits of the credit card number. |
| 2 | expirationmonth | string | credit card expiration month |
| 3 | expirationyear | string | credit card expiration year |
| 4 | last4 | string | credit card number last 4 digits |
| 5 | nameoncard | string | cardholder’s name |
| 6 | paymenttoken | string | credit card payment token |
| 7 | field | string | invalid field name |
| 8 | errors | array | a list of error messages containing at least one error message |
| Error Code | Description |
|---|---|
| 400 | Bad Request — Your request is invalid |
| 401 | Unauthorized — Authorization failed |
| 403 | Forbidden — Access denied |
| 404 | Not Found — Invalid API key |
| 500 | Internal Server Error — Invalid Json format or Internal Server Error |
| 503 | Service Unavailable — We’re temporarily offline for maintenance. Please try again later |
https://sandbox.4levers.com/TxWS/ATPayTxWs.svc/web/RegularTransaction
Sandbox REST URL Submit Request TransactionType:
https://sandbox.4levers.com/TxWS/ATPayTxWs.svc/web/SubmitTransaction
Production REST URL Regular Request Transaction Type:
https://transactions.4levers.com/ATPayTxWs.svc/web/RegularTransaction
Production REST URL Submit Request TransactionType:
https://transactions.4levers.com/ATPayTxWs.svc/web/SubmitTransaction
About on demand payouts
The System functionality offers four types of transactions you can use to process your payouts:
1.Withdrawal Authorization
2.Withdrawal Void
3.Withdrawal Capture
4.Withdrawal Charge
Transaction requirements
Payer and Payee Information
Make sure you pass the payout Payer and Payee information with each on-demand payout transaction request.
Passing Payer Information:
SvsPaymentMethodID (Payment Option Identifier) with each payout transaction request or pass all ACH fields.| № | Name | Type | Optionality | Description |
| 1 | achAccountNumber | string | optional | varchar (128) ach account number. required when paymentmethod = ach. |
| 2 | achRoutingNumber | string | optional | varchar (20) the ach routing number is a 9–digit number assigned to financial institutions by the american bankers association (aba) to identify the financial institution upon which a payment was drawn. required when paymentmethod = ach. |
| 3 | achCheckNumber | string | optional | varchar (128) ach check number. required when paymentmethod = ach. |
| 4 | achAccountType | enum | optional |
account type (checking or savings). Avaliable Values:
|
| 5 | achEntityType | enum | optional |
personal or business account. Avaliable Values:
|
| № | Name | Type | Optionality | Description |
| 1 | bankName | string | optional | varchar (255) bank name required when paymentmethod = ach |
| 2 | bankAddress | string | optional | varchar (255) merchant bank address required when paymentmethod = ach |
| 3 | branchCode | string | optional | varchar (50) a bank branch code is the first 3 digits of an individual account number and is an identifying code for the bank branch that holds an individual’s account. example:if account no. is 123-4-56789-0 branch code will be 123 required when paymentmethod = ach |
| 4 | bankCode | string | optional | varchar (50) a bank code is a code assigned by the central bank, a bank supervisory body or a bankers association in a country to all its licensed member banks or financial institutions. required when paymentmethod = ach |
| 5 | bankIban | string | optional | varchar (50) the international bank account number (iban). the iban consists of up to 34 alphanumeric characters. required when paymentmethod = ach |
| 6 | bankAccountNumber | string | optional | varchar (50)(basic) bank account number is an account number of bank formed by national standards. required when paymentmethod = ach |
| 7 | swiftCode | string | optional | varchar (50) society for worldwide interbank financial telecommunication issues business identifier codes (bics) which are popularly known as swift codes. the bic is the mostly used international identifier of financial institutions. required whenpaymentmethod = ach |
| 8 | correspondentBank | string | optional | varchar (255) correspondent banks are used by domestic banks in order to service transactions originating in foreign countries, and act as a domestic bank’s agent abroad. this is done because the domestic bank may have limited access to foreign financial markets, and cannot service its client accounts without opening up a branch in another country. |
| № | Name | Type | Optionality | Description |
| 1 | svsPayerAccountNumber | integer | optional | sub-account billing account number. required for processing manual payouts. contact support to get details. |
| 2 | svsPayeeAccountNumber | integer | optional | payout bank billing account number. required for processing manual payouts. contact support to get details. |
| 3 | svsPaymentMethodId | integer | optional | payment option identifier. |
"OperationType":"Credit" with each payout transaction packet.
Processing Type
Processing Type parameter defines the transaction processing method. Use "ProcessingType":"Withdrawal" for payout transactions.
Managing payouts
In the Management API Sub-Account Management section you may configure automated payouts (payout Schedule).
You may as well manage your payouts in the System Back-Office.
Processing a batch of payout transactions
To process more than one payout transaction in a single API request see Batch of Transactions for more information
Withdrawal Authorization is a Regular Request Transaction Type – meaning that it is not based on any parent (Original) transaction. Use Withdrawal Authorization to send the payout for approval. After the successful Authorization you may either confirm the payout by sending the Withdrawal Capture transaction or via the System Back-Office. Use the Back-Office to manually manage and process your payouts.
Back-Office payouts management functions:/ATPayTxWs.svc/web/RegularTransaction
Request Parameters {
"AccessManagementFlag":"false",
"AccountID":"System account identifier",
"ACHAccountNumber":"444444498",
"ACHAccountType":"Checking",
"ACHCheckNumber":"AS234",
"ACHRoutingNumber":"12210515544",
"AchEntityType":"Business",
"Amount":"1.00",
"BankAccountNumber":"12334566778",
"BankAddress":"ABC 123",
"BankCode":"GIBASKPX",
"BankIBAN":"12334566778",
"BankName":"Chase",
"BranchCode":"123321",
"CurrencyType":"USD",
"CustomerOriginatedTxID":"9",
"InstructionType":"Authorization",
"OperationType":"Credit",
"PaymentMethodType":"ACH",
"PaymentType":"Regular",
"ProcessingType":"Withdrawal",
"RecurringBillingFlag":"false",
"RequestType":"Regular",
"ScrubbingFlag":"false",
"SkinID":"System user skin number",
"SvsPayeeAccountNumber":"Sub-Account billing account number",
"SvsPayerAccountNumber":"Payout bank billing account number",
"SwiftCode":"GIBASKPX",
"SubAccountID":"Subaccount Identifier",
"ThreeDSecureFlags":"NoThreeD",
"TokenizationFlag":"NoTokenization"
}
The above command returns response structured like this:
{
"AccessManagementSuccessFlag":"false",
"ClearingAVSResultIndication":"true",
"ClearingCVVResultIndication":"true",
"ClearingInternalErrorID":"0",
"ClearingInternalErrorInfo":"Approved",
"CustomerOriginatedTxID":"316079",
"ErrorID":"0",
"ErrorInfo":"OK",
"FDSPass":"false",
"FDSScore":"0",
"Flags":"0",
"InstructionType":"2",
"InternalErrorID":"0",
"InternalErrorInfo":"OK",
"OriginalTransactionErrorID":"0",
"OriginalTransactionErrorInfo":"true",
"PaymentMethodToken":"c2dd7543-212c-432e-b996-583f550ca72e",
"QueryByMerchantIDErrorID":"0",
"QueryByMerchantIDErrorInfo":"true",
"QueryByMerchantIDSuccessFlag":"false",
"QueryByMerchantIDTransactionID":"0",
"RecurringBillingSuccessFlag":"false",
"SuccessFlag":"true",
"SystemBatchNumber":"1493922",
"TDSPhase1ResponseClientRedirectUrl":"true",
"TDSPhase1ResponseTransactionID":"true",
"TDSPhase2CAVV":"true",
"TDSPhase2ECI":"true",
"TDSPhase2or3ClearingResponseForCAVV":"true",
"TDSXID":"true",
"TransactionID":"1010000000156503",
"TxProcessingStartTime":"2022-01-19T03:16:24"
}
| № | Name | Type | Optionality | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1 | accountId | integer | required | account identifier. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2 | amount | decimal | required | transaction amount. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 3 | baseAmount | decimal | optional | payer amount. populate if different from amount value. nullable amount value is populated if baseamount is null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 4 | baseCurrencyType | enum | optional | payer currency type. populate if different from currencytype value type.
nullable
currencytype value is populated if basecurrencytype is null
Avaliable Values:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5 | billingConfigurationInfo | object | required | billing agreement parameters. pass with the regular transaction packet to override billing agreement settings. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 6 | currencyType | enum | optional |
transaction currency type identifier Avaliable Values:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 7 | customerDateTime | datetime | optional | merchant’s date and time at the moment of the transaction. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 8 | customerOriginatedTxId | string | optional |
varchar (255) transaction identifier by client. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 9 | dynamicDescriptor | string | optional |
varchar (255) defines the merchant information appearance on the credit card statement. it can be pre-configured or dynamic; in the latter case, it can be changed per transaction.format: 3 characters + “” (mandatory)+ 1 – 21 characters (mandatory)+ “” + 1 – 13 characters (not mandatory) example: abc*mydescriptor*1800123456 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 10 | externalClearingInfo | object | optional | determines clearing processor and clearing processor parameters individually for each processor. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 11 | merchantFreeText | string | optional |
varchar (255) merchant text note. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 12 | productId | biginteger | optional |
nullable product identifier. default value = 0 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 13 | subAccountId | integer | required | sub-account identifier. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 14 | terminalId | string | optional | varchar (20) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 15 | transactionDescription | string | optional |
varchar (255) free text to describe the transaction. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 16 | transactionCode | enum | optional | Avaliable Values:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 17 | accessManagementFlag | boolean | required | boolean data type that enables accessmanagement service. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 19 | instructionType | enum | required |
the type of action the transaction performs
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 20 | operationType | enum | required |
determines the transaction type from the double-entry bookkeeping perspective (debit/credit) Avaliable Values:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 21 | originalRecurringBillingId | biginteger | required | original recurring billing plan identifier. required when recurringbillingautorenew = true. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 22 | paymentMethodType | enum | required |
transaction payment method type
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 23 | paymentType | enum | required |
type of payment in the sense of reoccurrence or settlement options.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 24 | processingType | enum | required |
the method of transaction processing. set to “processing” by default.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 25 | recurringBillingRenewalFlag | boolean | required | boolean data type that enables recurring billing renewal option. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 26 | recurringBillingAutoRenew | boolean | required | boolean data type that enables recurring billing auto-renewal option. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 27 | recurringBillingFlag | boolean | required | boolean data type that enables recurring billing service. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 28 | requestType | enum | required |
type of transaction from the perspective of transaction inheritance (first or follow up, using, respectively, the values regular or submit).
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 29 | scrubbingFlag | boolean | required | boolean data type that enables fraud detection service for the transaction. set to false by default. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 30 | serviceRenewalExpiryMethod | enum | optional |
indicated the recurring billing plan renewal expiration method Avaliable Values:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 31 | serviceRenewalExpirymethodAdditionalInfo | string | optional |
varchar (255) additional information about rb plan renewal. required when recurringbillingautorenew = true. note: see code samples for examples in use |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 32 | threeDSecureFlags | enum | required |
additional credit card security option. disabled by default. contact customer service for more information.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 33 | tokenizationFlag | enum | required |
boolean data type that enables tokenization service
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 34 | servicePurchasedType | enum | optional |
mode of purchase
|
| № | Name | Type | Optionality | Description |
| 1 | creditCardExpirationDate | string | optional |
char (4) credit card expiration date. required whenpaymentmethod= creditcard. |
| 2 | creditCardNameOnCard | string | optional |
varchar (100) cardholders name |
| 3 | creditCardType | enum | optional |
credit card type. required when paymentmethod = creditcard Avaliable Values:
|
| 4 | creditCardNumber | string | optional |
varchar (255) credit card number. required when paymentmethod = creditcard |
| 5 | creditCardCVV2 | string | optional |
varchar (4) card verification value. typically featured on the back of the credit card. required when paymentmethod = creditcard always is required for the first transaction. may be required for all transactions (check with your bank). in this case, pass cvv2 with all credit card transactions together with payment method token value. see using payment token code sample for reference. |
| 6 | threeDSecureXId | string | optional |
varchar (28) used in “verified by visa” in conjunction with cavv. base64 encoded. required when threedsecureflags = threedphase3 |
| 7 | threeDSecurecavv | string | optional |
varchar (99) cardholder authentication verification value. this ensures the authenticity of both peers, the server and the client, using digital certificates. base64 encoded. required when threedsecureflags = threedphase3. |
| 8 | threeDSecureeci | string | optional |
varchar (2) electronic commerce indicator (eci) is a value that is returned from the directory server (visa, mastercard, and jcb) to indicate the authentication results of a customer’s credit card payment on 3dsecure. required= when threedsecureflags== threedphase3 |
| № | Name | Type | Optionality | Description | |||||||||
| 1 | achAccountNumber | string | optional |
varchar (128) ach account number. required whenpaymentmethod= ach |
|||||||||
| 2 | achRoutingNumber | string | optional |
varchar (20) the ach routing number is a 9–digit number assigned to financial institutions by the american bankers association (aba) to identify the financial institution upon which a payment was drawn. required when paymentmethod = ach |
|||||||||
| 3 | achCheckNumber | string | optional |
varchar (128) ach check number. required when paymentmethod = ach |
|||||||||
| 4 | achAccountType | enum | optional |
account type (checking or savings). required when paymentmethod = ach
|
|||||||||
| 5 | achEntity | enum | optional |
personal or business account.
|
| № | Name | Type | Description |
| 1 | successFlag | boolean | true if transaction succeeds. otherwise, false. |
| 2 | errorId | integer | if the transaction succeeds, the value of this field is 0. otherwise its value is the id of the external error that caused the transaction failure. |
| 3 | errorInfo | string | varchar (255) additional information related to the error that occurred during the transaction process. the string remains empty if the transaction succeeds. |
| 4 | internalErrorId | integer | if the transaction succeeds the value of this field is 0. otherwise, its value is the id of the internal error that caused the transaction failure. |
| 5 | internalErrorInfo | string | varchar (255) additional information related to the internal error that occurred during the transaction process. the string remains empty if the transaction succeeds. |
| 6 | transactionId | integer | the id of the transaction in the system. |
| 7 | customerOriginatedTxId | string | varchar (255) the id of the transaction at the merchant. |
| 8 | clearingCVVResultIndication | string | varchar (3) if the transaction includes clearing (e.g. a regular transaction), this field holds the cvv result. |
| 9 | clearingAvsResultIndication | string | varchar (3) if the transaction includes clearing, this field holds the avs (address verification service). |
| 10 | fdsPass | boolean | used if the fds service was performed. false in this field indicates that the fde system rejected the transaction. |
| 11 | fdsScore | float | the score received from the fde. |
| 12 | systemBatchNumber | integer | the batchnumber of this transaction in the system of transactions. |
| 13 | instructionType | integer | txinstructiontype of a processed transaction. |
| 14 | txProcessingStartTime | datetime | transaction processing start time. |
| 15 | recurringBillingSuccessFlag | boolean | a parameter indicating the results of setting up a recurring billing plan. |
| 16 | accessManagementSuccessFlag | boolean | a parameter to indicate the results of setting up access management for a user. |
| 17 | paymentMethodToken | string | varchar (255) a token generated by the system. |
| 18 | clearingInternalErrorId | string | varchar (128) clearing (acquirer/processor) internal error identifier. |
| 19 | clearingInternalErrorInfo | string | varchar (255) additional information about the clearing internal error. |
Withdrawal Void (Cancel Authorization) is a Submit Request Transaction Type – meaning that it is based on parent (original) Withdrawal Authorization transaction. Use Withdrawal Void (Cancel Authorization) to cancel your Withdrawal Authorization transaction. You may as well use System Back-Office to manage your payouts.
Endpoints:
REST: /ATPayTxWs.svc/web/SubmitTransaction
{
"AccessManagementFlag":"false",
"AccountID":"System account identifier",
"CurrencyType":"USD",
"CustomerOriginatedTxID":"112345785",
"InstructionType":"CancelAuthorization",
"OperationType":"Credit",
"OriginalTransactionID":"Parent transaction identifier generated by the System",
"OriginalCustomerTxID":"Parent transaction identifier generated by merchant",
"PaymentMethodType":"ACH",
"PaymentType":"Regular",
"ProcessingType":"Withdrawal",
"RecurringBillingFlag":"false",
"RequestType":"Submit",
"ScrubbingFlag":"false",
"SkinID":"System user skin number",
"SubAccountID":"Subaccount Identifier",
"ThreeDSecureFlags":"NoThreeD",
"TokenizationFlag":"NoTokenization"
}
The above command returns response structured like this:
{
"AccessManagementSuccessFlag":"false",
"ClearingAVSResultIndication":"true",
"ClearingCVVResultIndication":"true",
"ClearingInternalErrorID":"0",
"ClearingInternalErrorInfo":"Approved",
"CustomerOriginatedTxID":"316079",
"ErrorID":"0",
"ErrorInfo":"OK",
"FDSPass":"false",
"FDSScore":"0",
"Flags":"0",
"InstructionType":"11",
"InternalErrorID":"0",
"InternalErrorInfo":"OK",
"OriginalTransactionErrorID":"0",
"OriginalTransactionErrorInfo":"true",
"PaymentMethodToken":"c2dd7543-212c-432e-b996-583f550ca72e",
"QueryByMerchantIDErrorID":"0",
"QueryByMerchantIDErrorInfo":"true",
"QueryByMerchantIDSuccessFlag":"false",
"QueryByMerchantIDTransactionID":"0",
"RecurringBillingSuccessFlag":"false",
"SuccessFlag":"true",
"SystemBatchNumber":"1493923",
"TDSPhase1ResponseClientRedirectUrl":"true",
"TDSPhase1ResponseTransactionID":"true",
"TDSPhase2CAVV":"true",
"TDSPhase2ECI":"true",
"TDSPhase2or3ClearingResponseForCAVV":"true",
"TDSXID":"true",
"TransactionID":"1010000000156542",
"TxProcessingStartTime":"2022-01-19T03:16:24"
}
| № | Name | Type | Optionality | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1 | accountId | integer | required | account identifier. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2 | amount | decimal | optional | transaction amount is taken form the original transaction (regular transaction packet) if not populated. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 3 | contractIdatacquirer | string | required | identifier at acquirer. maxlength(30) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 4 | currencytype | enum | required |
transaction currency type identifier Avaliable Values:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5 | customerdatetime | datetime | optional | merchant’s date and time at the moment of the transaction. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 6 | customeroriginatedtxid | string | optional |
varchar (255) transaction identifier by client. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 7 | externalclearinginfo | object | optional | determines clearing processor and clearing processor parameters individually for each processor. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 8 | merchantfreetext | string | optional |
varchar (255) merchant text note. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 9 | originaltransactionid | long | optional |
generated by the system. used for all submit transactions. this indicates the original transaction associated with the submit transaction. must be populated in case originalcustomertrxid is null |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 10 | originalСustomertTrxId | string | optional |
varchar (255) generated by merchant. used for all submit transactions. this indicates the original transaction associated with the submit transaction. must be populated in case originaltransactionid is null
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 11 | subAccountId | integer | required | sub-account identifier. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 12 | threeDSecurePAResponse | string | optional |
maxlength(255) this re-direction process passes back the payment authentication response which is generated by the issuer, and contains information about the result of the check. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 13 | threeDSecureCAVV | string | optional |
varchar (99) cardholder authentication verification value. this ensures the authenticity of both peers, the server and the client, using digital certificates. base64 encoded. required when threedsecureflags =” threedphase3.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 14 | threeDSecureECI | string | optional |
varchar (2) electronic “commerce indicator (eci) is a value that is returned from the directory server (visa, mastercard, and jcb) to indicate the authentication results of a customer’s credit card payment on 3d secure. required when threedsecureflags =” threedphase3.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 15 | threeDSecureXID | string | optional |
varchar (28) used “in “verified by visa” in conjunction with cavv. base64 encoded. required when threedsecureflags =” threedphase3.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 16 | transactionCode | enum | optional |
Avaliable Values:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 17 | accessManagementFlag | boolean | required | boolean data type that enables accessmanagement service. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 18 | instructionType | enum | required |
the type of action the transaction performs
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 19 | operationType | enum | required |
determines the transaction type from the double-entry bookkeeping perspective (debit/credit)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 20 | paymentMethodType | enum | required |
transaction payment method type
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 21 | paymentType | enum | required |
type of payment in the sense of reoccurrence or settlement options.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 22 | processingType | enum | required |
the method of transaction processing. set to “processing” by default.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 23 | recurringBillingFlag | boolean | required | boolean data type that enables recurring billing service. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 24 | requestType | enum | required | type of transaction from the perspective of transaction inheritance
(first or follow up, using, respectively, the values regular or submit).
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 25 | scrubbingFlag | boolean | required | boolean data type that enables fraud detection service for the transaction. set to false by default. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 26 | threeDSecureFlags | enum | required | additional credit card security option. disabled by default.
contact customer service for more information.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 27 | tokenizationFlag | enum | required |
boolean data type that enables tokenization service
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 28 | numberOfTries | integer | optional | determines the transaction retry configuration. set to 1 by default. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 29 | servicePurchasedType | enum | optional |
mode of purchase
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 30 | skinId | integer | required | skin identifier required for user validation purposes. skinid is also known as service provider id. |
| № | Name | Type | Optionality | Description | ||||||||||||||||||||||||||||
| 1 | creditCardExpirationDate | string | optional |
char (4) credit card expiration date. required whenpaymentmethod=” creditcard. |
||||||||||||||||||||||||||||
| 2 | creditCardNameOnCard | string | optional |
varchar (100) cardholders name |
||||||||||||||||||||||||||||
| 3 | creditCardType | enum | optional |
credit card type. required when paymentmethod =” creditcard
|
||||||||||||||||||||||||||||
| 4 | creditCardNumber | string | optional |
varchar (255) credit card number. required when paymentmethod =” creditcard |
||||||||||||||||||||||||||||
| 5 | creditCardCVV2 | string | optional |
varchar (4) card verification value. typically featured on the back of the credit card. required when paymentmethod =” creditcard<br “>always is required for the first transaction. may be required for all transactions (check with your bank). in this case, pass cvv2 with all credit card transactions together with payment method token value. seeusing payment tokencode sample for reference. |
||||||||||||||||||||||||||||
| 6 | threeDSecureXID | string | optional |
varchar (28) used in “verified by visa” in conjunction with cavv. base64 encoded. required when threedsecureflags =” threedphase3 |
||||||||||||||||||||||||||||
| 7 | threeDSecureCAVV | string | optional |
varchar (99) cardholder authentication verification value. this ensures the authenticity of both peers, the server and the client, using digital certificates. base64 encoded. required when threedsecureflags =” threedphase3. |
||||||||||||||||||||||||||||
| 8 | threeDSecureECI | string | optional |
varchar (2) electronic commerce indicator (eci) is a value that is returned from the directory server (visa, mastercard, and jcb) to indicate the authentication results of a customer’s credit card payment on 3dsecure. required=” when “threedsecureflags== threedphase3 |
| № | Name | Type | Optionality | Description | ||||||||
| 1 | achaccountNumber | string | optional |
varchar (128) ach account number. required when paymentmethod =” ach
|
||||||||
| 2 | achRoutingNumber | string | optional |
varchar (20) the “ach routing number is a 9–digit number assigned to financial institutions by the american bankers association (aba) to identify the financial institution upon which a payment was drawn. required when paymentmethod =” ach
|
||||||||
| 3 | achCheckNumber | string | optional |
varchar (128) ach “check number. required when paymentmethod =” ach
|
||||||||
| 4 | achAccountType | enum | optional |
account “type (checking or savings). required when paymentmethod =” ach
|
||||||||
| 5 | achEntity | enum | optional |
personal or business account.
|
| № | Name | Type | Description |
| 1 | successFlag | boolean | true if transaction succeeds. otherwise, false. |
| 2 | errorId | integer | if the transaction succeeds, the value of this field is 0. otherwise its value is the id of the external error that caused the transaction failure. |
| 3 | errorInfo | string |
varchar (255) additional information related to the error that occurred during the transaction process. the string remains empty if the transaction succeeds. |
| 4 | internalErrorId | integer | if the transaction succeeds the value of this field is 0. otherwise, its value is the id of the internal error that caused the transaction failure. |
| 5 | internalErrorInfo | string |
varchar (255) additional information related to the internal error that occurred during the transaction process. the string remains empty if the transaction succeeds. |
| 6 | transactionId | integer | the id of the transaction in the system. |
| 7 | customerOriginatedTxId | string |
varchar (255) the id of the transaction at the merchant. |
| 8 | clearingCVVResultIndication | string |
varchar (3)if the transaction includes clearing (e.g. a regular transaction), this field holds the cvv result. |
| 9 | clearingAVSResultIndication | string |
varchar (3) if the transaction includes clearing, this field holds the avs (address verification service). |
| 10 | FDSPass | boolean | used if the fds service was performed. false in this field indicates that the fde system rejected the transaction. |
| 11 | FDSScore | float | the score received from the fde. |
| 12 | systemBatchNumber | integer | the batchnumber of this transaction in the system of transactions. |
| 13 | instructionType | integer | txinstructiontype of a processed transaction. |
| 14 | txProcessingStartTime | datetime | transaction processing start time. |
| 15 | recurringBillingSuccessFlag | boolean | a parameter indicating the results of setting up a recurring billing plan. |
| 16 | accessManagementSuccessFlag | boolean | a parameter to indicate the results of setting up access management for a user. |
| 17 | paymentMethodToken | string |
varchar (255) a token generated by the system. |
| 18 | clearingInternalErrorId | string |
varchar (128) clearing (acquirer/processor) internal error identifier. |
| 19 | clearingInternalErrorInfo | string |
varchar (255) additional information about the clearing internal error. |
/ATPayTxWs.svc/web/SubmitTransaction {
"AccessManagementFlag":"false",
"AccountID":"System account identifier",
"CurrencyType":"USD",
"CustomerOriginatedTxID":"112345785",
"InstructionType":"Deposit",
"OperationType":"Credit",
"OriginalTransactionID":"Parent transaction identifier generated by the System",
"OriginalCustomerTxID":"Parent transaction identifier generated by merchant",
"PaymentMethodType":"ACH",
"PaymentType":"Regular",
"ProcessingType":"Withdrawal",
"RecurringBillingFlag":"false",
"RequestType":"Submit",
"ScrubbingFlag":"false",
"SkinID":"System user skin number",
"SubAccountID":"Subaccount Identifier",
"ThreeDSecureFlags":"NoThreeD",
"TokenizationFlag":"NoTokenization"
}
The above command returns response structured like this:
{
"AccessManagementSuccessFlag":"false",
"ClearingAVSResultIndication":"true",
"ClearingCVVResultIndication":"true",
"ClearingInternalErrorID":"0",
"ClearingInternalErrorInfo":"true",
"CustomerOriginatedTxID":"316081",
"ErrorID":"0",
"ErrorInfo":"OK",
"FDSPass":"false",
"FDSScore":"0",
"Flags":"0",
"InstructionType":"1",
"InternalErrorID":"0",
"InternalErrorInfo":"OK",
"OriginalTransactionErrorID":"0",
"OriginalTransactionErrorInfo":"true",
"PaymentMethodToken":"07e8ce67-9e3f-411d-bfec-566b2e21ff35",
"QueryByMerchantIDErrorID":"0",
"QueryByMerchantIDErrorInfo":"true",
"QueryByMerchantIDSuccessFlag":"false",
"QueryByMerchantIDTransactionID":"0",
"RecurringBillingSuccessFlag":"false",
"SuccessFlag":"true",
"SystemBatchNumber":"1493959",
"TDSPhase1ResponseClientRedirectUrl":"true",
"TDSPhase1ResponseTransactionID":"true",
"TDSPhase2CAVV":"true",
"TDSPhase2ECI":"true",
"TDSPhase2or3ClearingResponseForCAVV":"true",
"TDSXID":"true",
"TransactionID":"1010000000156923",
"TxProcessingStartTime":"2022-01-19T03:16:24"
}
| № | Name | Type | Optionality | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1 | accountId | integer | required | account identifier. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2 | amount | decimal | required | transaction amount. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 3 | contractIDAtAcquirer | string | required |
identifier at acquirer. maxlength(30) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 4 | currencyType | enum | required |
transaction currency type identifier Avaliable Values:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5 | customerDateTime | datetime | optional | merchant’s date and time at the moment of the transaction. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 6 | customerOriginatedTxBatchNumber | integer | optional | transaction batch identifier by client. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 7 | customerOriginatedTxId | string | optional |
varchar (255) transaction identifier by client.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 8 | errorCode | string | optional |
varchar (50) clearing or internal error code, depending on the predefinederrorid value.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 9 | externalClearingInfo | object | optional | determines clearing processor and clearing processor parameters individually for each processor. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 10 | merchantFreeText | string | optional |
varchar (255) merchant text note.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 11 | originalTransactionId | long | optional |
generated by the system. used for all submit transactions. this indicates the original transaction associated with the submit transaction. must be populated in case originalcustomertrxid is null |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 12 | originalCustomerTrxId | string | optional |
varchar (255) generated by merchant. used for all submit transactions. this indicates the original transaction associated with the submit transaction. must be populated in case originaltransactionid is null
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 13 | subAccountId | integer | required | sub-account identifier. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 14 | threeDSecurePAResponse | string | optional |
maxlength(255) this re-direction process passes back the payment authentication response which is generated by the issuer, and contains information about the result of the check. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 15 | threeDSecureCAVV | string | optional |
varchar (99) cardholder authentication verification value. this ensures the authenticity of both peers, the server and the client, using digital certificates. base64 encoded. required when threedsecureflags =” threedphase3.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 16 | threeDSecureECI | string | optional |
varchar (2) electronic “commerce indicator (eci) is a value that is returned from the directory server (visa, mastercard, and jcb) to indicate the authentication results of a customer’s credit card payment on 3d secure. required when threedsecureflags =” threedphase3.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 17 | threeDSecureXID | string | optional |
varchar (28) used “in “verified by visa” in conjunction with cavv. base64 encoded. required when threedsecureflags =” threedphase3.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 18 | transactionCode | enum | optional |
Avaliable Values:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 19 | accessManagementFlag | boolean | required | boolean data type that enables accessmanagement service. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 20 | instructionType | enum | required |
the type of action the transaction performs
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 21 | operationType | enum | required |
determines the transaction type from the double-entry bookkeeping perspective (debit/credit)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 22 | paymentMethodType | enum | required |
transaction payment method type
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 23 | paymentType | enum | required |
type of payment in the sense of reoccurrence or settlement options.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 24 | processingType | enum | required |
the method of transaction processing. set to “processing” by default.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 25 | recurringBillingFlag | boolean | required | boolean data type that enables recurring billing service. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 26 | requestType | enum | required |
type of transaction from the perspective of transaction inheritance (first or follow up, using, respectively, the values regular or submit).
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 27 | scrubbingFlag | boolean | required | boolean data type that enables fraud detection service for the transaction. set to false by default. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 28 | threeDSecureFlags | enum | required |
additional credit card security option. disabled by default. contact customer service for more information.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 29 | tokenizationFlag | enum | required |
boolean data type that enables tokenization service
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 30 | numberOfTries | integer | optional |
determines the transaction retry configuration. set to 1 by default. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 31 | servicePurchasedType | enum | optional | mode of purchase
|
| № | Name | Type | Optionality | Description | ||||||||||||||||||||||||||||
| 1 | creditCardExpirationDate | string | optional |
char (4) credit card expiration date. required when paymentmethod =” creditcard.
|
||||||||||||||||||||||||||||
| 2 | creditCardNameOnCard | string | optional |
varchar (100) cardholders “name
|
||||||||||||||||||||||||||||
| 3 | creditCardType | enum | optional |
credit card type. required when paymentmethod =” creditcard
|
||||||||||||||||||||||||||||
| 4 | creditCardNumber | string | optional |
varchar (255) credit card number. required when paymentmethod =” creditcard
|
||||||||||||||||||||||||||||
| 5 | creditCardCVV2 | string | optional |
varchar (4) card “verification value. typically featured on the back of the credit card. required when paymentmethod =” creditcard always “is required for the first transaction. may be required for all transactions (check with your bank). in this case, pass cvv2 with all credit card transactions together with payment method token value. see using payment token code sample for reference.
|
||||||||||||||||||||||||||||
| 6 | threeDSSecureXID | string | optional |
varchar (28) used in “verified by visa” in conjunction with cavv. base64 encoded. required when threedsecureflags =” threedphase3
|
||||||||||||||||||||||||||||
| 7 | threeDSecureCAVV | string | optional |
varchar (99) cardholder authentication verification value. this ensures the authenticity of both peers, the server and the client, using digital certificates. base64 encoded. required when threedsecureflags =” threedphase3. |
||||||||||||||||||||||||||||
| 8 | threeDSecureECI | string | optional |
varchar (2) electronic commerce indicator (eci) is a value that is returned from the directory server (visa, mastercard, and jcb) to indicate the authentication results of a customer’s credit card payment on 3dsecure. required=” when “threedsecureflags== threedphase3 |
| № | Name | Type | Optionality | Description | ||||||||
| 1 | achAccountNumber | string | optional |
varchar (128) ach account number. required when paymentmethod =” ach
|
||||||||
| 2 | achRoutingNumber | string | optional |
varchar (20) the “ach routing number is a 9–digit number assigned to financial institutions by the american bankers association (aba) to identify the financial institution upon which a payment was drawn. required when paymentmethod =” ach
|
||||||||
| 3 | achCheckNumber | string | optional |
varchar (128) ach “check number. required when paymentmethod =” ach
|
||||||||
| 4 | achAccountType | enum | optional |
account “type (checking or savings). required when paymentmethod =” ach
|
||||||||
| 5 | achEntity | enum | optional |
personal or business account.
|
| № | Name | Type | Description |
| 1 | successFlag | boolean | true if transaction succeeds. otherwise, false. |
| 2 | erroIId | integer | if the transaction succeeds, the value of this field is 0. otherwise its value is the id of the external error that caused the transaction failure. |
| 3 | errorInfo | string |
varchar (255) additional information related to the error that occurred during the transaction process. the string remains empty if the transaction succeeds. |
| 4 | internalErrorId | integer | if the transaction succeeds the value of this field is 0. otherwise, its value is the id of the internal error that caused the transaction failure. |
| 5 | internalErrorInfo | string |
varchar (255)additional information related to the internal error that occurred during the transaction process. the string remains empty if the transaction succeeds. |
| 6 | transactionId | integer | the id of the transaction in the system. |
| 7 | customerOriginatedTxId | string |
varchar (255) the id of the transaction at the merchant. |
| 8 | clearingCVVResultIndication | string |
varchar (3) if the transaction includes clearing (e.g. a regular transaction), this field holds the cvv result. |
| 9 | clearingAVSResultIndication | string |
varchar (3) if the transaction includes clearing, this field holds the avs (address verification service). |
| 10 | FDSPass | boolean | used if the fds service was performed. false in this field indicates that the fde system rejected the transaction. |
| 11 | FDSScore | float | the score received from the fde. |
| 12 | systemBatchNumber | integer | the batchnumber of this transaction in the system of transactions. |
| 13 | instructionType | integer | txinstructiontype of a processed transaction. |
| 14 | txProcessingStartTime | datetime | transaction processing start time. |
| 15 | recurringBillingSuccessFlag | boolean | a parameter indicating the results of setting up a recurring billing plan. |
| 16 | accessManagementSuccessFlag | boolean | a parameter to indicate the results of setting up access management for a user. |
| 17 | paymentMethodToken | string |
varchar (255)a token generated by the system. |
| 18 | clearingInternalErrorId | string |
varchar (128)clearing (acquirer/processor) internal error identifier. |
| 19 | clearingInternalErrorInfo | string |
varchar (255) additional information about the clearing internal error. |
/ATPayTxWs.svc/web/RegularTransaction {
"AccessManagementFlag":"false",
"AccountID":"System account identifier",
"ACHAccountNumber":"444444498", /* payer information */
"ACHAccountType":"Checking", /* payer information */
"ACHCheckNumber":"AS234", /* payer information */
"ACHRoutingNumber":"12210515544", /* payer information */
"AchEntityType":"Business", /* payer information */
"Amount":"1.00",
"BankAccountNumber":"12334566778", /* payee information */
"BankAddress":"ABC 123",/* payee information */
"BankCode":"GIBASKPX", /* payee information */
"BankIBAN":"12334566778",/* payee information */
"BankName":"Chase", /* payee information */
"BranchCode":"123321", /* payee information */
"CurrencyType":"USD",
"CustomerOriginatedTxID":"9",
"InstructionType":"Deposit",
"OperationType":"Credit", /* OperationType = Credit - required for ProcessingType = Withdrawal */
"PaymentMethodType":"ACH",
"PaymentType":"Regular",
"ProcessingType":"Withdrawal", /* required for payout */
"RecurringBillingFlag":"false",
"RequestType":"Regular",
"ScrubbingFlag":"false",
"SkinID":"System user skin number",
"SvsPayeeAccountNumber":"Sub-Account billing account number",
"SvsPayerAccountNumber":"Payout bank billing account number",
"SwiftCode":"GIBASKPX", /* payee information */
"SubAccountID":"Subaccount Identifier",
"ThreeDSecureFlags":"NoThreeD",
"TokenizationFlag":"NoTokenization"
}
The above command returns response structured like this:
{
"AccessManagementSuccessFlag":"false",
"ClearingAVSResultIndication":"true",
"ClearingCVVResultIndication":"true",
"ClearingInternalErrorID":"0",
"ClearingInternalErrorInfo":"true",
"CustomerOriginatedTxID":"316081",
"ErrorID":"0",
"ErrorInfo":"OK",
"FDSPass":"false",
"FDSScore":"0",
"Flags":"0",
"InstructionType":"1",
"InternalErrorID":"0",
"InternalErrorInfo":"OK",
"OriginalTransactionErrorID":"0",
"OriginalTransactionErrorInfo":"true",
"PaymentMethodToken":"07e8ce67-9e3f-411d-bfec-566b2e21ff35",
"QueryByMerchantIDErrorID":"0",
"QueryByMerchantIDErrorInfo":"true",
"QueryByMerchantIDSuccessFlag":"false",
"QueryByMerchantIDTransactionID":"0",
"RecurringBillingSuccessFlag":"false",
"SuccessFlag":"true",
"SystemBatchNumber":"1493959",
"TDSPhase1ResponseClientRedirectUrl":"true",
"TDSPhase1ResponseTransactionID":"true",
"TDSPhase2CAVV":"true",
"TDSPhase2ECI":"true",
"TDSPhase2or3ClearingResponseForCAVV":"true",
"TDSXID":"true",
"TransactionID":"1010000000156923",
"TxProcessingStartTime":"2022-01-19T03:16:24"
}
| № | Name | Type | Optionality | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1 | accountId | integer | required | account identifier. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2 | amount | decimal | required | transaction amount. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 3 | baseAmount | decimal | optional |
payer amount. populate if different from amount value. nullable amount value is populated if baseamount is null |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 4 | baseCurrencyType | enum | optional |
payer currency type. populate if different from currencytype value type. nullable currencytype value is populated if basecurrencytype is null Avaliable Values:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5 | billingConfigurationInfo | object | optional | billing agreement parameters. pass with the regular transaction packet to override billing agreement settings. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 6 | currencyType | enum | required |
transaction currency type identifier Avaliable Values:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 7 | customerDateTime | datetime | optional | merchant’s date and time at the moment of the transaction. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 8 | customerOriginatedTxId | string | optional |
varchar (255) transaction identifier by client.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 9 | dynamicDescriptor | string | optional |
varchar (255) defines the merchant information appearance on the credit card statement. it can be pre-configured or dynamic; in the latter case, it can be changed per transaction.format: 3 characters + “” (mandatory)+ 1 – 21 characters (mandatory)+ “” + 1 – 13 characters (not mandatory) example: abc*mydescriptor*1800123456
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 10 | externalClearingInfo | object | determines clearing processor and clearing processor parameters individually for each processor. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 11 | merchaItFreeText | string |
varchar (255) merchant text note.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 12 | operatorUserName | string |
varchar (50) user name of the operator who conducted a transaction.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 13 | productid | biginteger | required |
nullable product identifier. default value = 0
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 14 | subAccountId | integer | required | sub-account identifier. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 15 | terminalId | string | varchar (20) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 16 | transactionDescription | string |
varchar (255) free text to describe the transaction.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 17 | transactionCode | enum | optional |
Avaliable Values:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 18 | accessManagementFlag | boolean | required | boolean data type that enables accessmanagement service. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 19 | instructionType | enum | required |
the type of action the transaction performs
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 20 | operationType | enum | required |
determines the transaction type from the double-entry bookkeeping perspective (debit/credit)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 21 | originalRecurringBillingId | biginteger | optional |
original recurring billing plan identifier. required when recurringbillingautorenew = true. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 22 | paymentMethodType | enum | required |
transaction payment method type
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 23 | paymentType | enum | required |
type of payment in the sense of reoccurrence or settlement options.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 24 | processingType | enum | required |
type of payment in the sense of reoccurrence or settlement options.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 25 | recurringBillingRenewalFlag | boolean | required | boolean data type that enables recurring billing renewal option. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 26 | recurringBillingautoRenew | boolean | boolean data type that enables recurring billing auto-renewal option. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 27 | recurringBillingFlag | boolean | required | boolean data type that enables recurring billing service. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 28 | requestType | enum | required |
type of transaction from the perspective of transaction inheritance (first or follow up, using, respectively, the values regular or submit).
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 29 | scrubbingflag | boolean | required | boolean data type that enables fraud detection service for the transaction. set to false by default. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 30 | serviceRenewalExpiryMethod | enum | optional |
indicated the recurring billing plan renewal expiration method
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 31 | serviceRenewalExpiryMethodAdditionalInfo | string | optional |
varchar (255) additional information about rb plan renewal. required when recurringbillingautorenew = true. note: see code samples for examples in use
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 32 | threeDSecureFlags | enum | required |
additional credit card security option. disabled by default. contact customer service for more information.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 33 | tokenizationFlag | enum | required |
boolean data type that enables tokenization service
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 34 | numberOfTries | integer | optional |
determines the transaction retry configuration. set to 1 by default. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 35 | servicePurchasedType | enum | optional | mode of purchase
Avaliable Values:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 36 | skinId | integer | required |
skin identifier required for user validation purposes. skinid is also known as service provider id. |
| № | Name | Type | Optionality | Description | ||||||||
| 1 | achAccounNnumber | string | optional |
varchar (128) ach account number. required when paymentmethod =” ach
|
||||||||
| 2 | achRoutingNumber | string | optional |
varchar (20) the “ach routing number is a 9–digit number assigned to financial institutions by the american bankers association (aba) to identify the financial institution upon which a payment was drawn.required when paymentmethod =” ach
|
||||||||
| 3 | achCheckNumber | string | optional |
varchar (128) ach “check number. required when paymentmethod =” ach
|
||||||||
| 4 | achAccountType | enum | optional |
account “type (checking or savings). required when paymentmethod =” ach
|
||||||||
| 5 | achEntity | enum | optional |
personal or business account.
|
| № | Name | Type | Description |
| 1 | successFlag | boolean | true if transaction succeeds. otherwise, false. |
| 2 | errorId | integer | if the transaction succeeds, the value of this field is 0. otherwise its value is the id of the external error that caused the transaction failure. |
| 3 | errorInfo | string |
varchar (255) additional information related to the error that occurred during the transaction process. the string remains empty if the transaction succeeds. |
| 4 | internalErrorId | integer | if the transaction succeeds the value of this field is 0. otherwise, its value is the id of the internal error that caused the transaction failure. |
| 5 | internalErrorInfo | string |
varchar (255) additional information related to the internal error that occurred during the transaction process. the string remains empty if the transaction succeeds. |
| 6 | transactionId | integer | the id of the transaction in the system. |
| 7 | customerOriginatedTxId | string |
varchar (255) the id of the transaction at the merchant. |
| 8 | clearingCVVResultIndication | string |
varchar (3)if the transaction includes clearing (e.g. a regular transaction), this field holds the cvv result. |
| 9 | clearingAVSResultIndication | string |
varchar (3) if the transaction includes clearing, this field holds the avs (address verification service). |
| 10 | FDSPass | boolean | used if the fds service was performed. false in this field indicates that the fde system rejected the transaction. |
| 11 | FDSScore | float | the score received from the fde. |
| 12 | systemBatchNumber | integer | the batchnumber of this transaction in the system of transactions. |
| 13 | instructionType | integer | txinstructiontype of a processed transaction. |
| 14 | txProcessingStartTime | datetime | transaction processing start time. |
| 15 | recurringBillingSuccessFlag | boolean | a parameter indicating the results of setting up a recurring billing plan. |
| 16 | accessManagementSuccessFlag | boolean | a parameter to indicate the results of setting up access management for a user. |
| 17 | paymentMethodToken | string |
varchar (255) a token generated by the system. |
| 18 | clearinginternalerrorid | string |
varchar (128) clearing (acquirer/processor) internal error identifier. |
| 19 | clearingInternalErrorInfo | string |
varchar (255) additional information about the clearing internal error. |
{
"CreationTime": "2022-01-11T17:53:54",
"AccountID": "201",
"SubAccountID": "1",
"CommissionFeeTypeID": "26",
"CommissionFeeTypeDescription": "Installment Fee",
"Amount": "10.00",
"Currency": "USD",
"CurrencySymbol": "$",
"AccountName": "New Name",
"SubAccountName": "Sub-AccountID - Sub-Account Name",
"TransactionID": "2010000000252204",
"ValueDate": "2022-01-11T17:53:54",
"AccountData": "201.1",
"SourceActivityErrorID": "0"
}
Reports API
ReportsApi is the RESTfull service that allows you to retrieve report data in supported formats (application/json, application/xml).
Reports API grabs specific request parameters directly from the URL.
Use Get method to inquire a specific report.
Making API Calls
To pass the report service authorization, send login and password in the Authorization transaction request header.
To call the method – enter URL address of controller with values of filter and other parameters.
Controller will process incoming request with parameters and return response with requested report in XML or JSON format.
URL format:
http://host/application/controller_name?parameter1=value¶meter2&..¶meterN=value
Request Example:
https://reports-api.4levers.com/api/Reports/account-balances?DateFrom=2019-07-23&DateTo=2019-07-24
Service Response:
Service returns response in JSON format. See attached Json code snippet.
URLs:
REST Sandbox URL: https://sandbox.4levers.com/NewReportsApi
REST Production URL: https://reports-api.4levers.com
REST Sandbox URL: https://sandbox.4levers.com/NewReportsApi/api/Reports/account-balances
REST Production URL: https://reports-api.4levers.com/api/Reports/account-balances
Account Balance is a fundamental high-level report. Account Balance report displays the current state of your Sub-Account balance, a complete high-level overview of all the Sub-Account incoming settlements, outgoing payouts, reserve balance and other fees for a selected time range.
This report allows to control your Sub-Account completed and pending payouts and get the current and pending Sub-Account balances.
GET: https://reports-api.4levers.com/api/Reports/account-balances?DateFrom=2020-12-10&DateTo=2020-12-22&Accounts={accountId}&SubAccounts={subAccountId}&Take=5
| № | Name | Type | Optionality | Description |
| 1 | dateFrom | datetime | required | determines the selection starting/ending time range |
| 2 | dateTo | datetime | required | |
| 3 | serviceProviders | integer/array | optional | enter your service provider id(s) |
| 4 | operators | integer/array | optional | enter your operator id(s) |
| 5 | accounts | integer/array | optional | enter your platform account id(s) |
| 6 | subAccounts | string/array | optional | enter your sub-account id(s) |
| 7 | skip | integer/array | optional | these parameters determine which records will be displayed in the report based on specified index number. to get from fifth to twentieth record specify skip = 4 and take = 16 |
| 8 | take | integer/array | optional |
[
{
"date": "2020-05-17T00:00:00",
"description": "Current Account Balance",
"reference": "20200517",
"amount": "1.000000",
"balance": "859.570000",
"currency": "USD",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Reserve Release Never"
},
{
"date": "2020-05-17T00:00:00",
"description": "Current Reserve Balance",
"reference": "20200517",
"amount": "2.000000",
"balance": "500.200000",
"currency": "USD",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Reserve Release Never"
},
{
"date": "2019-10-10T01:59:58",
"description": "Daily Settlement Amount",
"reference": "20191010",
"amount": "20.000000",
"balance": "810.000000",
"currency": "USD",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Reserve Release Never"
}
]
| № | Name | Description |
| 1 | date | system date and time |
| 2 | Description | balance record description |
| 3 | reference | balance record reference number |
| 4 | amount | balance record amount |
| 5 | balance | total balance on a specific date |
| 6 | currency | code of the transaction currency |
| 7 | subAccount | sub-account identifier |
| 8 | platformAccount | platform account name |
https://sandbox.4levers.com/NewReportsApi/api/Reports/payout-transactions
REST Production URL: https://reports-api.4levers.com/api/Reports/payout-transactions
Payouts report provides access to all your Sub-Account payouts history.
The output payout report contains a detailed information about payouts for a selected time range.
https://reports-api.4levers.com/api/Reports/payout-transactions?DateFrom=2020-12-10&DateTo=2020-12-22&DateRangeType=CreationDate&PayoutMethod=ACH&Currencies=USD&Take=5
| № | Name | Type | Optionality | Description | ||||||||||
| 1 | dateFrom | datetime | required | determines the selection starting/ending time range | ||||||||||
| 2 | dateTo | datetime | required | |||||||||||
| 3 | dateRangeType | enum | optional |
specify the date range type: Avaliable Values:
|
||||||||||
| 4 | payoutNtatus | enum | optional |
transaction processing status: Avaliable Values:
|
||||||||||
| 5 | payoutId | integer | optional | payout transaction identifier | ||||||||||
| 6 | payoutNameDescriptor | string | optional | report is queried by both the payout name and the descriptor value | ||||||||||
| 7 | payoutMethod | enum | optional |
specify the payment method of the payout
|
||||||||||
| 8 | payoutType | enum | optional |
specify the payout type
|
||||||||||
| 9 | amountFrom | number | optional | enter payout bottom amount | ||||||||||
| 10 | amountTo | number | optional | enter payout top amount | ||||||||||
| 11 | currencies | enum | optional |
enter an array of currency type ids to filter sub-accounts by Avaliable Values:
|
||||||||||
| 12 | serviceProviders | integer/array | optional | enter your service provider id(s) | ||||||||||
| 13 | operators | integer/array | optional | enter your operator id(s) | ||||||||||
| 14 | accounts | integer/array | optional | enter your platform account id(s) | ||||||||||
| 15 | subAccounts | string/array | optional | enter your sub-account id(s) | ||||||||||
| 16 | skip | integer | optional |
these parameters determine which records will be displayed in the report based on specified index number. to get from fifth to twentieth record specify skip =” 4 “and take = 16 |
||||||||||
| 17 | take | integer | optional |
[
{
"payoutId": "211000000001726000",
"creationDate": "2019-10-18T12:28:54.553",
"modificationDate": "2019-10-20T22:14:49.16",
"payoutMethod": "ACH",
"payoutType": "PayoutOnDemand",
"amount": "10.00",
"currency": "USD",
"payoutName": "",
"payoutDescriptor": "122132fsdfsdgsdgsgsgsgs",
"status": "Processed",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Platform Account Name",
"performedBy": "username"
},
{
"payoutId": "322000000001731130",
"creationDate": "2019-10-20T21:50:38.87",
"modificationDate": "2019-10-20T21:51:14.923",
"payoutMethod": "ACH",
"payoutType": "PayoutOnDemand",
"amount": "5.00",
"currency": "USD",
"payoutName": "New Payout",
"payoutDescriptor": "",
"status": "Canceled",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Platform Account Name",
"performedBy": "username"
}
]
| № | Name | Description |
| 1 | payoutId | payout identifier |
| 2 | creatIondate | creation date and time |
| 3 | modificationDate | payout modification date and time |
| 4 | payoutMethod | payout payment method.paymentmethod=creditcardin case a negative payout has been processed using card on file instructions. |
| 5 | payoutType | payout type |
| 6 | amount | transaction amount |
| 7 | currency | transaction currency |
| 8 | payoutName | name of the payout |
| 9 | payoutDescriptor | transaction.dynamicdescriptor values |
| 10 | status | transaction status |
| 11 | subAccount | sub-account identifier |
| 12 | platformAccount | platform account name |
| 13 | performedBy | user created the record |
https://sandbox.4levers.com/NewReportsApi/api/Reports/payouts-reconciliation
REST Production URL: https://reports-api.4levers.com/api/Reports/payouts-reconciliation
Payouts Reconciliation report displays detailed payout information in one place according to the selected timeframe.
https://reports-api.4levers.com/api/Reports/payouts-reconciliation?DateFrom=2020-12-10&DateTo=2020-12-22&PayoutMethod=ACH&Currencies=USD&Take=5
| № | Name | Type | Optionality | Description | ||||||
| 1 | dateFrom | datetime | required | determines the selection starting/ending time range | ||||||
| 2 | dateTo | datetime | required | |||||||
| 3 | dateRangeType | enum | optional |
specify the date range type Avaliable Values:
|
||||||
| 4 | payoutStatus | enum | optional |
transaction processing status Avaliable Values:
|
||||||
| 5 | payoutId | integer | optional | payout transaction identifier | ||||||
| 6 | payoutNameDescriptor | string | optional | report is queried by both the payout name and the descriptor value | ||||||
| 7 | payoutMethod | enum | optional |
specify the payment method of the payout Avaliable Values:
|
||||||
| 8 | payoutType | enum | optional |
specify the payout type
|
||||||
| 9 | amountFrom | number | optional | enter payout bottom amount | ||||||
| 10 | amountTo | number | optional | enter payout top amount | ||||||
| 11 | currencies | enum | optional |
enter an array of currency type ids to filter sub-accounts by Avaliable Values:
|
||||||
| 12 | transactionId | integer (int64) | optional | transaction identifier | ||||||
| 13 | merchantTransactionId | string | optional | transaction identifier per merchant | ||||||
| 14 | serviceProviders | integer/array | optional | enter your service provider id(s) | ||||||
| 15 | operators | integer/array | optional | enter your operator id(s) | ||||||
| 16 | accounts | integer/array | optional | enter your platform account id(s) | ||||||
| 17 | subAccounts | string/array | optional | enter your sub-account id(s) | ||||||
| 18 | skip | integer | optional |
these parameters determine which records will be displayed in the report based on specified index number. to get from fifth to twentieth record specify skip = 4 and take = 16 |
||||||
| 19 | take | integer | optional |
[
{
"payoutId": "1046001101825861923",
"payoutProcessDate": "2021-08-12T10:34:12",
"payoutRejectOrReturnDate": "",
"payoutType": "Percentage",
"payoutName": "New Payout",
"payoutDescriptor": "122132fsdfsdgsdgsgsgsgs",
"payoutMethod": "ACH",
"payoutAmount": "10.00",
"status": "Processed",
"processor": "CIBC",
"performedBy": "username",
"activityType": "Reserve Fee",
"settlementDate": "2021-08-12T09:59:59",
"transactionId": "101000000004431070",
"merchantTransactionId": "108",
"processorTransactionId": "22d0b6e9-7e4d-4a4b-ad42-23d693069f92",
"transactionSystemDate": "2021-08-11T10:33:59",
"transactionMerchantDate": "2021-08-11T10:33:56",
"transactionProcessorDate": "",
"transactionType": "Payout",
"transactionPaymentMethod": "ACH",
"transactionAmount": "",
"transactionProcessor": "",
"feeName": "ReserveBalance",
"feeGroupName": "Stand-Alone",
"feeType": "Per Transaction Fee",
"feeCategory": "Fee",
"feeAmount": "1.00",
"feeTarget": "Reserve Balance",
"feeSource": "Reserve Balance",
"collectionDate": "",
"releaseDate": "",
"releaseType": "",
"releaseAmount": "",
"adjustmentId": "",
"adjustmentDate": "",
"adjustmentCategory": "",
"adjustmentType": "",
"adjustmentName": "",
"adjustmentPaymentMethod": "",
"adjustmentValue": "",
"adjustmentStatus": "",
"payoutValue": "",
"percentageLimit": "",
"percentageLimitAdjustmentValue": "",
"adjustmentAmount": "",
"activityAmount": "1.00",
"currency": "CAD",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Platform Account Name"
}
]
| № | Name | Description |
| 1 | payoutId | payout identifier |
| 2 | payoutProcessDate | date when payout was processed |
| 3 | payoutRejectOrReturnDate | date when payout was rejected by processor |
| 4 | payoutType | payout type |
| 5 | payoutName | name of the payout |
| 6 | payoutDescriptor | transaction.dynamicdescriptor values |
| 7 | payoutMethod | payout payment method.paymentmethod=creditcardin case a negative payout has been processed using card on file instructions. |
| 8 | payoutAmount | transaction amount |
| 9 | payoutStatus | transaction status |
| 10 | payoutProcessor | payout processor |
| 11 |
payoutPerformedBy |
user created the record |
| 12 | activityType | activity type. Available Values: Sale, Credit, Chargeback, Outgoing Fee, Interchange Fee, Reserve Fee, Incoming Fee, Reserve Release, Balance Adjustment, Payout Adjustment, Payout on Demand |
| 13 | settlementDate | settlement date |
| 14 | transactionId | transaction identifier |
| 15 | merchantTransactionId | transaction identifier per merchant |
| 16 | processorTransactionId | transaction identifier per processor |
| 17 | transactionSystemDate | system date of the transaction |
| 18 | transactionMerchantDate | merchant date of the transaction |
| 19 | transactionProcessorDate | processor date of the transaction |
| 20 | transactionType | type of the transaction |
| 21 | transactionPaymentMethod |
Payment Method of the transaction.
Available values:
|
| 22 | traGsactionAmount | transaction amount |
| 23 | transactionProcessor | transaction processor name |
| 24 | feeName | fee name |
| 25 | feeGroupName | fee group name |
| 26 | feeType | fee type |
| 27 | feeCategory | fee category |
| 28 | feeAmount | fee amount |
| 29 | feeTarget | fee target |
| 30 | feeSource | fee source |
| 31 | collectionDate | date when the fee was applied |
| 32 | reserveReleaseDate | release date |
| 33 | reserveReleaseType | release type. available values: scheduled, manual. |
| 34 | reserveReleaseAmount | release amount |
| 35 | adjustmentId | adjustment id |
| 36 | adjustmentDate | adjustment date |
| 37 | adjustmentСategory | adjustment category |
| 38 | adjustmentType | adjustment type |
| 39 | adjustmentName | adjustment name |
| 40 | adjustmentPaymentMethod | adjustment payment method |
| 41 | adjustmenValue | adjustment amount |
| 42 | adjustmentStatus | adjustment status |
| 43 | payoutValue | payout value |
| 44 | percentageLimit | percentage limit |
| 45 | percentageLimitAdjustmentValue | percentage limit adjustment value |
| 46 | adjustmentAmount | adjustment amount |
| 47 | activityAmount | depending on activity type it is one of the following values: transaction amount, fee amount, release amount, adjustment amount, payout amount |
| 48 | currency | transaction currency |
| 49 | subAccount | sub-account identifier |
| 50 | platformAccount | platform account name |
https://sandbox.4levers.com/NewReportsApi/api/Reports/settlements
REST Production URL: https://reports-api.4levers.com/api/Reports/settlements
Settlement is the net calculated transfer amount from Buyers to Merchants (Sellers).
Transactions (sales) (credit card and/or ACH or other sales) generate a positive settlement balance.
Debit transactions (refunds, chargebacks and fees) generate a negative settlement balance.
Settlements report provides your Sub-Account settlement balance breakdown:
Settlement Balance = Sales – Refunds- Chargebacks – Fees
Settlement balance shows the Sub-Account net liquidity balance. You can use it to determine whether your Sub-Account has a positive or negative trade balance on a specific date or for a specific period.
https://reports-api.4levers.com/api/Reports/settlements?ReportPeriodType=Monthly&Processors={processorId}&DateFrom=2020-12-10&DateTo=2020-12-22&Currencies=USD&Take=5
| № | Name | Type | Optionality | Description |
| 1 | datefrom | datetime | required | determines the selection starting/ending time range |
| 2 | dateto | datetime | required | determines the selection starting/ending time range |
| 3 | reportperiodtype | enum | optional |
select the output period for the report Avaliable Values:
|
| 4 | processors | string/array | optional | clearing processor name(s) |
| 5 | serviceproviders | integer/array | optional | enter your service provider id(s) |
| 6 | operators | integer/array | optional | enter your operator id(s) |
| 7 | accounts | integer/array | optional | enter your platform account id(s) |
| 8 | subaccounts | string/array | optional | enter your sub-account id(s) |
| 9 | skip | integer | optional |
these parameters determine which records will be displayed in the report based on specified index number. to get from fifth to twentieth record specify skip = 4 and take = 16
|
| 10 | take | integer | optional |
these parameters determine which records will be displayed in the report based on specified index number. to get from fifth to twentieth record specify skip = 4 and take = 16
|
| 11 | currencies | enum | optional |
enter currency type ids to filter sub-account by Avaliable Values:
|
[
{
"date": "2019-09-10T00:00:00",
"numberOfSales": "30",
"amountOfSales": "30.00",
"numberOfCredits": "16",
"amountOfCredits": "16.00",
"numberOfChargebacks": "1",
"amountOfChargebacks": "1.00",
"outgoingFees": "0.500000",
"interchangeFees": "0.000000",
"reserveFees": "0.000000",
"incomingFees": "0.000000",
"amountOfSettlement": "-0.500000",
"currency": "USD",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Platform Account Name"
},
{
"date": "2019-09-10T00:00:00",
"numberOfSales": "1",
"amountOfSales": "10.00",
"numberOfCredits": "0",
"amountOfCredits": "0.00",
"numberOfChargebacks": "0",
"amountOfChargebacks": "0.00",
"outgoingFees": "0.500000",
"interchangeFees": "0.000000",
"reserveFees": "0.000000",
"incomingFees": "0.000000",
"amountOfSettlement": "-0.500000",
"currency": "USD",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Platform Account Name"
}
]
| № | Name | Description |
| 1 | date | system date and time |
| 2 | numberofsales | deposit (sale) transactions count |
| 3 | amountofsales | deposit (sale) transactions overall amount |
| 4 | numberofcredits | credit transactions count |
| 5 | amountofcredits | overall amount of credit transactions |
| 6 | numberofchargebacks | chargebacks transactions count |
| 7 | amountofchargebacks | overall amount of chargebacks transactions |
| 8 | outgoingfees | outgoing fees amount |
| 9 | interchangefees | interchange fees amount |
| 10 | reservefees | reserve balance fees amount |
| 11 | incomingfees | incoming fees amount |
| 12 | amountofsettlement |
total settlements amount. settlement balance = sales – refunds- chargebacks – fees. |
| 13 | currency | transaction currency |
| 14 | subaccount | sub-account identifier |
| 15 | platformaccount | platform account name |
https://sandbox.4levers.com/NewReportsApi/api/Reports/account-summary
REST Production URL: https://reports-api.4levers.com/api/Reports/account-summary
Account Summary Report provides count and volumes of successful/declined transactions (Authorization, Charge, Void, Partial Void, Capture, Partial Capture, Refund, Partial Refund, Credit, Cancel) and approval rates for a selected time period.
https://reports-api.4levers.com/api/Reports/account-summary?DateFrom=2020-12-10&DateTo=2020-12-22&DateRangeType=SystemDate&ReportPeriodType=Daily&Currencies=USD&Accounts={accountId}&SubAccounts={subAccountId}
| № | Name | Type | Optionality | Description |
| 1 | datefrom | datetime | required | determines the selection starting/ending time range |
| 2 | dateto | datetime | required | determines the selection starting/ending time range |
| 3 | daterangetype | enum | optional |
select the output period for the report Avaliable Values:
|
| 4 | processors | string/array | optional | specify your processor(s) |
| 5 | reportperiodtype | enum | optional |
select the output period for the report Avaliable Values:
|
| 6 | serviceproviders | integer/array | optional | enter your service provider id(s) |
| 7 | operators | integer/array | optional | enter your operator id(s) |
| 8 | accounts | integer/array | optional | enter your platform account id(s) |
| 9 | subaccounts | string/array | optional | enter your sub-account id(s) |
| 10 | skip | integer | optional |
these parameters determine which records will be displayed in the report based on specified index number. to get from fifth to twentieth record specify skip = 4 and take = 16 |
| 11 | take | integer | optional |
these parameters determine which records will be displayed in the report based on specified index number. to get from fifth to twentieth record specify skip = 4 and take = 16 |
| 12 | currencies | enum | optional |
enter currency type ids to filter sub-account by Avaliable Values:
|
[
{
"date": "2020-07-14T00:00:00",
"transactionType": "Capture",
"numberOfSuccessful": "2",
"amountOfSuccessful": "20.00",
"numberOfDeclined": "0",
"amountOfDeclined": "0.00",
"approvalRatebyNumber": "100.00",
"approvalRatebyAmount": "100.00",
"currency": "USD",
"subAccount": "Sub-Account Id",
"platformAccount": "Platform Account Id"
},
{
"date": "2020-07-14T00:00:00",
"transactionType": "Partial Capture",
"numberOfSuccessful": "3",
"amountOfSuccessful": "100.00",
"numberOfDeclined": "3",
"amountOfDeclined": "2.00",
"approvalRatebyNumber": "100.00",
"approvalRatebyAmount": "100.00",
"currency": "USD",
"subAccount": "Sub-Account Id",
"platformAccount": "Platform Account Id"
}
]
| № | Name | Description |
| 1 | date | record date and time |
| 2 | transactiontype | transaction type |
| 3 | numberofsuccessful | number of successful transactions of the specific transaction type. |
| 4 | amountofsuccessful | amount of successful transactions of the specific transaction type. |
| 5 | numberofdeclined | number of declined transactions of the specific transaction type |
| 6 | amountofdeclined | amount of declined transaction of the specific transaction type |
| 7 | approvalratebynumber | the percentage of successful from [successful + declined] |
| 8 | approvalratebyamount | the percentage of successful from [successful + declined] |
| 9 | currency | transactions currency |
| 10 | subaccount | sub-account identifier |
| 11 | platformaccount | platform account name |
https://sandbox.4levers.com/NewReportsApi/api/Reports/transactions-summary
REST Production URL: https://reports-api.4levers.com/api/Reports/transactions-summary
Transactions Summary Report provides Sales, Credits and Chargebacks transaction summary and payment method details for the selected time range and system entity.
Sales – Charges, Captures, Partial Captures.Credits – Credits, Refunds, Partial Refunds, Cancels.Chargebacks – Chargebacks, Reversals.Amount of Chargebacks – Amount of Chargebacks – Amount of Reversals.Total Amount - Sales - Credits - Chargebacks. Can have both positive and negative values.
https://reports-api.4levers.com/api/Reports/transactions-summary?DateFrom=2020-12-10&DateTo=2020-12-22&DateRangeType=SystemDate&Processors={processorId}&ReportPeriodType=Monthly&Currencies=USD&Accounts={accountId}&SubAccounts={subAccountId}&Take=5
| № | Name | Type | Optionality | Description |
| 1 | datefrom | datetime | required | determines the selection starting/ending time range |
| 2 | dateto | datetime | required | |
| 3 | daterangetype | enum | optional |
select the output period for the report Avaliable Values:
|
| 4 | processors | integer/array | optional |
enter your processor id(s) |
| 5 | reportperiodtype | enum | optional |
select the output period for the report Avaliable Values:
|
| 6 | serviceproviders | integer/array | optional | enter your service provider id(s) |
| 7 | operators | integer/array | optional | enter your operator id(s) |
| 8 | accounts | integer/array | optional | enter your platform account id(s) |
| 9 | subaccounts | string/array | optional | enter your sub-account id(s) |
| 10 | skip | integer | optional |
these parameters determine which records will be displayed in the report based on specified index number. to get from fifth to twentieth record specify skip = 4 and take = 16 |
| 11 | take | integer | optional | |
| 12 | currencies | enum | optional |
enter currency type ids to filter sub-account by Avaliable Values:
|
[
{
"date": "2020-07-01T00:00:00",
"paymentMethod": "Visa",
"numberOfSales": "308",
"amountOfSales": "20.00",
"numberOfCredits": "18",
"amountOfCredits": "20.00",
"numberOfChargebacks": "15",
"amountOfChargebacks": "10.00",
"totalAmount": "50.00",
"currency": "USD",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Platform Account Name"
},
{
"date": "2020-07-01T00:00:00",
"paymentMethod": "Visa",
"numberOfSales": "10",
"amountOfSales": "10.00",
"numberOfCredits": "50",
"amountOfCredits": "30.00",
"numberOfChargebacks": "15",
"amountOfChargebacks": "10.00",
"totalAmount": "50.00",
"currency": "USD",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Platform Account Name"
}
]
| № | Name | Description |
| 1 | date | record date and time |
| 2 | paymentmethod | transactions payment method |
| 3 | numberofsales | number of charges, captures, partial captures |
| 4 | amountofsales | amount of charges, captures, partial captures |
| 5 | numberofcredits | number of credit, refund, partial refund, cancel |
| 6 | amountofcredits | amount of credit, refund, partial refund, cancel |
| 7 | numberofchargebacks | number of chargebacks, reversals |
| 8 | amountofchargebacks | amount of chargebacks, reversals |
| 9 | totalamount | sales minus credits minus chargebacks |
| 10 | currency | transactions currency |
| 11 | subaccount | sub-account identifier |
| 12 | platformaccount | platform account name |
https://sandbox.4levers.com/NewReportsApi/api/Reports/transactions
REST Production URL: https://reports-api.4levers.com/api/Reports/transactions
Transactions report provides detailed information on real-time and history transactions for a specific Sub-Account and time range.
https://reports-api.4levers.com/api/Reports/transactions?DateFrom=2019-07-23&DateTo=2019-07-24
| № | Name | Type | Optionality | Description |
| 1 | datefrom | datetime | required | determines the selection starting/ending time range |
| 2 | dateto | datetime | required | |
| 3 | entrymode | array integer | optional |
nullable transaction entry mode(s) numerical value. |
| 4 | status | enum | optional |
transaction processing status Avaliable Values:
|
| 5 | daterangetype | enum | optional |
specify the date range type Avaliable Values:
|
| 6 | transactionid | integer (int64) | optional | transaction identifier |
| 7 | displayrelatedtransactions | bool | optional | choose true to display related transactions |
| 8 | merchanttransactionid | string | optional | transaction identifier per merchant |
| 9 | processors | string array | optional | specify one or more acquiring companies |
| 10 | processortransactionid | string | optional | transaction identifier per processor |
| 11 | processorauthorizationcode | string | optional | processor authorization code if applicable |
| 12 | paymentmethods | enum | optional |
specify the payment method required in case credit card is populated. Avaliable Values:
|
| 13 | creditcards | enum | optional |
specify a credit card type Avaliable Values:
|
| 14 | transactiontype | enum | optional |
specify a transaction type Avaliable Values:
|
| 15 | paymenttypes | enum | optional |
specify a payment type Avaliable Values:
|
| 16 | CCAccountOwnerName | string | optional | specify the name on the platform account |
| 17 | CCAccountNumber | string | optional | specify the platform account number |
| 18 | bin | string | optional |
credit card bank identification number. first 6 digits of the credit card number. |
| 19 | last4 | string | optional | last 4 digits of the credit card number |
| 20 | serviceproviders | integer/array | optional | enter your service provider id(s) |
| 21 | operators | integer/array | optional | enter your operator id(s) |
| 22 | accounts | integer/array | optional | enter your platform account id(s) |
| 23 | subaccounts | string/array | optional | enter your sub-account id(s) |
| 24 | skip | integer | optional |
these parameters determine which records will be displayed in the report based on specified index number. to get from fifth to twentieth record specify skip = 4 and take = 16 |
| 25 | take | integer | optional | |
| 26 | currencies | enum | optional |
enter currency type ids to filter sub-account by Avaliable Values:
|
| 27 | amountfrom | number | optional | amount range starting value |
| 28 | amountto | number | optional | amount range ending value |
[
{
"transactionId": "101000000004431070",
"merchantTransactionId": "108",
"processorTransactionId": "22d0b6e9-7e4d-4a4b-ad42-23d693069f92",
"systemDate": "2019-10-19T15:32:23.29",
"settlementDate": "2020-05-04T23:59:59",
"merchantDate": "",
"paymentMethod": "Visa",
"CCOrAccountNumber": "411111******1111",
"CCExpirationDate": "12/20",
"token": "15facb01-4b25-4511-b5f0-0a083e48857b",
"CCorAccountOwnerName": "Eleanor Johnson",
"amount": "100.00",
"currency": "USD",
"transactionType": "Capture",
"status": "Processed",
"processor": "Processor Name",
"authorizationCode": "",
"errorDescription": "OK",
"chargebackReason": "75",
"chargebackReasonDescription": "",
"chargebackDisputeDate": "2011-04-07T00:00:00",
"terminalId": "",
"servicePurchasedType": "RegularTransaction",
"transactionDescription": "Transaction Description",
"merchantFreeText": "Merchant Free Text",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Platform Account Name",
"performedBy": "username",
"entryMode": "0-Unknown",
"billingAddressAddressLine": "Address",
"billingAddressСity": "Сity",
"billingAddressСountry": "Сountry",
"billingAddressEmail": "emeil@example.com",
"billingAddressState": "FL",
"billingAddressPhoneNumber": "Phone number",
"billingAddressZipPostalCode": "ZipPostalCode"
},
{
"transactionId": "111000000001731070",
"merchantTransactionId": "107",
"processorTransactionId": "71d0b6e9-7e4d-4a4b-ad42-11d693069f92",
"systemDate": "2019-10-19T15:31:50.553",
"settlementDate": "2020-05-04T23:59:59",
"merchantDate": "",
"paymentMethod": "Visa",
"CCOrAccountNumber": "411111******1111",
"CCExpirationDate": "12/20",
"token": "15facb01-4b25-4113-b5f0-0a083e48857b",
"CCorAccountOwnerName": "Eleanor Johnson",
"amount": "100.00",
"currency": "USD",
"transactionType": "Authorization",
"status": "Processed",
"processor": "Processor Name",
"authorizationCode": "50b44d11-e97f-48fb-8654-c978d3abe36b",
"errorDescription": "OK",
"chargebackReason": "",
"chargebackReasonDescription": "",
"chargebackDisputeDate": "2011-04-07T00:00:00",
"terminalId": "",
"servicePurchasedType": "RegularTransaction",
"transactionDescription": "Transaction Description",
"merchantFreeText": "Merchant Free Text",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Platform Account Name",
"performedBy": "username",
"entryMode": "0-Unknown",
"billingAddressAddressLine": "Address",
"billingAddressСity": "Сity",
"billingAddressСountry": "Сountry",
"billingAddressEmail": "emeil@example.com",
"billingAddressState": "FL",
"billingAddressPhoneNumber": "Phone number",
"billingAddressZipPostalCode": "ZipPostalCode"
}
]
| № | Name | Description |
| 1 | transactionid | transaction identifier (e.g. authorization transaction identifier) |
| 2 | merchanttransactionid | transaction identifier by merchant |
| 3 | processortransactionid | transaction identifier by processor |
| 4 | systemdate | transaction processing date and time |
| 5 | settlementdate | transaction settlement date and time |
| 6 | merchantdate | transaction processing date and time by merchant |
| 7 | paymentmethod | payment method: ach, credit card or gift card type. |
| 8 | ccoraccountnumber | credit card number or bank account number in case of an ach |
| 9 | ccexpirationdate | credit card expiration date |
| 10 | token | payment method token |
| 11 | CCorAccountOwnerName | name on credit card number or bank account in case of an ach |
| 12 | amount | transaction amount |
| 13 | currency | transaction currency |
| 14 | transactiotype | type of the transaction |
| 15 | status | transaction status |
| 16 | processor | name of the processor |
| 17 | authorizationcode | code of the authorization |
| 18 | errordescription | description of an error |
| 19 | chargebackreason | chargeback reason code |
| 20 | chargebackreasondescription | chargeback reason description |
| 21 | chargebackdisputedate | chargeback dispute date |
| 22 | terminalid | clearing terminal identifier |
| 23 | servicepurchasedtype | service purchased type |
| 24 | transactiondescription | description of the transaction |
| 25 | merchantfreetext | merchant comment on the transaction |
| 26 | subaccount | sub-account identifier |
| 27 | platformaccount | platform account name |
| 28 | performedby | user created the record |
| 29 | entrymode |
nullable transaction entry mode(s) numerical value. |
https://sandbox.4levers.com/NewReportsApi/api/Reports/fees-summary
REST Production URL: https://reports-api.4levers.com/api/Reports/fees-summary
Fees Summary report provides a complete overview of all the fees that have been processed on your Sub-Account on a specific date.
Fees Summary report displays incoming fees for transactions processed by the same Sub-Account, as the fee target Sub-Account.
https://reports-api.4levers.com/api/Reports/fees-summary?DateFrom=2019-07-23&DateTo=2019-07-24
| № | Name | Type | Optionality | Description |
| 1 | datefrom | datetime | required | determines the selection starting/ending time range |
| 2 | dateto | datetime | required | |
| 3 | feeid | integer/array | optional | enter your fee id(s) |
| 4 | feegroupid | integer/array | optional | enter your fee group id(s) |
| 5 | feetype | enum | optional |
select fee type to output in the report Avaliable Values:
|
| 6 | feecategory | enum | optional |
nullable fee categories Avaliable Values:
|
| 7 | processors | string/array | optional | clearing acquirer name(s) |
| 8 | feetargets | enum | optional |
specify the fee recipient Avaliable Values:
|
| 9 | serviceproviders | integer/array | optional | enter your service provider id(s) |
| 10 | operators | integer/array | optional | enter your operator id(s) |
| 11 | accounts | integer/array | optional | enter your platform account id(s) |
| 12 | subaccounts | string/array | optional | enter your sub-account id(s) |
| 13 | skip | integer | optional |
these parameters determine which records will be displayed in the report based on specified index number. to get from fifth to twentieth record specify skip = 4 and take = 16
|
| 14 | take | integer | optional | |
| 15 | currencies | string array | optional |
enter currency type ids to filter sub-accounts by Avaliable Values:
|
[
{
"feeDate": "2019-10-21T00:00:00",
"feeName": "PerTrx-Platform",
"feeGroupName": "Stand-Alone",
"feeType": "PerTransaction",
"feeCategory": "Tax",
"transactionId": "412000000001736100",
"merchantTransactionId": "31",
"processorTransactionId": "208e4e19-f1d0-4c22-b360-e710b442cf00",
"transactionType": "Partial Refund",
"transactionAmount": "5.00",
"perTrxAmount": "0.000000",
"perTrxPercentage": "100.000000",
"feeAmount": "1.000000",
"currency": "USD",
"feeTarget": "Target Entity",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Platform Account Name",
"billingAmount": "1.000000"
},
{
"systemDate": "2019-10-21T00:00:00",
"feeName": "PerTrx-Platform",
"feeGroupName": "Stand-Alone",
"feeType": "PerTransaction",
"feeCategory": "Tax",
"transactionId": "411000000001736100",
"merchantTransactionId": "31",
"processorTransactionId": "208e4e19-f1d0-4c22-b360-e710b442cf00",
"transactionType": "Partial Refund",
"transactionAmount": "5.00",
"perTrxAmount": "0.000000",
"perTrxPercentage": "100.000000",
"feeAmount": "1.000000",
"currency": "USD",
"feeTarget": "Target Entity",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Platform Account Name",
"billingAmount": "1.000000"
}
]
| № | Name | Description |
| 1 | feeDate | system fee processing date and time |
| 2 | feename | name of the fee |
| 3 | feegroupname | name of the fee group |
| 4 | feetype | fee type |
| 5 | feecategory | fee categories |
| 6 | transactionid | transaction identifier |
| 7 | marchanttransactionid | transaction identifier per merchant |
| 8 | processortransactionid | transaction identifier per processor |
| 9 | transactiontype | type of transaction a fee has been calculated for |
| 10 | transactionamount | transaction amount |
| 11 | pertrxamount | fee per transaction fee amount |
| 12 | pertrxpercentage | fee percentage value per transaction |
| 13 | feeamount | fee fixed amount |
| 14 | currency | fee currency |
| 15 | feetarget | fee recipient |
| 16 | subaccount | sub-account identifier |
| 17 | platformaccount | platform account name |
| 18 | billingamount |
billing amount value. used to calculate transaction commissions and fees. |
https://sandbox.4levers.com/NewReportsApi/api/Reports/incoming-fees
REST Production URL: https://reports-api.4levers.com/api/Reports/incoming-fees
Incoming Fees report provides a complete overview of all the incoming and outgoing fees that your Sub-Account has received within a specific time range.
https://reports-api.4levers.com/api/Reports/incoming-fees?DateFrom=2019-07-23&DateTo=2019-07-24
| № | Name | Type | Optionality | Description |
| 1 | datefrom | datetime | required | determines the selection starting/ending time range |
| 2 | dateto | datetime | required | |
| 3 | feeid | integer/array | optional | enter your fee id(s) |
| 4 | feegroupid | integer/array | optional | enter your fee group id(s) |
| 5 | feetype | enum | optional |
select fee type to output in the report Avaliable Values:
|
| 6 | feecategory | enum | optional |
nullable fee categories Avaliable Values:
|
| 7 | feesources | enum | optional |
specify the fee source Avaliable Values:
|
| 8 | processors | string/array | required | clearing acquirer name(s) |
| 9 | serviceproviders | integer/array | optional | enter your service provider id(s) |
| 10 | operators | integer/array | optional | enter your operator id(s) |
| 11 | accounts | integer/array | optional | enter your platform account id(s) |
| 12 | subaccounts | string/array | optional | enter your sub-account id(s) |
| 13 | skip | integer | optional |
these parameters determine which records will be displayed in the report based on specified index number.to get from fifth to twentieth record specify skip = 4 and take = 16 |
| 14 | take | integer | optional | |
| 15 | currencies | string/array | optional |
enter currency type ids to filter sub-accounts by Avaliable Values:
|
[
{
"feeDate": "2019-10-09T00:00:00",
"feeName": "Fee Name",
"feeGroupName": "Stand-Alone",
"feeType": "PerTransaction",
"feeCategory": "Tax",
"transactionId": "400045400001688770",
"transactionType": "Charge",
"transactionAmount": "100.00",
"perTrxAmount": "100.000000",
"perTrxPercentage": "0.000000",
"feeAmount": "100.000000",
"currency": "USD",
"feeSource": "Fee Source Entity",
"subAccount": "Sub-Account Name - Sub-Account Id",
"platformAccount": "Platform Account Name",
"billingAmount": "100.000000"
}
]
| № | Name | Description |
| 1 | feeDate | system fee processing date and time |
| 2 | feename | name of the fee |
| 3 | feegroupname | name of the fee group a fee belongs too |
| 4 | feetype | fee type |
| 5 | feecategory | fee categories |
| 6 | transactionid | transaction identifier |
| 7 | transactiontype | type of transaction a fee has been calculated for |
| 8 | transactionamount | relevant transaction amount |
| 9 | pertrxamount | fee per transaction amount value |
| 10 | pertrxpercentage | fee percentage value per transaction |
| 11 | feeamount | fee fixed amount |
| 12 | currency | fee currency |
| 13 | feesource | source of the fee. |
| 14 | subaccount | sub-account identifier |
| 15 | platformaccount | platform account name |
| 16 | billingamount |
billing amount. used to calculate transaction commissions and fees. |
https://sandbox.4levers.com/NewReportsApi/api/Reports/expected-future-revenue
REST Production URL: https://reports-api.4levers.com/api/Reports/expected-future-revenue
Expected Future Revenue report provides overview of all due fees, fees with billing delay and fees before the Cut-off.
https://reports-api.4levers.com/api/Reports/expected-future-revenue?DateFrom=2020-06-01&DateTo=2020-07-17
| № | Name | Type | Optionality | Description |
| 1 | datefrom | datetime | required | determines the selection starting/ending time range |
| 2 | dateto | datetime | required | |
| 3 | feeid | integer/array | optional | enter your fee id(s) |
| 4 | feegroupid | integer/array | optional | enter your fee group id(s) |
| 5 | feetype | enum | optional |
select fee type to output in the report Avaliable Values:
|
| 6 | feecategory | enum | optional |
nullable fee categories Avaliable Values:
|
| 7 | feesources | enum | optional |
specify the fee source Avaliable Values:
|
| 8 | processors | string/array | required | processor name(s) |
| 9 | serviceproviders | integer/array | optional | enter your service provider id(s) |
| 10 | operators | integer/array | optional | enter your operator id(s) |
| 11 | accounts | integer/array | optional | enter your platform account id(s) |
| 12 | subaccounts | string/array | optional | enter your sub-account id(s) |
| 13 | skip | integer | optional |
these parameters determine which records will be displayed in the report based on specified index number. to get from fifth to twentieth record specify skip = 4 and take = 16 |
| 14 | take | integer | optional | |
| 15 | currencies | string/array | optional |
enter currency type ids to filter sub-accounts by Avaliable Values:
|
[
{
"feeDueDate": "2020-07-16T20:59:59",
"feeName": "Sub to Agent",
"feeGroupName": "Stand-Alone",
"feeType": "Per Transaction Fee",
"feeCategory": "Fee",
"transactionId": "5430012134114945862",
"transactionType": "Charge",
"transactionAmount": "100.00",
"perTrxAmount": "0.300000",
"perTrxPercentage": "3.000000",
"feeAmount": "0.450000",
"currency": "USD",
"feeSource": "Agent Revenue",
"subAccount": "Sub-Account Name - Sub-Account Id",
"platformAccount": "Platform Account Name",
"billingAmount": "5.000000"
},
{
"feeDueDate": "2020-07-16T20:59:59",
"feeName": "Sub to Agent",
"feeGroupName": "Stand-Alone",
"feeType": "Per Transaction Fee",
"feeCategory": "Fee",
"transactionId": "5430012134077807922",
"transactionType": "Charge",
"transactionAmount": "100.00",
"perTrxAmount": "0.300000",
"perTrxPercentage": "3.000000",
"feeAmount": "0.450000",
"currency": "USD",
"feeSource": "Agent Revenue",
"subAccount": "Sub-Account Name - Sub-Account Id",
"platformAccount": "Platform Account Name",
"billingAmount": "5.000000"
}
]
| № | Name | Description |
| 1 | feeDueDate | due date and time |
| 2 | feename | name of the fee |
| 3 | feegroupname | name of the fee group a fee belongs too |
| 4 | feetype | fee type |
| 5 | feecategory | fee categories |
| 6 | transactionid | transaction identifier |
| 7 | transactiontype | type of transaction a fee has been calculated for |
| 8 | transactionamount | relevant transaction amount |
| 9 | pertrxamount | fee per transaction amount value |
| 10 | pertrxpercentage | fee percentage value per transaction |
| 11 | feeamount | fee fixed amount |
| 12 | currency | fee currency |
| 13 | feesource | source of the fee. |
| 14 | subaccount | sub-account identifier |
| 15 | platformaccount | platform account name |
| 16 | billingamount |
billing amount.used to calculate transaction commissions and fees. |
https://sandbox.4levers.com/NewReportsApi/api/Reports/profitability-analysis
REST Production URL: https://reports-api.4levers.com/api/Reports/profitability-analysis
Profitability Analysis report displays information about Outgoing Fees and Incoming Fees including mark as External Cost Fees.
Fees with Fee Target = Reserve Balance are ignored in this report.
https://reports-api.4levers.com/api/Reports/profitability-analysis?DateFrom=2020-06-01&DateTo=2020-07-17
| № | Name | Type | Optionality | Description |
| 1 | datefrom | datetime | required |
determines the selection starting/ending time range date in future (fees due date) |
| 2 | dateto | datetime | required | |
| 3 | clearingacquirercompanies | string array | optional | specify one or more acquiring companies |
| 4 | reportperiodtyp | enum | optional |
select the output period for the report Avaliable Values:
|
| 5 | paymentmethods | enum | optional |
specify the payment method required in case credit card is populated. Avaliable Values:
|
| 6 | creditcards | enum | optional |
specify a credit card type Avaliable Values:
|
| 7 | transactiontype | enum | optional |
specify a transaction type Avaliable Values:
|
| 8 | status | enum | optional |
transaction processing status Avaliable Values:
|
| 9 | TransactionOrigin | string array | optional | specify one or more processing sub-account id(s) |
| 10 | serviceproviders | integer/array | optional | enter your service provider id(s) |
| 11 | operators | integer/array | optional | enter your operator id(s) |
| 12 | accounts | integer/array | optional | enter your platform account id(s) |
| 13 | subaccounts | string array | optional |
enter your sub-account id(s) |
| 14 | skip | integer | optional |
these parameters determine which records will be displayed in the report based on specified index number.to get from fifth to twentieth record specify skip = 4 and take = 16 |
| 15 | take | integer | optional |
[
{
"systemDate": "2020-07-16T20:59:59",
"transactionId": "5430012134114945862",
"transactionType": "Charge",
"paymentMethod": "Visa",
"transactionStatus": "Processed",
"transactionAmount": "100.00",
"incomingFeesAmount": "1.000000",
"outgoingFeesAmount": "0.300000",
"externalCostAmount": "0.450000",
"profitAmount": "0.250000",
"subAccount": "Sub-Account Name - Sub-Account Id",
"platformAccount": "Platform Account Name"
},
{
"systemDate": "2020-07-22T13:00:59",
"transactionId": "5430012134114945222",
"transactionType": "Capture",
"paymentMethod": "Visa",
"transactionStatus": "Processed",
"transactionAmount": "100.00",
"incomingFeesAmount": "1.000000",
"outgoingFeesAmount": "0.300000",
"externalCostAmount": "0.100000",
"profitAmount": "0.600000",
"subAccount": "Sub-Account Name - Sub-Account Id",
"platformAccount": "Platform Account Name",
}
]
| № | Name | Description |
| 1 | feeDate | system date and time |
| 2 | transactionid | transaction identifier |
| 3 | transactiontype | type of the transaction |
| 4 | paymentmethod | payment method: ach, credit card or gift card type. |
| 5 | transactionstatus | transaction status |
| 6 | transactionamount | relevant transaction amount |
| 7 | incomingfeesamount | amount of all incoming fees collected for the sub-account |
| 8 | outgoingfeesamount | amount of fees paid from the sub-account |
| 9 | externalcostamount | amount of incoming fees that were marked as cost |
| 10 | profitamount | incoming fees amount less external cost amount and outgoing fees amount |
| 11 | subaccount | sub-account identifier |
| 12 | platformaccount | platform account name |
https://sandbox.4levers.com/NewReportsApi/api/Reports/reconciliation-summary
REST Production URL: https://reports-api.4levers.com/api/Reports/reconciliation-summary
Use Reconciliation Summary Report to access your Sub-Account transactions matching statistics for a specific date.
This report allows you to select a specific Processor, Payment Method and Date range to display the information on all transactions that have been matched, unmatched and pending.
https://reports-api.4levers.com/api/Reports/reconciliation-summary?DateFrom=2019-07-23&DateTo=2019-07-24
| № | Name | Type | Optionality | Description |
| 1 | datefrom | datetime | required | determines the selection starting/ending time range |
| 2 | dateto | datetime | required | |
| 3 | daterangetype | enum | optional |
specify the output report date range type Avaliable Values:
|
| 4 | processors | string/array | optional | specify one or more clearing processors |
| 5 | paymentmethods | enum | optional |
specify the payment method required in case credit card is populated. Avaliable Values:
|
| 6 | creditcards | enum | optional |
specify a credit card type Avaliable Values:
|
| 7 | reportperiodtype | enum | optional |
specify the output report period type Avaliable Values:
|
| 8 | serviceproviders | integer/array | optional | enter your service provider id(s) |
| 9 | operators | integer/array | optional | enter your operator id(s) |
| 10 | accounts | integer/array | optional | enter your platform account id(s) |
| 11 | subaccounts | string/array | optional | enter your sub-account id(s) |
| 12 | skip | integer | optional |
these parameters determine which records will be displayed in the report based on specified index number. to get from fifth to twentieth record specify skip = 4 and take = 16 |
| 13 | take | integer | optional | |
| 14 | currencies | string array | optional |
enter currency type ids to filter sub-accounts by Avaliable Values:
|
[
{
"systemDate": "2019-10-15T00:00:00",
"numberOfSales": "1",
"amountOfSales": "10.00",
"numberOfCredits": "0",
"amountOfCredits": "0.00",
"currency": "USD",
"matchedTransactions": "0",
"pendingTransactions": "0",
"unmatchedTransactions": "0",
"successRatio": "0",
"subAccount": "Sub-Account Name - Sub-Account Id",
"platformAccount": "Platform Account Name"
},
{
"systemDate": "2019-10-15T00:00:00",
"numberOfSales": "10",
"amountOfSales": "3.00",
"numberOfCredits": "0",
"amountOfCredits": "0.00",
"currency": "USD",
"matchedTransactions": "0",
"pendingTransactions": "3",
"unmatchedTransactions": "0",
"successRatio": "0",
"subAccount": "Sub-Account Name - Sub-Account Id",
"platformAccount": "Platform Account Name"
}
]
| № | Name | Description |
| 1 | systemdate | system date |
| 2 | numberofsales | deposit (sale) transactions count |
| 3 | amountofsales | deposit (sale) transactions total amount |
| 4 | numberofcredits | total credit transactions count |
| 5 | amountofcredits | credit transactions total amount |
| 6 | currency | transaction currency |
| 7 | matchedtransactions | number of transactions that have been matched with original transactions data |
| 8 | pendingtransactions | number of transactions that have a pending matching status |
| 9 | unmatchedtransactions | number of transactions that have not been matched with original transactions data |
| 10 | successratio | the ratio in % of successfully matched transactions |
| 11 | subaccount | sub-account identifier |
| 12 | platformaccount | platform account name |
https://sandbox.4levers.com/NewReportsApi/api/Reports/reconciliation-records
REST Production URL: https://reports-api.4levers.com/api/Reports/reconciliation-records
Reconciliation Records Report provides the transactions matching summary report.
Use the Reconciliation Records Report to get reconciliation details for specific transactions.
https://reports-api.4levers.com/api/Reports/reconciliation-records?DateFrom=2019-07-23&DateTo=2019-07-24
| № | Name | Type | Optionality | Description |
| 1 | datefrom | datetime | required | determines the selection starting/ending time range |
| 2 | dateto | datetime | required | |
| 3 | entrymode | array integer | optional |
nullable transaction entry mode(s) numerical value. |
| 4 | daterangetype | enum | optional |
specify the output report date range type Avaliable Values:
|
| 5 | reconciliationstatus | enum | optional |
specify the output report reconciliation status Avaliable Values:
|
| 6 | transactionid | integer (int64) | optional | transaction identifier |
| 7 | merchanttransactionid | string | optional | transaction identifier provided by merchant |
| 8 | processors | string/array | optional | specify one or more clearing processors |
| 9 | processortransactionid | string | optional | transaction identifier provided by the clearing processor |
| 10 | paymentmethods | enum | optional |
specify the payment method required in case credit card is populated. Avaliable Values:
|
| 11 | creditcards | enum | optional |
specify a credit card type Avaliable Values:
|
| 12 | transactiontype | enum | optional |
specify a transaction type Avaliable Values:
|
| 13 | paymenttypes | enum | optional |
specify the payment type Avaliable Values:
|
| 14 | serviceproviders | integer/array | optional | enter your service provider id(s) |
| 15 | operators | integer/array | optional | enter your operator id(s) |
| 16 | accounts | integer/array | optional | enter your platform account id(s) |
| 17 | subaccounts | string/array | optional | enter your sub-account id(s) |
| 18 | skip | integer | optional |
these parameters determine which records will be displayed in the report based on specified index number.to get from fifth to twentieth record specify skip = 4 and take = 16 |
| 19 | take | integer | optional | |
| 20 | currencies | string array | optional |
enter currency type ids to filter sub-accounts by Avaliable Values:
|
[
{
"transactionId": "101000030001731070",
"merchantTransactionId": "108",
"processorTransactionId": "71d0b6e9-7e4d-4a4b-ad42-11d693069f92",
"systemDate": "2019-10-19T15:32:23.29",
"merchantDate": "",
"paymentMethod": "Visa",
"CCOrAccountNumber": "411111******1111",
"CCExpirationDate": "1220",
"token": "15facb01-4b25-4511-b5f0-0a083e48857b",
"CCorAccountOwnerName": "Eleanor Johnson",
"amount": "100",
"currency": "USD",
"transactionType": "Capture",
"reconciliationDate": "",
"reconciliationStatus": "Pending",
"reconciliationErrorCode": "",
"reconciliationErrorCodeDescription": "",
"chargebackDisputeDate": "2011-07-04T00:00:00",
"terminalId": "",
"servicePurchasedType": "RegularTransaction",
"transactionDescription": "Transaction Description",
"merchantFreeText": "Merchant Free Text",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Platform Account Name",
"performedBy": "username",
"entryMode": "0-Unknown"
},
{
"transactionId": "101000003301731070",
"merchantTransactionId": "104",
"processorTransactionId": "db9d186e-f359-4227-ba01-3294599f1f3f",
"systemDate": "2019-10-19T15:27:49.737",
"merchantDate": "",
"paymentMethod": "Visa",
"CCOrAccountNumber": "411111******1111",
"CCExpirationDate": "1220",
"token": "a066945e-5449-4611-a378-6f3bdb416237",
"CCorAccountOwnerName": "Eleanor Johnson",
"amount": "100",
"currency": "USD",
"transactionType": "Charge",
"reconciliationDate": "",
"reconciliationStatus": "Pending",
"reconciliationErrorCode": "",
"reconciliationErrorCodeDescription": "",
"chargebackDisputeDate": "2011-07-04T00:00:00",
"terminalId": "",
"servicePurchasedType": "RegularTransaction",
"transactionDescription": "Transaction Description",
"merchantFreeText": "Merchant Free Text",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Platform Account Name",
"performedBy": "username",
"entryMode": "0-Unknown"
}
]
| № | Name | Description |
| 1 | transactionid | transaction identifier |
| 2 | merchanttransactionid | transaction identifier provided by merchant |
| 3 | processortransactionid | transaction identifier provided by the clearing processor |
| 4 | systemdate | system processing date |
| 5 | merchantdate | merchant processing date |
| 6 | paymentmethod | selected payment method |
| 7 | ccoraccountnumber | credit card number or bank account number depending on the selected payment method |
| 8 | ccexpirationdate | credit card expiration date |
| 9 | token | payment token if applicable |
| 10 | CCorAccountOwnerName | name on the credit card or bank account depending on the selected payment method |
| 11 | amount | transaction amount |
| 12 | currency | transaction currency |
| 13 | transactiontype | type of the transaction |
| 14 | reconciliationdate | date when the transaction matching has been performed |
| 15 | reconciliationstatus | transaction matching status |
| 16 | reconciliationerrorcode | transaction matching error code |
| 17 | reconciliationerrorcodedescription | description of the transaction matching error |
| 18 | chargebackdisputedate | chargeback dispute date |
| 19 | terminalid | clearing terminal identifier |
| 20 | servicepurchasedtype | type of the purchased service |
| 21 | transactiondescription | description of the transaction |
| 22 | merchantfreetext | merchant comment on the transaction |
| 23 | subaccount | sub-account identifier |
| 24 | platformaccount | platform account name |
| 25 | performedby | service/user that performed the reconciliation |
| 26 | entrymode |
nullable transaction entry mode(s) numerical value. |
https://sandbox.4levers.com/NewReportsApi/api/Reports/chargeback-analysis
REST Production URL: https://reports-api.4levers.com/api/Reports/chargeback-analysis
Chargeback Analysis report offers a complete set of data and statistics on your Sub-Account chargeback rates and volumes for a specified date.
https://reports-api.4levers.com/api/Reports/chargeback-analysis?DateFrom=2019-06-01&DateTo=2019-07-24
| № | Name | Type | Optionality | Description |
| 1 | datefrom | datetime | required | determines the selection starting/ending time range |
| 2 | dateto | datetime | required | |
| 3 | processors | string/array | optional | specify one or more clearing processors |
| 4 | paymentmethods | enum | optional |
specify the payment method required in case credit card is populated. Avaliable Values:
|
| 5 | creditcards | enum | optional |
specify a credit card type Avaliable Values:
|
| 6 | paymenttypes | enum | optional |
specify a payment type regular one-time payment recurring subscription payments installments recurring installments deferred deferred payment
|
| 7 | daterangetype | enum | optional |
specify the report output date range type systemdateprocessordate
|
| 8 | serviceproviders | integer/array | optional | enter your service provider id(s) |
| 9 | operators | integer/array | optional | enter your operator id(s) |
| 10 | accounts | integer/array | optional | enter your platform account id(s) |
| 11 | subaccounts | string/array | optional | enter your sub-account id(s) |
| 12 | skip | integer | optional |
these parameters determine which records will be displayed in the report based on specified index number. to get from fifth to twentieth record specify skip = 4 and take = 16 |
| 13 | take | integer | optional | |
| 14 | currencies | string array | optional |
enter currency type ids to filter sub-accounts by Avaliable Values:
|
[
{
"date": "2019-09-10T00:00:00",
"numberOfSales": "35",
"amountOfSales": "20.00",
"numberOfChargebacks": "8",
"amountOfChargebacks": "4.00",
"ratioByNumber": "22.86",
"ratioByAmount": "11.43",
"accumulatedRatioByNumber": "11.24",
"accumulatedRatioByAmount": "1.51",
"currency": "USD",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Platform Account Name"
},
{
"date": "2019-09-10T00:00:00",
"numberOfSales": "0",
"amountOfSales": "0.00",
"numberOfChargebacks": "0",
"amountOfChargebacks": "0.00",
"ratioByNumber": "0",
"ratioByAmount": "0",
"accumulatedRatioByNumber": "0",
"accumulatedRatioByAmount": "0",
"currency": "USD",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Platform Account Name"
}
]
| № | Name | Description |
| 1 | date | chargeback processing date |
| 2 | numberofsales | deposit (sale) transactions count |
| 3 | amountofsales | gross amount of all deposit (sale) transactions |
| 4 | numberofchargebacks | chargeback transactions count |
| 5 | amountofchargebacks | amount of all chargeback transactions |
| 6 | ratiobynumber | chargeback transactions count share in the total count of deposit transactions |
| 7 | ratiobyamount | chargeback transactions accumulated amount share in the total volume of deposit transactions |
| 8 | accumulatedratiobynumber | chargeback transactions accumulated count share in the total count of deposit transactions |
| 9 | accumulatedratiobyamount | chargeback transactions amount share in the total volume of deposit transactions |
| 10 | currency | transaction currency |
| 11 | subaccount | sub-account identifier and name |
| 12 | platformaccount | platform account name |
https://sandbox.4levers.com/NewReportsApi/api/Reports/tokens
REST Production URL: https://reports-api.4levers.com/api/Reports/tokens
Use Tokens Report to display all the tokens issued for specific credit cards on your Sub-Accounts.
https://reports-api.4levers.com/api/Reports/tokens?DateFrom=2019-07-23&DateTo=2019-07-24
| № | Name | Type | Optionality | Description |
| 1 | datefrom | datetime | required | determines the selection starting/ending time range |
| 2 | dateto | datetime | required | |
| 3 | token | string | optional | specify payment token |
| 4 | bin | string | optional |
credit card bank identification number. first 6 digits of the credit card number. |
| 5 | last4 | string | optional | last 4 digits of the credit card number |
| 6 | creditcardtype | enum | optional |
specify a credit card type Avaliable Values:
|
| 7 | сreditCardOwnerName | string | optional | cardholder’s name |
| 8 | serviceproviders | integer/array | optional | enter your service provider id(s) |
| 9 | operators | integer/array | optional | enter your operator id(s) |
| 10 | accounts | integer/array | optional | enter your platform account id(s) |
| 11 | subaccounts | string/array | optional | enter your sub-account id(s) |
| 12 | skip | integer | optional |
these parameters determine which records will be displayed in the report based on specified index number. to get from fifth to twentieth record specify skip = 4 and take = 16 |
| 13 | take | integer | optional |
[
{
"token": "15facb01-4b25-4223-b5f0-0a083e48857b",
"creationDate": "2019-10-19T15:31:50.583",
"creditCardType": "Visa",
"creditCardNumber": "411111******1111",
"сreditCardExpiration": "12/2020",
"сreditCardOwnerName": "Eleanor Johnson",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Platform Account Name"
},
{
"token": "a066945e-5229-4664-a378-6f3bdb416237",
"creationDate": "2019-10-19T15:27:49.767",
"creditCardType": "Visa",
"creditCardNumber": "411111******1111",
"сreditCardExpiration": "12/2020",
"сreditCardOwnerName": "Eleanor Johnson",
"subAccount": "Sub-Account Id - Sub-Account Name",
"platformAccount": "Platform Account Name"
}
]
| № | Name | Description |
| 1 | token | payment secure token |
| 2 | creationdate | token creation date and time |
| 3 | creditcardtype | credit card type |
| 4 | creditcardnumber | masked credit card number |
| 5 | сreditCardExpiration | credit card expiration date in a format mm/yyyy |
| 6 | сreditCardOwnerName | cardholder’s name |
| 7 | subaccount | sub-account identifier and name |
| 8 | platformaccount | platform account name |
REST Sandbox URL: https://sandbox.4levers.com/NewReportsApi/api/Reports/underwriting-sign-up-summary
REST Production URL: https://reports-api.4levers.com/api/Reports/underwriting-sign-up-summary
Use Sign-up Summary Report to view the UMS life cycle from an UMS application request to an active Sub-Account.
GET: https://reports-api.4levers.com/api/Reports/underwriting-sign-up-summary?DateFrom=2019-07-23&DateTo=2019-07-24
| № | Name | Type | Optionality | Description |
| 1 | datefrom | datetime | required | determines the selection starting/ending time range |
| 2 | dateto | datetime | required | |
| 3 | serviceproviders | integer/array | optional | enter your service provider id(s) |
| 4 | operators | integer/array | optional | enter your operator id(s) |
| 5 | skip | integer | optional | these parameters determine which records will be displayed in the report based on specified index number. to get from fifth to twentieth record specify skip = 4 and take = 16 |
| 6 | take | integer | optional |
[
{
"date": "2019-10-15T00:00:00",
"numberOfApplicationSignUps": "1",
"numberOfApplicationsUnderValidation": "3",
"numberOfApplicationsUnderReview": "0",
"numberOfApplicationsPendingResubmission": "0",
"numberOfDeclinedApplications": "0",
"numberOfApprovedApplications": "0",
"numberOfBoardedSubAccounts": "2",
"numberOfActiveSubAccounts": "5",
"numberOfDisabledSubAccounts": "2",
"operator": "OperatorName1",
"serviceProvider": "ServiceProviderName1"
},
{
"date": "2019-10-15T00:00:00",
"numberOfApplicationSignUps": "1",
"numberOfApplicationsUnderValidation": "3",
"numberOfApplicationsUnderReview": "0",
"numberOfApplicationsPendingResubmission": "0",
"numberOfDeclinedApplications": "0",
"numberOfApprovedApplications": "0",
"numberOfBoardedSubAccounts": "2",
"numberOfActiveSubAccounts": "5",
"numberOfDisabledSubAccounts": "2",
"operator": "OperatorName1",
"serviceProvider": "ServiceProviderName1"
}
]
| № | Name | Description |
| 1 | systemdate | system date |
| 2 | numberofapplicationsignups | overall number of applications created in this specific date |
| 3 | numberofapplicationsundervalidation | overall number of applications with status = “under validation” |
| 4 | numberofapplicationsunderreview | overall number of applications with status = “under review” |
| 5 | numberofapplicationspendingresubmission | overall number of applications with status = “pending resubmission” |
| 6 | numberofdeclinedapplications | number of applications declined in this date |
| 7 | numberofapprovedapplications | number of applications approved in this date |
| 8 | numberofboardedsubaccounts | overall number of sub-accounts created in this date |
| 9 | numberofactivesubaccounts | overall number of active sub-accounts in this date |
| 10 | numberofdisabledsubaccounts | overall number of disabled sub-accounts in this date |
| 11 | operator | operator name |
| 12 | serviceprovider | service provider name |
| Response Code | Response code name | Description |
|---|---|---|
| 400 | BadRequest | Invalid data in the request |
| 401 | Unauthorized | Unauthorized attempt to access data |
| 500 | InternalServerError | Internal server error |
| 200 | Ok | Successful request |
Here is a list of Standard Error Codes for the REST APIs
| Error Code | Description |
|---|---|
| 400 | Bad Request — Your request is invalid |
| 401 | Unauthorized — Authorization failed |
| 403 | Forbidden — Access denied |
| 404 | Not Found — Wrong URL |
| 415 | Unsupported Media Type — Wrong request format |
| 500 | Internal Server Error — We had a problem with our server. Try again later |
| 503 | Service Unavailable — We’re temporarily offline for maintenance. Please try again later |
0 OK
10001 Blocked – issuer response
10002 Pick up card – Card has been registered as lost or stolen. Please request another credit card or payment method from customer.
10003 General refusal – the card has been declined by the issuer, please request customer to provide another credit card or payment method, or to contact his Issuer Bank.
10004 Card declined by issuer, please request customer to provide another credit card or payment method, or to contact his Issuer bank.
10005 Forged – issuer response
10006 Invalid CVV value entered, please recheck card data or request customer to provide another credit card or payment method.
10007 Transaction failed since the connection to the processor was unsuccessful. Please try to send the transaction again in a few minutes.
If the problem persists, please contact the processor for further information.
10008 Error in request string to clearing interface
10009 The credit card number provided is invalid, please recheck credit card number or request another credit card or payment method from customer.
10010 Request contradicts clearing interface configuration
10011 Card has expired. Please request customer to provide another credit card or payment method.
10012 Transaction declined by the Processor/issuer since the transaction type used is not allowed for this merchant.
Please check your transaction parameters, correct and resend the transaction.
10013 Security Violation or Authentication problem: an invalid identity or secret code is used.
Please contact the processor for further clarification.
10014 Incorrect secret code – last try
10015 Transaction was declined either by the processor due to validation error or the connection to the processor was unsuccessful.
Please try to resend the transaction, if the problem persists please contact your processor for further information.
10016 Previous transaction cannot be cancelled (credit transaction or card number not identical)
10017 Duplicate Transaction: a transaction with the same parameters already exists in the processor database.
10018 A processor application error occurred. Please contact the processor for further clarification about this error.
10019 Timeout to clearing interface
10020 A processor system error occurred. Please contact the processor for further clarification about this error.
10021 Cancellation transaction: Parent transaction was declined or not found
10022 Cancellation transaction was declined since the parent transaction (deposit, authorization) was already processed through the acquirer.
10023 Cancellation transaction: transaction found but already cancelled
10024 No authorization number found for this transaction
10025 Transaction declined since allowable period for sending this transaction type (deposit of pre-authorization or refund) has expired.
10026 Zero amount not allowed when the type of Trx is Authorization.
10029 Transaction type not allowed for this type of card.
10030 An invalid value or format is used in the transaction request string send to the processor.
Please check the transaction parameters and values, correct and resend transaction.
10040 The deposit trx has not been settled yet or has failed. Following the transaction cannot be refunded.
Please check the deposit trx and if relevant send a cancellation transaction instead.
10041 Capture is not supported or allowed for this account
10042 Authorization transaction already deposited
10043 Original transaction doesn\’t exist or contains inconsistent data
1005 Alert: Amount and InitialPre-AuthAmount greater than zero. Only one of the fields can be greater than zero: Amount or InitialPreAuthAmount.
Please check the amounts, correct and resend the transaction.
1007 Either both fields equal to zero or they both not equal to zero: FirstInstallmentInterval and FirstInstallmentAmount
10070 ECI or CAVV incorrect
10073 The transaction you are trying to deposit has already been cancelled.
1008 Invalid format of Recurring Installment Interval Additional Info.
1009 Invalid format of Service Expiry Additional Info.
1010 Recurring Billing Plan cannot be cancelled since it is not active
10100 Original transaction not found by MID
1011 Alert: Amount and InitialPre-AuthAmount equal to zero. Only one of the fields can be equal to zero: Amount or InitialPre-AuthAmount.
Please check the amounts, correct and resend the transaction.
1012 The cancellation transaction failed since the RB Plan already has a final status (e.g. Expired, Cancelled, Terminated, Chargeback) or the RB Plan was not found.
10180 Error in Partial Amount: the amount of the partial transaction exceeds the remaining amount of its parent transaction.
Please check the amount of the partial transaction, correct and resend the transaction.
10200 Card declined by issuer, due to insufficient funds. Please request customer to provide another credit card or payment method, or to contact his Issuer Bank.
10202 Invalid AVS or CVV settings – check your billing address and security code and try again
10301 Amex – Approved (Express Rewards Program)
10302 Bad Terminal ID
10303 Card Network Error
10304 Deny – Account Canceled
10305 Deny – New card issued
10306 Exceeds withdrawal limit
10307 Honor with ID
10308 Transaction was declined because only part of the transaction amount could be approved.
Please request customer to provide another credit card or payment method.
10309 Invalid ABA
10310 Invalid Address
10311 The amount used in this transaction is invalid.
Please check amount, correct and resend the transaction.
10312 Transaction declined due to AVS mismatch.
10313 Invalid credit card number entered, please recheck card data or request customer to provide another credit card or payment method.
10314 Invalid Card type
10315 Invalid DDA
10316 Invalid Entry Type
10317 Transaction declined by processor since an invalid MerchantID or Billing descriptor is used.
Please check MerchantID and/or Billing Descriptor, correct and resend the transaction.
10318 Invalid message Format
10319 Invalid Password
10320 Invalid TID
10321 Transaction declined by processor as being an Invalid Transaction.
Please contact processor for further explanation.
10322 Invalid ZIP and Address
10323 Invalid Zip Code
10324 Master Merchant not found
10325 Merchant ID error
10326 Partial Approval
10327 Transaction declined by processor since the requested card record could not be find.
Please contact the processor for further clarification.
10328 Transaction declined by processor with instruction to retry transaction.
Please resend the transaction. If the problem persists please contact the processor.
10329 Refund denied
10330 Suspected Fraud: Transaction declined by processor due to suspicion of Fraud.
10331 System error SD
10332 Transaction cannot be completed; violation of law.
10333 Transaction not allowed at terminal
10334 Card declined by issuer, since it is a restricted card. The transaction type used is not allowed for this card.
Please request customer to provide another credit card or payment method, or to contact his Issuer Bank.
10335 VIP Approval
10336 ACH Negative file
10337 Transaction declined by processor: the authorization order was revoked.
10338 Transaction declined by processor since ther is a problem with the original Authorization.
Please contact the processor for further clarification.
10340 Failed – International transaction
10344 The transaction failed with \’Balance Not Available\’
10345 Offline Approval
10346 Call Issuer
10350 Invalid Data – General
10351 Invalid or incorrect account data, please refer to the ClearingErrorID and ClearingErrorInfo field for more information.
10352 Invalid or incorrect bank data
10353 Invalid or incorrect check data
10354 Invalid or incorrect user data
10356 The Name on Card is missing
10360 FX Error
10366 Transaction declined
10370 Gift Card Error
10371 Gift Card Error – suspected fraud
10400 Cardholder Details Field invalid
10401 Cardholder Shipping Details Field invalid
10402 Merchant Details Field invalid
10403 Amount field invalid
10404 Transaction field invalid, please refer to the ClearingErrorID and ClearingErrorInfo field for more information
10405 Item details field invalid
10901 Descriptin
10919 Connection to Vantiv interface unsuccessful
10999 The recurring request or payment contains one or more invalid values.
Please refer to the Clearing Error Id and Clearing Error description for more information.
11000 An invalid value or format is used for one of the Access Management parameters.
Please check the Access Management parameters, correct and resend the transaction.
11001 SVS Payee Billing Account does not exist in the database.
11002 SVS Payee Billing Account does not correspond the currency.
11003 SVS Payer Billing Account does not exist in the database.
11004 SVS Payer Billing Account does not correspond the currency.
11005 Acquirer Billing Account does not exist in the database.
11006 Acquirer Billing Account does not correspond the currency.
11007 Not enough money for the withdrawal operation. The account balance is less than transaction amount.
11008 Billing Account is locked for withdrawal operations.
11009 SVS Payee Billing Account is suspended.
11010 SVS Payer Billing Account is suspended.
11011 Acquirer Billing Account is suspended.
11015 Name on account does not equal the customer full name.
11016 Merchant External Service execution failed.
11021 Merchant did not process the transaction and returned response \”Error\”.
11022 The system does not support this currency
11023 Payee billing account is not a customer account
11024 Transactions are not allowed between TEST and LIVE accounts.
11026 Billing Account belongs to the user from country forbidden for payment/payout
11027 Payee and Payer skins are different
11029 Billing Account is locked for submit operations.
11030 This option is currently not available.
11031 Customer account is currently locked because of velocity check.
11046 Query transaction error, please refer to the Clearing Error ID and Clearing Error description for more information.
11100 ACH Direct service failed
11101 ACH Direct did not process the transaction and returned \”Error\”
11102 IDVerify service failed
11103 IDVerify did not process the transaction and returned \”Error\”
11104 ACH processing service returned fatal error code.
11105 ACH processing service returned a formatting error.
11106 Transaction is rejected by ACH processing service.
11107 Credit Card processing service is unavailable
11108 Credit Card processing service did not process the transaction and returned \”Error\”
11109 Rejected by Credit Card External Service
11110 Credit Card processing service is unavailable
11111 Credit Card processing service did not process the transaction and returned \”Error\”
11112 Rejected by Credit Card External Service
11113 EFT processing service failed
11114 EFT processing service did not process the transaction and returned \”Error\”
11115 Transaction is rejected by EFT/PAD processing service.
11116 Enterpayment service failed
11117 Enterpayment did not process the transaction and returned \”Error\”
11118 Transaction is rejected by CC processing service.
11119 Transaction is pending. Please check status of the transaction later.
11120 BlueWire processing service is unavailable
11121 BlueWire processing service did not process the transaction and returned \”Error\”
11122 Rejected by BlueWire External Service
11123 Transaction is rejected by CC processing service.
11124 DataCash processing service is unavailable
11125 DataCash processing service did not process the transaction and returned \”Error\”
11126 Rejected by DataCash External Service
11127 Median processing service is unavailable
11128 Median processing service did not process the transaction and returned \”Error\”
11129 Rejected by Median External Service
11131 JetPay service failed
11132 JetPay did not process the transaction and returned \”Error\”
11133 Transaction is rejected by JetPay processing service
11134 IpCommerce service failed
11135 Transaction is rejected by IpCommerce processing service
11136 IpCommerce did not process the transaction and returned \”Error\”
11137 ConnectNpay service failed
11138 Transaction is rejected by ConnectNPay processing service
11139 ConnectNPay did not process the transaction and returned \”Error\”
11140 MES service failed
11141 Transaction is rejected by MES processing service
11142 MES did not process the transaction and returned \”Error\”
11174 Processor decline: the transaction was declined by the System processor due to a validation error
11177 Vantiv service failed
11178 Transaction is rejected by Vantiv processing service
11179 Vantiv did not process the transaction and returned \”Error\”
11190 Card issuer time out. Please try to send the transaction again in a few minutes.
If the problem persists, please contact the processor for further information.
11197 The transaction failed due to a time-out error or problem at the end of the Processor.
A check needs to be made whether the transaction was processed by the processor, following which the transaction needs to be updated accordingly.
11198 Old Processor System Error
11199 A System Error has occurred at the end of the Processor. Please try to send the transaction again in a few minutes.
If the problem persists, please contact the processor for further information.
11300 Transaction was declined by the processor due to one or more validation errors.
Check the Processor Response XML in the Reporting System under Administrative Reports, Processor Log Report for more details. For further clarification please contact the processor.
12999 Error received from the Account Updater Service.? Please refer to the Clearing Error Id and Clearing Error description for more information.
19999 New processor error received, please refer to the Clearing Error ID and Clearing Error description for more information.
20001 Customer could not be recognized or invalid credentials. Please check the account credentials you are using.
20002 The amount used in this transaction exceeds the transaction amount permitted for this account.
Please check amount, correct and resend the transaction.
20003 Transaction declined since the transaction was send by an unauthorized user or since the transaction type used is not allowed for this merchant account.
20006 The data of request does not match any service plan
20008 Requested service plan not allowed
20013 An invalid value or format is used for one of the recurring billing parameters.
Please check recurring parameters, correct and resend transaction.
20014 Card has expired or expiration date is invalid. Please request customer to provide another credit card or payment method.
20015 Account or card number is in the negative database. Please request customer to provide another credit card or payment method.
20016 Invalid currency for this account
20017 There was a problem with the internal token provided. Please try to resend the transaction in a few minutes.
If the problem persists, please contact customer support.
20018 A (partial) deposit transaction is sent with a transaction amount that exceeds the authorization amount available.
Please adjust the transaction amount of the (partial) deposit and resend the transaction.
20019 Capture Selective response for specific Authorization failed (Vantiv)
20020 An invalid combination of FirstInstallment parameters is used in the transaction request.
Please check FirstInstallment parameters correct and resend transaction.
20022 DB failure when loading offline transaction parameters
20051 CVV2 contains non digit chars
20052 CCType and CCNumber do not match
20057 The transaction you are trying to cancel has already been refunded
20066 The transaction request contains an invalid combination of transaction parameters (invalid ServicePlan).
For your information a ServicePlan is a combination of certain transaction parameters such as instruction type, payment type, request type, operation type, tokenization, recurring billing flag.
Please check and correct the data of the transaction parameters you are using for this transaction and then resend the transaction.
20100 The transaction you are trying to cancel has already been cancelled.
20101 This submit transaction type uses an incorrect transaction type as parent transaction.
Please check, correct either the type of transaction or the parent transaction you are using and then resend the transaction.
20102 Transaction declined since allowable period for sending this transaction type has expired.
20103 The transaction you are trying to cancel or deposit has already been deposited.
20104 Expiration date for submit debit expired
20105 A FullCredit transaction (submit transaction) has been send using an incorrect transaction type as parent transaction.
Please check that the parent transaction is debit deposit transaction (with Instruction Type= Deposit) and then resend the transaction.
20106 The transaction you are trying to refund has already been refunded.
20107 Transaction declined since allowable period for sending a refund has expired.
20108 Query Transaction can not be deferred
20109 The amount used in the submit transaction is not equal to the amount of the parent transaction.
Please correct the amount of the submit transaction and resend the transaction.
20110 The submit Operation Type does not match the Operation Type of the Parent Trx
20111 Cannot credit chargeback or retrieval transaction
20112 Wrong credit card expiration date.
20113 The total sum of refund transactions exceeds the total deposit amount.
Please check refund amount, correct and resend the transaction.
20114 Invalid Payment method
20153 Transaction already revoked
20154 Transaction has a final status (Cancelled, Rejected, Revoked) and can\’t be updated.
20199 Authorization Transaction Already collected for capturing process
20200 Transaction rejected by clearing system, please try to resend the transaction in a few minutes.
In case the problem persists please contact Support.
20300 Transaction rejected by ThreeDSecure
20400 Transaction declined
20500 Transaction failed during execution of Fraud Detection System. Please try to resend the transaction in a few minutest.
20501 Account not configured for Fraud Detection
20700 Transaction rejected by FDS when FDS response was not allowed
21101 Debit card acceptance not enabled, Please contact the processor for further clarification.
21102 Cancel Error, Please contact the processor for further clarification.
21111 Old gateway error code
21183 Cash Back Amount cannot exceed total Amount
25001 Transaction failed since the related ParentTransactionID is invalid. Please check the ParentTransactionID, correct and resend transaction.
25002 QueryByCustTxID result: Original transaction not found
30000 CHB Transaction Uploaded
30001 Chargeback already charged back
300010 Chargeback Reversal
30002 Retrieval already retrieved
30003 Second CHB in file.
30004 Amount of chargeback or retrieval is different more than 20% from original deposit amount.
30005 Parent Transaction Of CHB Not Found
30006 Currency mismatch of CHB.
30010 Chargeback Reversal
30099 CHB Transaction Not Uploaded
333 NewCode
44444 An unknown error was received from the processor
50001 Transaction deleted by the operator ion the Operator Site
50002 Transaction rejected by the operator in the Operator Site
55 Invalid Credit Card number
55555 New Clearing Error was received from the processor, please contact support
57001 Insufficient or Uncollected Funds
57002 Invalid or incomplete transaction data, see clearing error description for details.
57003 No authorization from account holder for action
57004 Account holder deceased
57005 Action not permitted on this account, see clearing error description for details.
57006 Account on Hold
57057 Invalid company data
57100 Prenote Not Received
57101 Returned Per ODFI
57102 Check Safekeeping Return
57103 Account with branch of another financial institution
57104 RDFI Does not Participate
57105 ODFI Permits Late Return
57106 RDFI Does not permit transaction
57107 Return issue
57108 Currency or Cross border issue
57109 Stop payment on item
57110 Item and ACH entry presented for payment
57111 Issue with source documents
57112 ODFI does not participate or has limited participation
57200 Duplicate Entry, see clearing error description for details.
57201 The transaction contains invalid or incomplete transaction data, see clearing error description for details.
57202 Invalid or incomplete transaction data
57203 Transaction has expired
57204 Invalid Password
57205 Transaction voided
57206 ACH Validation error, see clearing error description for details
57500 Refund or Credits are not allowed for this account or transaction type, see clearing error description for further details.
57501 One or more transaction parameters are not allowed, see clearing error description for details.
57502 PP: Invalid action for re-authorization transaction
57503 PP: Order already voided or expired
57504 Maximum number of authorization allowed for the order is reached.
57505 The authorization is being processed.
57506 One or more payment requests failed. Check individual payment responses for more information.
57507 The Customer account is in the Payments Gateway known bad account list.
Please request the customer to provide another payment method.
57509 Invalid amount, see clearing error description for details.
57510 Merchant`s configuration requires updating – call customer support
57511 Transaction already settled, cannot be cancelled.
57600 Merchant limit exceeded
57701 The payment Trx could not be retried.
57702 The refund could not be created, because the payment specified is not confirmed or paid_out.
57703 The refund could not be created because the total amount refunded does not match.
57704 The refund could not be created because five refunds have already been created for the given payment.
57705 Invalid refund, see clearing error description for details.
57706 Invalid refund, the transaction as already been refunded, returned or voided
60001 Customer originated transaction ID must be unique
60002 Transaction cancelled due to time out
60003 Transaction is pending. Try query transaction status later
60004 Transaction not found
60005 Country code is wrong or unknown
6507 Test
70512 ACH: the payment referred to cannot be found.
70800 Payout failed -System Error. System service failed, please try again in a few minutes, if the problem persist please contact System.
70801 Payout failed – An invalid parameter or value/key or format is used in the transaction request send to the processor.
Please check the original error from System processor and contact System for further information.
70802 Payout failed -System service failed. Please check the clearing error received from System and contact System for further information.
70803 ACH: timed out, please try again in a few minutes
70804 ACH: service is currently unavailble, please try again in a few minutes
70805 ACH: system error, please try again in a few minutes.
70806 Invalid API method used, please check API specification.
70807 ACH: There is a problem with the API key used, please check your transaction data, correct and resend transaction.
70899 ACH: An unknown error has occurred. Please contact support for more information.
70900 Account deactivated – your Realex Payments account has been suspended. Please contact Realex Payments.
70999 Invalid or missing eCheck or bank account data. Please refer to the Clearing Error Id and Clearing Error description for more information.
7777 Failed To Init Trx
8888 SOAP request parameter or values are not correct
991 Transaction Document Xml Schema Error
99999 A System Error has occurred. Please try to send the transaction again in a few minutes.
If the problem persist, please contact support for further information.