Introduction

Welcome to the System APIs reference!
Here you may find all the information you need for integration with the System APIs.

System Management Flow

  1. Create and configure Platform Account and Sub-Account parameters
  2. Create and configure System Users for all entities in the System hierarchy
  3. Use APIs or Back-Office functionality to operate the System
  4. Use API or Back-Office functionality to get reports and analytics on your Platform Account/Sub-Account

System APIs referenced on this Web site:

  1. Platform Management API: Onboarding and configurations for Platform AccountsSub-AccountsUsers and Underwriting Management System
  2. Gateway API for processing transactions
  3. Echo API for processing Echo transactions
  4. Tokenization API
  5. Payouts service management
  6. Reports API

Authentication

IMPORTANT:
Be sure to use HTTPS to make API calls. HTTP calls will fail.
URL

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.

Example (for your reference only):
Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l
 

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

IMPORTANT:
transaction-processing API calls use the POST method.
 
REST Header Example:
API URL: https://transactions.4levers.com/ATPayTxWs.svc/web/RegularTransaction
Request Header:
Content-Type: application/json; charset: utf-8
Authorization: Basic “System Username and Password Base64 encoded”
 

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

Getting Started

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.

  • Account Id. This is your Platform Account identifier.
  • Sub-Account Id. This is your Sub-Account identifier.
  • Processing URL for processing transactions. Use this URL for making transaction-processing API calls.
  • Back-Office URLhttps://console.4levers.com

Your Platform Account

  • Test environment (Sandbox). You’ll receive your Platform Account credentials for the test environment via e-mail.Use this environment to validate your API requests
  • Production environment. You’ll receive your Platform Account credentials for the Production environment via SMS (text message). Use this environment for transaction processing
IMPORTANT:
in order to complete full integration with the API, you must first integrate successfully to the
Sandbox environment. In addition, integration to the Production environment will only be possible after completing
the contract between the merchant and the Processor
(typically done in parallel to integration in the Sandbox environment).

Platform Accounts Management

Platform Accounts Management RESTful Web Service API offers 4 methods:

  • GET Template
  • GET Platform Account parameters
  • Use POST to create a new Platform Account
  • Use PUT to update a Platform Account

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

  1. Invoke GET method to inquire a Platform Account parameters data packet.
  2. With the data packet you have received with the GET method you can Create a new Platform Account using the POST method or Update an existing Platform 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 Platform Account.

Basic Endpoints Sandbox: https://sandbox.4levers.com/managementapi/
Basic Endpoints Production: https://managementapi.4levers.com/

Get Platform Account Template

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
}
Response Parameters
NameTypeDescription
1idintegerPlatform Account identifier.
2serviceProviderIdintegerService Provider identifier.
Serves as SkinID for user authorization purposes.
3accountNamestringPlatform Account Name.
MaxLength(250)
4contactEmailstringPlatform Account contact email address.
MaxLength(50)
5manualPayoutboolEnables manual payout processing option. Disables external payout processor.
Deprecated
To enable Manual Payouts pass "processor": "None"
6skipBalanceCheckboolSet True to disable account balance check to perform payout transaction.
7negativePayoutboolSet True to allow negative payouts.
8payoutsobjectPlatform payouts instructions settings.
9payoutConfiguration objectPlatform payout processor settings.
10billing objectPlatform Account billing settings.
Only for Fees, that have feeSource=Platform Account.
11sumUpCutOffHourintegerAuto cut-off value.
12payoutCutOffHourintegerPayout cut-off value.
Response Codes
Response CodeDescription
200Success
400Bad Request — Your request is invalid.
401Unauthorized — Authorization failed.
403Forbidden — Access denied.
404Not Found — Wrong URL.
415Unsupported Media Type — Wrong request format.
500Internal Server Error — We had a problem with our server. Try again later.
503Service Unavailable — We’re temporarily offline for  maintenance. Please try again later.

Get Platform Account

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.

Response

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

Response Parameters

NameTypeDescription
1id integerPlatform Account identifier.
2serviceProviderId integerService Provider identifier.
Serves as SkinID for user authorization purposes.
3accountNamestringPlatform Account Name.
MaxLength(250)
4contactEmailstringPlatform Account contact email address.
MaxLength(50)
5manualPayoutboolEnables manual payout processing option. Disables external payout processor.
Deprecated
To enable Manual Payouts pass "processor": "None"
6skipBalanceCheckboolSet True to disable account balance check to perform payout transaction.
7negativepayoutboolSet True to allow negative payouts.
8payoutsobject Platform payouts instructions settings.
9payoutconfigurationobject Platform payout processor settings.
10billingobjectPlatform Account billing settings.
Only for Fees, that have feeSource=Platform Account.
11sumupcutoffhourinteger Auto cut-off value.
12payoutcutoffhourintegerPayout cut-off value.

Response Codes

Response CodeDescription
200Success
400Bad Request — Your request is invalid.
401Unauthorized — Authorization failed.
403Forbidden — Access denied.
404Not Found — Wrong URL.
415Unsupported Media Type — Wrong request format.
500Internal Server Error — We had a problem with our server. Try again later.
503Service Unavailable — We’re temporarily offline for maintenance. Please try again later.

Create Platform Account

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.

 
IMPORTANT:
All changes will take effect and the new sub account will be active after 4 hours.
{
  "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
}

Response

{
  "id": 123
}

Request Parameters

NOTE:
Optional fields can be manually removed from the request in case you want to skip them.
Enter valid parameters values in case you want to pass them in the request.
NameTypeOptionalityDescription
1idintegerrequiredplatform account identifier.
2serviceProviderIdintegerrequiredservice provider identifier.
3accountNamestringrequiredplatform account name.
maxlength(250)
4contactEmailstringrequiredplatform account contact email address.
maxlength(50)
5manualPayoutbooloptionalenables manual payout processing option. disables external payout processor.
deprecated
to enable manual payouts pass"processor": "none".
6skipBalanceCheckbooloptionalsettrueto disable account balance check to perform payout transaction.
7negativePayoutbooloptionalsettrueto allow negative payouts.
8payoutsobjectoptionalplatform payouts instructions settings.
9payoutConfigurationobjectoptionalplatform payout processor settings.
10billingobjectrequiredplatform account billing settings.
only for fees, that have feesource=platform account.
11sumUpCutOffHourintegeroptionalauto cut-off value.
in case empty, values are inherited from the parent system entity.
12payoutCutOffHourintegeroptionalpayout cut-off value.
in case empty and payout and/or scheduled fees included, values are inherited from the parent system entity.

Response Parameters

NameTypeDescription
1idintegernew platform account identifier

Response Codes

Response CodeDescription
200Success
400Bad Request — Your request is invalid.
401Unauthorized — Authorization failed.
403Forbidden — Access denied.
404Not Found — Wrong URL.
415Unsupported Media Type — Wrong request format.
500Internal Server Error — We had a problem with our server. Try again later.
503Service Unavailable — We’re temporarily offline for  maintenance. Please try again later.

Update Platform Account

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.

IMPORTANT:
All changes will take effect and the new sub account will be active after 4 hours.
 
{
  "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
}

Responce

{
  "id": "Platform Account Id",
  "name": "Platform Account Name"
}
Request Parameters
NOTE:
Optional fields can be manually removed from the request in case you want to skip them.
Enter valid parameters values in case you want to pass them in the request.
 
NameTypeOptionalityDescription
1idintegerrequiredPlatform account identifier.
2serviceProviderIdintegeroptionalService provider identifier.
3accountNamestringoptionalplatform account name.
MaxLength(250)
4contactEmailstringoptionalPlatform account contact email address.
MaxLength(50)
5manualPayoutbooloptionalEnables manual payout processing option. disables external payout processor.
Deprecated
to enable manual payouts pass"processor": "none".
6skipBalanceCheckbooloptionalSettrueto disable account balance check to perform payout transaction.
7negativePayoutbooloptionalSettrueto allow negative payouts.
8payoutsobjectoptionalPlatform payouts instructions settings.
9payoutConfigurationobjectoptionalPlatform payout processor settings.
10billingobjectrequiredPlatform account billing settings.
only for fees, that have feesource=platform account.
11sumUpCutOffHourintegeroptionalAuto cut-off value.
12payoutCutOffHourintegeroptionalPayout cut-off value.

Response Parameters

NameTypeDescription
1idintegerNew platform account identifier
2namestringNew Platform Account name

Response Codes

Response CodeDescription
200Success
400Bad Request — Your request is invalid.
401Unauthorized — Authorization failed.
403Forbidden — Access denied.
404Not Found — Wrong URL.
415Unsupported Media Type — Wrong request format.
500Internal Server Error — We had a problem with our server. Try again later.
503Service Unavailable — We’re temporarily offline for maintenance. Please try again later.

Objects Reference

Payout Configuration

NameTypeOptionalityDescription
1parametersstringrequiredProcessor parameters. Pre-populated for each processor individually.
2processorSys.EnumrequiredProcessors’ 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.

Payouts

NameTypeOptionalityDescription
1calculationobjectrequiredPayout amount calculation parameters.
2namestringrequired

Payout name.

Max (250)

3payoutMethodACHobjectrequired

A list of ach payment method parameters for all system currencies.

You can specify different parameters for each currency.
4schedulerobjectrequiredPayout configurations.
5twoStepApprovalbooloptionalEnables two step payout approval: authorization and manual confirmation.

Payout Method ACH

Name Type Optionality Description
1 Currency Enum Required

Transactions processing currency type.

Avaliable Values:
  • CAD – 6
  • USD – 1
  • EUR – 2
  • GBP – 4
  • AUD – 5
  • SGD – 11
  • JPY – 23
  • NZD – 32
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:
Savings 1 Savings account
Checking 2 Checking account
6 EntityType Enum Optionality Ach entity type.
Avaliable Values:
Personal Personal account
Business Business account
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

Payouts Calculation

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:
Fixed 1 Fixed amount
Percentage 2 Percentage amount
Pastdate 3 Balance on the day in the past
Pastinterval 4 Balance for the time interval

Scheduler

NameTypeOptionalityDescription
1idintegeroptionalPayouts scheduler identifier.
2isSchedulerDisabledbooloptionalSet "isschedulerdisabled": true or false to enable/disable a payout scheduler.
3dayNumberintegeroptionalPpayout day sequence number.
must be greater than 0.
4endDatedatetimeoptionalPayout expiration date.
must be greater than datetime.now, if expiration is set to untildate.
5expirationenumoptional

payout expiration settings.

Avaliable Values:
untildate1payout expires on a certain date
limitedcount2enter number of occurrences
neverexpire3payout never expires
6intervalenumoptional

Payout interval.

Avaliable Values:
daily1every day. enter day sequential number.
weekly2every week
enter a week sequential number and a weekday number (see enumeration below).

Valid parameters:

  • 0 – Sunday
  • 1 – Monday
  • 2 – Tuesday
  • 3 – Wednesday
  • 4 – Thursday
  • 5 – Friday
  • 6 – Saturday
monthly3every month
enter payout due day and month sequential number.
yearly4every year
enter a payout due year, month and day sequential number.
7intervalCountintegeroptionalDay or month (for monthly option) sequential number.
must be greater than 0
8monthNumberintegeroptionalMonth sequential number. maximum = 12. minimum = 1.
required if interval=yearly.
9occurencesQuantityintegeroptionalPayouts quantity.
required and greater than 0 if expiration=limitedcount.
 

Platform Account Billing

NameTypeOptionalityDescription
1scheduledFeeslistOptionalScheduled fees settings.
2slidingScaleFeeslistOptionalScale range fees settings.
3transactionFeeslistOptionalPer transaction fees settings.
4slidingScaleCounterResetobjectOptionalCounter reset for Sliding Scale fees.

Sliding Scale Counter Reset

NameTypeOptionalityDescription
1timeIntervalenumrequired

Counter reset intervals.

Avaliable Values:
WeeklySelect to enable a weekly counter reset2
MonthlySelect to enable a monthly counter reset3
YearlySelect to enable an annual counter reset4
InfiniteSelect to enable an infinite counter5
2numberOfIntervalsintegerrequiredEnter 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

Scheduled Fees

NameTypeOptionalityDescription
1currencyenumrequired

A list of CurrencyTypesIDs.

Avaliable Values:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
2idintegerrequiredScheduled fees identifier.
3amountdoublerequiredFee amount.
Max 2 decimal places.
4dayNumberintegerrequiredDay sequential number.
0 is not allowed for “interval”: “Yearly” and “interval”: “Monthly”.
0 is allowed for “interval”: “Daily” and “interval”: “Weekly”.
5endDatedatetimerequiredFee expiration date.
Must be greater than DateTime.Now, if Expiration is set to UntilDate.
6expirationenumrequired

Fee expiration settings.

Avaliable Values:
UntilDate1Select to set a fee expiration date
LimitedCount2Select to enable fees limited count
NeverExpire3Select to disable fees expiration
7intervalenumrequired

Fee interval.

Avaliable Values:
Daily1Every day. Enter day sequential number.
Weekly2Every week
Enter a week sequential number and a weekday number (see enumeration below)
  • Sunday – 0
  • Monday – 1
  • Tuesday – 2
  • Wednesday – 3
  • Thursday – 4
  • Friday – 5
  • Saturday – 6
Monthly3Every month
Enter fee day and month sequential number.
Yearly4Every year
Enter a fee year, month and day sequential number.
8intervalCountintegerrequiredDay or Month (for a monthly option) sequential number.
Must be greater than 0.
9monthNumberintegerrequiredMonth sequential number. Maximum = 12. Minimum = 1.
Required if Interval=Yearly.
10namestringrequiredFee name.
Max (50)
11occurencesQuantityintegerrequiredNumber of a Fee occurrences.
Required if Expiration=LimitedCount.

Sliding Scale Range

Can be amount, percentage or combination of the two.

NameTypeOptionalityDescription
1amountdoublerequiredFee amount. ^\d+(\.\d{1,2})?$
Max 2 decimal places.
2percentagedoublerequiredFee percentage amount.
Max 6 decimal places.
3maxCountintegerrequiredMaximum transactions count.
Must be greater than MinCount.
“maxCount” can be equal to “minCount”.
4minCountintegerrequiredMinimum transactions count.
Must be greater than 0.

Transaction Fees

NameTypeOptionalityDescription
1amountdoubleoptionalFee amount.
Max 2 decimal places. ^\d+(\.\d{1,2})?$
Required if fee is a fixed amount.
2typeIdintegerrequiredFee identifier.
3percentagedoubleoptionalFee percentage amount.
Max 6 decimal places.
Required if fee is a percentage amount.
4includeOwnTransactionsbooloptionalSet "includeOwnTransactions": true to make own transactions and subordinate entities transactions trigger entity fees.
5namestringrequiredFee name.
6reversalEnabledenumoptional

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:
Cancel12
PartialRefund9
Refund8
Reversal17
Void3

Billing Address

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

Sub-Accounts Management RESTful Web Service API offers 4 methods:

  • GET a Sub-Account template by the serviceProviderId
  • GET an existing Sub-Account by the subAccountId
  • Use POST to create a new Sub-Account
  • Use PUT to update Sub-Account

In 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/

Get Sub-Account Configurations

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

Responce

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

Response Parameters

NameTypeDescription
1accountIdintegerPlatform Account identifier.
2subAccountIdintegerSub-Account identifier.
3merchantIdstringMerchant identifier (MID).
4externalIdstringMerchant external identifier.
5mccstringMerchant Category Code (MCC).
6applicationIdintegerUnderwriting application identifier.
7accountNamestringMax250
Platform Account Name.
8signUpDatedatetime 
9approvalDatedatetime 
10boardingDatedatetime 
11modificationDatedatetime 
12billingobjectSub-Account billing settings.
Only for Fees, that have feeSource=Sub-Account.
13payoutsobjectSub-Account payouts settings.
14processingobjectSub-Account processing settings.
15serviceProviderIdintegerService Provider identifier.
Serves as SkinID for user authorization purposes.
16subAccountNamestringSub-Account name.
varchar(50)
17sumUpCutOffHourintegerAuto cut-off value.
18payoutCutOffHourintegerPayout cut-off value.
19merchantStatementobjectMerchant statement settings. 
20isTemplatebooleanDefines a template account

Response Codes

Response CodeDescription
400Bad Request — Your request is invalid.
401Unauthorized — Authorization failed.
403Forbidden — Access denied.
404Not Found — Wrong URL.
415Unsupported Media Type — Wrong request format.
500Internal Server Error — We had a problem with our server. Try again later.
503Service Unavailable — We’re temporarily offline for maintenance. Please try again later.

Get Sub-Account

Use GET method to inquire the existing Sub-Account parameters packet.

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}

Response

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

Response Parameters

NameTypeDescription
1accountIdintegerPlatform Account identifier.
2subAccountIdintegerSub-Account identifier.
3merchantIdstringMerchant identifier (MID).
4externalIdstringMerchant external identifier.
5mccstringMerchant Category Code (MCC).
6applicationIdintegerUnderwriting application identifier.
7accountNamestringMax250
Platform Account Name.
8signUpDatedatetime 
9approvalDatedatetime 
10boardingDatedatetime 
11billingobjectSub-Account billing settings.
Only for Fees, that have feeSource=Sub-Account.
12payoutsobjectSub-Account payouts settings.
13processingobjectSub-Account processing settings.
14serviceProviderIdintegerService Provider identifier.
Serves as SkinID for user authorization purposes.
15subAccountNamestringSub-Account name.
varchar(50)
16sumUpCutOffHourintegerAuto cut-off value.
17payoutCutOffHourintegerPayout cut-off value.
18merchantStatementobjectMerchant statement settings. 
19isTemplatebooleanDefines a template account

Response Codes

Response CodeDescription
400Bad Request — Your request is invalid.
401Unauthorized — Authorization failed.
403Forbidden — Access denied.
404Not Found — Wrong URL.
415Unsupported Media Type — Wrong request format.
500Internal Server Error — We had a problem with our server. Try again later.
503Service Unavailable — We’re temporarily offline for maintenance. Please try again later.

Create Sub-Account

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.

 

IMPORTANT:
All changes will take effect and the new sub account will be active after 4 hours.
{
  "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"
  },

}

Response

{
"account":101,
"subAccount":84,
"apiKey":"ac319cffc217497684eff81736a3786d",
"merchantIdFound": [
    "101.1",
    "101.2"
  ]
}

Request Parameters

NOTE:
Optional fields can be manually removed from the request in case you want to skip them.
Enter valid parameters values in case you want to pass them in the request.
NameTypeOptionalityDescription
1accountIdintegerrequiredPlatform Account identifier.
2subAccountIdintegeroptionalSource Sub-Account identifier.
3merchantIdstringoptionalMerchant identifier (MID).
4externalIdstringoptionalMerchant external identifier.
5mccstringoptionalMerchant Category Code (MCC).
6applicationIdintegeroptionalUnderwriting 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.
7accountNamestringrequiredMax250
Platform Account Name.
8billingobjectoptionalSub-Account billing settings.
Only for Fees, that have feeSource=Sub-Account.
9payoutsobjectoptionalSub-Account payouts settings.
10processingobjectrequiredSub-Account processing settings.
11serviceProviderIdintegerrequiredService Provider identifier.
Serves as SkinID for user authorization purposes.
12subAccountNamestringrequiredSub-Account name.
varchar(50)
13sumUpCutOffHourintegeroptionalAuto cut-off value.
In case empty, values are inherited from the parent system entity
14payoutCutOffHourintegeroptionalPayout cut-off value.
In case empty and payout and/or scheduled fees included, values are inherited from the parent system entity.
15merchantStatementobjectoptionalMerchant statement settings.
16isTemplatebooleanoptionalDefines a template account

Response Parameters

NameTypeDescription
1accountintegerNew Platform Account identifier.
2subAccountintegerNew Sub-Account identifier.
3apiKeystringAPI key.
Required parameter for Tokenization API.
4merchantIdFoundarrayArray with the id (PlatdormId.Sub-AccountId) of existing Sub-Accounts with the same MID.

Response Codes

Response CodeDescription
201Created — Sub-Account has been created successfully.
400Bad Request — Your request is invalid.
401Unauthorized — Authorization failed.
403Forbidden — Access denied.
404Not Found — Wrong URL.
415Unsupported Media Type — Wrong request format.
500Internal Server Error — We had a problem with our server. Try again later.
503Service Unavailable — We’re temporarily offline for maintenance. Please try again later.

Update Sub-Account

 

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

Response

{
  "id": "Sub-Account Id",
  "name": "Sub-Account Name"
  "merchantIdFound": [
    "101.1",
    "101.2"
  ]
}
Request Parameters
NameTypeOptionalityDescription
1accountIdintegerrequiredPlatform Account identifier.
2subAccountIdintegeroptionalSource Sub-Account identifier.
3merchantIdstringoptionalMerchant identifier (MID).
4externalIdstringoptionalMerchant external identifier.
5mccstringoptionalMerchant Category Code (MCC).
6applicationIdintegeroptionalUnderwriting 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.
7accountNamestringrequiredMax250
Platform Account Name.
8billingobjectoptionalSub-Account billing settings.
Only for Fees, that have feeSource=Sub-Account.
9payoutsobjectoptionalSub-Account payouts settings.
10processingobjectrequiredSub-Account processing settings.
11serviceProviderIdintegerrequiredService Provider identifier.
Serves as SkinID for user authorization purposes.
12subAccountNamestringrequiredSub-Account name.
varchar(50)
13sumUpCutOffHourintegeroptionalAuto cut-off value.
In case empty, values are inherited from the parent system entity
14payoutCutOffHourintegeroptionalPayout cut-off value.
In case empty and payout and/or scheduled fees included, values are inherited from the parent system entity.
15merchantStatementobjectoptionalMerchant statement settings.
16isTemplatebooleanoptionalDefines a template account

Response Codes

Response CodeDescription
204No Content — Sub-Account has been updated successfully.
400Bad Request — Your request is invalid.
401Unauthorized — Authorization failed.
403Forbidden — Access denied.
404Not Found — Wrong URL.
415Unsupported Media Type — Wrong request format.
500Internal Server Error — We had a problem with our server. Try again later.
503Service Unavailable — We’re temporarily offline for maintenance. Please try again later.

Objects Reference

Payouts Configurations

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.

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

Payout Method ACH

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:
Savings 1 Savings account
Checking 2 Checking account
5 entityType enum optional

ACH entity type.

Avaliable Values:
Personal Personal account
Business Business account
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

cardOnFileProcessorConfiguration

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.

Payout Method Credit Card

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

Payouts Calculation

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:
Fixed 1 fixed amount
Percentage 2 Percentage amount
PastDate 3 Balance on the day in the past
PastInterval 4 Balance for the time interval
OneTime 4 Single payout

Scheduler

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:
UntilDate 1 Payout expires on a certain date
LimitedCount 2 Enter number of occurrences
NeverExpire 3 Payout never expires
6 interval enum optional

Fee interval.

Avaliable Values:
Daily 1 Every day. Enter day sequential number.
Weekly 2 Every week Enter a week sequential number and a weekday number (see enumeration below)
  • Sunday – 0
  • Monday – 1
  • Tuesday – 2
  • Wednesday – 3
  • Thursday – 4
  • Friday – 5
  • Saturday – 6
Monthly 3 Every month Enter fee day and month sequential number.
Yearly 4 Every year 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 occurrencesQuantity integer optional Payouts quantity. Required and greater than 0 if Expiration=LimitedCount.

Processing

NameTypeOptionalityDescription
1achobjectoptional

ach processing settings.

optional if creditcard is not null.
2creditСardsobjectoptional

credit card processing settings.

optional if ach is not null.
3currencyenumoptional

transactions processing currency type.

Avaliable Values:
  • CAD – 6
  • USD – 1
  • EUR – 2
  • GBP – 4
  • AUD – 5
  • SGD – 11
  • JPY – 23
  • NZD – 32
4fraudPreventionEnabledbooloptionalboolean enables fraud detection service.
5recurringBillingobjectoptionalrecurring billing configurations.
6transactionModeenumoptional

transaction processing mode.

Avaliable Values:
processing0enables transactions processing using regular system gateway.
import1enables transactions import service to import transactions from the external processor.
echo2enables echo mode, that replicates client’s transactions.

CreditCard

NameTypeOptionalityDescription
1autoCapturebooloptionalboolean enables capturing service.
can be enabled for all transactionmode with the exception of echo and import.
2giftCardsEnabledbooloptionalboolean parameter that enables gift cards processing.
available in case credit cards processing is enabled.
available for echo and import transaction modes.
3creditCardTypesenumrequiredcredit 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:
visa0
mastercard1
diners2
isracard3
americanexpress4
discover7
jcb8
visadebit9
mastercarddebit10
delta11
electron12
maestro13
solo14
interac15
4processorsobjectrequiredprocessor configurations.
5tokenizationenumoptional

tokenization options.

Avaliable Values:
external1
internal2

Recurring Billing

NameTypeOptionalityDescription
1autoRenewalEnabledbooloptionalenables recurring billing plan auto renewal option.
2recurringEngineEnabledbooloptionalenables recurring billing processing option.
3subscriptionsEnabledbooloptionalenables recurring billing creation option.

ACH

NameTypeOptionalityDescription
1processorsobjectrequiredprocessor configurations.

Processors

NameTypeOptionalityDescription
1idintegeroptionalprocessor identifier.
2parametersstringrequiredprocessor parameters. pre-populated for each processor individually.
3processorsys.enumoptional

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.

Billing

NameTypeOptionalityDescription
1scheduledFeeslistoptionalscheduled fees settings.
2slidingscaleFeeslistoptionalscale range fees settings.
3transactionFeeslistoptionalper transaction fees settings.
4interchangeFeesOverrideobjectoptionalinterchange fees override settings.
5interchangeFeeSeasonobjectoptionalnot required parameters enabled for interchangefees.
6interchangeFeesRegionslistoptionalinterchange 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.
7interchangeFeesReversalEnabledlistoptional

transactions types for interchange fees reversal.

Avaliable Values:
cancel12
partialrefund9
refund8
reversal17
void3
8feePriorityLevelbyteoptionalspecify fees priority level for per-transaction fees and sliding scale fees.
available options: 1-10.
9slidingScaleCounterResetobjectoptionalcounter reset for sliding scale fees.

Interchange Fees Override

NameTypeOptionalityDescription
1sourceenumrequired

string with feesource enum values.

Avaliable Values:
  1. subAccount
  2. platform
  3. serviceprovider
  4. agent
  5. operator
  6. self
 
2targetenumrequired

string with feesource enum values.

Avaliable Values:
  • platform – 0
  • serviceprovider – 1
  • operator – 2
  • reservebalance – 3
  • subaccount – 4
  • outgoing – 5
  • agent – 6
  • self – 7
3sourceSubAccountIdintegeroptional
4targetSubAccountIdintegeroptionala target sub-account identifier.
5sourceAgentIdintegeroptionala source agent identifier.
6targetAgentIdintegeroptionala target agent identifier.

Fee Season

NameTypeOptionalityDescription
1dateFromstringrequiredfee is active starting from this date.
2dateTostringrequiredfee ending date.
3offSeasonMonthlistrequired

a list of fee inactive months.

int32

enter zero to make a fee active on every month.

Split

NameTypeOptionalityDescription
1priorityLevelintegerrequiredfees split priority level from 1 to 10.
2percentagedoublerequired

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
3sourceenumrequired

string with feesource enum values.

Avaliable Values:
  • subaccount – 1
  • platform – 2
  • serviceprovider – 3
  • agent – 4
  • operator – 5
  • self – 6
4targetenumrequired

string with feesource enum values.

Avaliable Values:
  • platform – 0
  • serviceprovider – 1
  • operator – 2
  • reservebalance – 3
  • subaccount – 4
  • outgoing – 5
  • agent – 6
  • self – 7
5sourceSubAccountIdintegeroptionalsource sub-account identifier.
6targetSubAccountIdintegeroptionaltarget sub-account identifier.
7sourceAgentIdintegeroptionalsource agent identifier.
8targetAgentIdintegeroptionaltarget agent identifier.

Buyrate

NameTypeOptionalityDescription
1amountdoublerequiredmax 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.
2percentagedoublerequired
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.
3sourceenumrequired

string with feesource enum values.

Avaliable Values:
subaccount1
platform2
serviceprovider3
agent4
operator5
self6
4targetenumrequired

string with feesource enum values.

Avaliable Values:
platform0
serviceprovider1
operator2
reservebalance3
subaccount4
outgoing5
agent6
self7
5sourceSubAccountIdintegeroptionalsource sub-account identifier.
6targetSubAccountIdintegeroptionaltarget sub-account identifier.
7sourceAgentIdintegeroptionalsource agent identifier.
8targetAgentIdintegeroptionaltarget agent identifier.

Sliding Scale Counter Reset

NameTypeOptionalityDescription
1timeintervalenumoptional

counter reset intervals.

Avaliable Values:
weeklyselect to enable a weekly counter reset.2
monthlyselect to enable a monthly counter reset.3
yearlyselect to enable an annual counter reset.4
infiniteselect to enable an infinite counter.5
2numberofintervalsintegerrequiredenter 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.

Override

NameTypeOptionalityDescription
1sourceenumrequired

string with feesource enum values.

Avaliable Values:
  • subaccount – 1
  • platform – 2
  • serviceprovider – 3
  • agent – 4
  • operator – 5
  • self – 6
2targetenumrequired

string with feesource enum values.

Avaliable Values:
  • platform – 0
  • serviceprovider – 1
  • operator – 2
  • reservebalance – 3
  • subaccount – 4
  • outgoing – 5
  • agent – 6
  • self – 7
3sourceSubAccountIdintegeroptionala source sub-account identifier.
4targetSubAccountIdintegeroptionala target sub-account identifier.
5sourceAgentIdintegeroptionala source agent identifier.
6targetAgentIdintegeroptionala target agent identifier.

Sliding Scale Counter Reset

NameTypeOptionalityDescription
1timeIntervalenumoptional

counter reset intervals.

Avaliable Values:
weeklyselect to enable a weekly counter reset.2
monthlyselect to enable a monthly counter reset.3
yearlyselect to enable an annual counter reset.4
infiniteselect to enable an infinite counter.5
2numberOfIntervalsintegerrequiredenter 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.

Scheduled Fees

NameTypeOptionalityDescription
1idintegeroptionalScheduled fees identifier.
2amountdoubleoptional
Fee amount.max 2 decimal places.
3dayNumberintegeroptional

Day sequential number.

must be greater than 0.
4endDatedatetimeoptional

Fee expiration date.

must be greater than datetime.now, if expiration is set to untildate.
5expirationenumoptional

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.
6intervalenumoptional

Fee interval.

Avaliable Values:
  • daily – 1 every day.

Enter day sequential number.

  • weekly – 2 every

Week enter a week sequential number and a weekday number (see enumeration below).

  • Sunday – 0

  • Monday – 1

  • Tuesday – 2

  • Wednesday – 3

  • Thursday – 4

  • Friday – 5

  • Saturday – 6

  • Monthly – 3 – every month

Enter fee day and month sequential number.

  • Yearly – 4 every year

Enter a fee year, month and day sequential number.

7intervalCountintegeroptional

Day sequential number.

Must be greater than 0.
8monthNumberintegeroptional

month sequential number. maximum =” 12. “minimum =” 1.

required “if interval=”monthly or yearly.
9namestringoptional

fee name.

max (50)
10occurrencesQuantityintegeroptional

number of a fee occurrences.

required if expiration=limitedcount.
11overrideobjectoptionaldefault feesource and feetarget override.
12feeSeasonobjectoptionalnot required parameters enabled for slidingscalefees, scheduledfees and transactionfees.

Sliding Scale Fees

NameTypeOptionalityDescription
1feePriorityLevelintegeroptionalfee priority level from 0 to 10.
2idintegeroptionalfee identifier.
3namestringrequiredfee name.
max (50)
4overrideobjectoptionaldefault feesource and feetarget override.
5splitobjectoptionalnot required split parameters.
use to split fees among multiple targets.
set priority level and a fee share for each fee target.
6feeSeasonobjectoptionalnot required parameters enabled for slidingscalefees, scheduledfees and transactionfees.
7buyrateobjectoptionalbuyrate 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.
8rangesenumrequiredscale range fees ranges.
required at least one.
9reversalEnabledenumoptional

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:
cancel12
partialrefund9
refund8
reversal17
void3

Sliding Scale Range

Can be amount, percentage or combination of the two.

NameTypeOptionalityDescription
1amountdoublerequiredfee amount. ^\d+(\.\d{1,2})?$
max 2 decimal places.
2percentagedoublerequired

fee percentage amount.

max 6 decimal places.
3maxCountintegerrequired
maximum transactions count.must be greater than mincount.
“maxCount” can be equal to “minCount”.
4minCountintegerrequired

minimum transactions count.

must be greater than 0.

Transaction Fees

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.

NameTypeOptionalityDescription
1feePriorityLevelintegeroptionalfee priority level from 0 to 10.
2amountdoubleoptional

fee amount. ^\d+(\.\d{1,2})?$

max 2 decimal places.
3typeidintegeroptionalfee identifier.
4percentagedoubleoptional

fee percentage amount.

max 6 decimal places.
5namestringrequiredfee name.
6overrideobjectoptionalfee identifier.
7splitobjectoptionalfee identifier.
8feeSeasonobjectoptionalnot required parameters enabled for slidingscalefees, scheduledfees and transactionfees.
9buyrateobjectoptional

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.
10reversalEnabledenumoptional

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:
  • cancel – “12
  • partialrefund – 9
  • refund – 8
  • reversal – 17
  • void – 3

Merchant Statement

NameTypeOptionalityDescription
1merchantNumberstringrequiredmerchant number.
max 50
pattern: ^([\+ ]+)?(\d[\d- ]+)?(\([\d- ]+\))?[\d- ]+\d$
2merchantNamestringrequiredmerchant name.
3merchantDBAstringrequiredmerchant doing business as (dba) name.
4autoDeliveryContactEmailstringoptionaldelivery email address.
max 50

Billing Address

NameTypeOptionalityDescription
1countrystringconditional
required if “usebillingadress” =” true “else optional
country value in the list of available countries. reg exp: /^([a-z]|[a-z])*$/
2streetAddressstringconditionalrequired if “usebillingadress” =” true “else optional
reg exp: /^([a-z]|[a-z]|[0-9]|[.]|[-]|[,]|[+]|[ ]|[/]|[‘])*$/
3citystringconditionalrequired if “usebillingadress” =” true “else optional
reg exp: /^([a-z]|[a-z]|[0-9]|[,]|[-]|[ ])*$/
4provincestringconditional
required if “usebillingadress” =” true “and “processor” =” “cibc “us” else optional
reg exp: /^([a-z]|[a-z])*$/
5zipCodestringconditionalrequired if “usebillingadress” =” true “else optional
reg exp: /^([a-z]|[a-z]|[0-9]|[,]|[-]|[ ])*$/

Users Management

Users Management RESTful Web Service API offers 4 methods:

  • GET user by userName
  • GET user by userId
  • Use PUT to update user
  • Use POST to create a new user

Basic Endpoints Sandbox: https://sandbox.4levers.com/managementapi/
Basic Endpoints Production: https://managementapi.4levers.com/

Get User by User Id

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}

Response

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

Response Parameters

NameTypeDescription
1idintegersystem user identifier.
2operatorIdintegeroperator identifier.
3serviceProviderIdinteger

service provider identifier.

serves as skinid for user authorization purposes.
4userNamestring

username.

maxlength(20)

special characters ” and \ must be placed as \” and \\
5firstNamestring

user first name.

maxlength(100)

special characters ” and \ must be placed as \” and \\
6lastNamestring

user last name.

maxlength(100)

special characters ” and \ must be placed as \” and \\
7emailstring

user last name.

maxlength(100)

special characters ” and \ must be placed as \” and \\
8phonestring

user contact phone number.

maxlength(50)
9userRoleinteger

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.
10addAllAccountsbool

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).
11accountsobjectavailable platform accounts and sub-accounts for this user.
11isMfaEnabledboolParameter that indicates using of the Multi-factor Authentication functionality.

Response Codes

Response CodeDescription
200Ok
400Bad Request — Your request is invalid.
401Unauthorized — Authorization failed.
403Forbidden — Access denied.
404Not Found — Wrong URL.
415Unsupported Media Type — Wrong request format.
500Internal Server Error — We had a problem with our server. Try again later.
503Service Unavailable — We’re temporarily offline for maintenance. Please try again later.

Get User by Username

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}

Responce

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

Response Parameters

NameTypeDescription
1idintegersystem user identifier.
2operatorIdintegeroperator identifier.
3serviceProviderIdinteger

service provider identifier.

serves as skinid for user authorization purposes.
4userNamestring

username.

maxlength(20)

special characters ” and \ must be placed as \” and \\
5firstNamestring

user first name.

maxlength(100)

special characters ” and \ must be placed as \” and \\
6lastNamestring

user last name.

maxlength(100)

special characters ” and \ must be placed as \” and \\
7emailstring

user last name.

maxlength(100)

special characters ” and \ must be placed as \” and \\
8phonestring

user contact phone number.

maxlength(50)
9userRoleinteger

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.
10addAllAccountsbool

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).
11accountsobjectavailable platform accounts and sub-accounts for this user.

Response Codes

Response CodeDescription
200Ok
400Bad Request — Your request is invalid.
401Unauthorized — Authorization failed.
403Forbidden — Access denied.
404Not Found — Wrong URL.
415Unsupported Media Type — Wrong request format.
500Internal Server Error — We had a problem with our server. Try again later.
503Service Unavailable — We’re temporarily offline for maintenance. Please try again later.

Create User

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": []
}

Responce

{
 "id": 123 
}

Request Parameters

NOTE:
Optional fields can be manually removed from the request in case you want to skip them.Enter valid parameters values in case you want to pass them in the request.
NameTypeOptionalityDescription
1idintegeroptionalsystem user identifier.
2operatorIdintegeroptionaloperator identifier.
3serviceProviderIdintegeroptional

service provider identifier.

serves as skinid for user authorization purposes.
4userNamestringrequired

username.

maxlength(20)

special characters ” and \ must be placed as \” and \\
5passwordstringoptionalNullable MaxLength=”20 Pass this parameter value to create a temporary password for a system user.
6firstNamestringrequired

user first name.

maxlength(100)

special characters ” and \ must be placed as \” and \\
7lastNamestringrequired

user last name.

maxlength(100)

special characters ” and \ must be placed as \” and \\
8emailstringrequired

user last name.

maxlength(100)

special characters ” and \ must be placed as \” and \\
9phonestringrequired

user contact phone number.

maxlength(50)
10userRoleinteger 

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.
11addAllAccountsbool 

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).
12accountsobject available platform accounts and sub-accounts for this user.
 
Response Parameters
NameTypeDescription
1idintegersystem user identifier.
Response Codes
Response CodeDescription
200Ok
201Created — User has been created successfully.
400Bad Request — Your request is invalid.
401Unauthorized — Authorization failed.
403Forbidden — Access denied.
404Not Found — Wrong URL.
415Unsupported Media Type — Wrong request format.
500Internal Server Error — We had a problem with our server. Try again later.
503Service Unavailable — We’re temporarily offline for maintenance. Please try again later.

Update User

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": []
}

Response

{
    "id": 123,
    "name": "userName"
}

Request Parameters

NOTE:
Optional fields can be manually removed from the request in case you want to skip them.
Enter valid parameters values in case you want to pass them in the request.
NameTypeOptionalityDescription
1idintegerrequiredSystem user identifier.
2operatorIdintegeroptional

Operator identifier.

Required for operator manager/api operator manager.
3serviceProviderIdintegeroptional

Service provider identifier.

Serves as skinid for user authorization purposes.

Required for all back-office users/ api users.
4userNamestringrequired

Username.

Maxlength(20)

Special characters ” and \ must be placed as \” and \\
5firstNamestringrequired

User first name.

MaxLength(100)

Special characters ” and \ must be placed as \” and \\
6lastNamestringrequired

User last name.

MaxLength(100)

Special characters ” and \ must be placed as \” and \\
7emailstringrequired

User contact email address.

MaxLength(50)
8phonestringrequired

User contact phone number.

MaxLength(50)
9userRoleinteger 

User role.

operatormanager2back-office user role.
user role for operators’ users.
serviceprovideradmin3back-office user role.
user role for service provider admin users.
platformadmin4back-office user role.
user role for platform admin users.
platformuser5back-office user role.
user role for platform users.
apiprocessingreports6api user role.
standard api user.
apiserviceprovidermanagement7api user role.
service provider admin user access rights.
apiplatformmanagement8api user role.
platform admin user access rights.
apioperatormanager13api user role.
operator user access rights.
customuserroleidplease contact your admin to get custom user roles ids.
10addAllAccountsbool 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.
11accountsobject available platform accounts and sub-accounts for this user.
Response Codes
Response CodeDescription
200Ok
204No Content — User has been updated successfully.
400Bad Request — Your request is invalid.
401Unauthorized — Authorization failed.
403Forbidden — Access denied.
404Not Found — Wrong URL.
415Unsupported Media Type — Wrong request format.
500Internal Server Error — We had a problem with our server. Try again later.
503Service Unavailable — We’re temporarily offline for maintenance. Please try again later.

Objects Reference

Accounts

NameTypeDescription
1accountIdintegerplatform account identifier.
2subAccountsintegerlist of sub-account identifiers.

Underwriting Management

Underwriting Management RESTful Web Service API offers 7 methods:

  • GET underwriting applications by identifier
  • GET an existing underwriting applications configuration template by the template identifier
  • GET underwriting application fields’ statuses by the application identifier
  • GET Use POST to create a token to access underwriting application iFrame
  • Use POST to create new underwriting applications
  • Use PUT to update underwriting applications
  • Use PATCH to update existing underwriting applications fields’ statuses

Basic Endpoints Sandbox: https://sandbox.4levers.com/managementapi
Basic Endpoints Production: https://managementapi.4levers.com

Get Application

Use GET Underwriting Application method to inquire an existing underwriting application

  • In the request URL user enters {id} of the existing underwriting application
  • In the response user receives a Json object with application fields with values

Endpoint:
GET

Sandbox: https://sandbox.4levers.com/managementapi/api/underwriting-applications/{applicationId}
Production: https://managementapi.4levers.com/api/underwriting-applications/{applicationId}

See Objects Reference for full code sample fields description

https://sandbox.4levers.com/managementapi/api/underwriting-applications/{applicationId}

Response

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

Response Parameters

NameTypeDescription
1idstringapplication identifier.
2payoutStatusenum

application status:

Avaliable Values:
  • approved
  • declined
  • underreview
3signUpdatedatetime
4approvalDeclineDatedatetime
5resubmissionDatedatetime
6modificationDatedatetime
7namestringapplication name.
8templateIdstringapplication template identifier.
9contactEmailstringnotification target email.

Application Body Object

NameTypeDescription
1businessDetailsobjectbusiness details include business general information.
2businessDetailsDocumentsobjectbusiness details documents include business registration documents.
3bankingDetailsobjectbanking details include business bank and bank account information.
4bankingDetailsDocumentsobjectbanking details documents include business banking documents.
5contactDetailsarraycontact details include business contact information.
6ownerDetailsarrayowner details include business owner information.
7ownerDetailsDocumentsobjectowner details documents include documents provided by the business owner.
8businessProfileobjectbusiness profile includes information about the nature of a business
9businessProfileDocumentsobjectbusiness profile documents include pci compliance certificate.
10businessFinancialsobjectbusiness financials include business payment cards processing projections.
11businessProcessingHistoryobjectbusiness processing history includes historical data about payment card processing.

Get Application Template

…/api/underwriting-templates/{templateId}/application-template

Response Example

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

  • In the request URL user enters {id} of the existing underwriting Template
  • In the response user receives a Json object with template fields marked as required, visible or hidden
  • required – required fields
  • visible – optional and visible in application fields
  • hidden – not displayed in application

Endpoint:
GET

Sandbox: https://sandbox.4levers.com/managementapi/api/underwriting-templates/{templateId}/application-template
Production: https://managementapi.4levers.com/api/underwriting-templates/{templateId}/application-template

See Objects Reference for full code sample fields description
 

Get Application Fields Statuses

…/api/underwriting-applications/{applicationId:int}/field-status

Response Example

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

  • In the request URL user enters {id} of the existing underwriting application
  • In the response user receives a Json object with application fields’ statuses.

Values of application fields in the response Json are fields’ statuses:

  • new – new fields
  • approved – fields that have been approved by an authorized user
  • declined – fields that have been declined by an authorized user

Endpoint:
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

See Objects Reference for full code sample fields description

Get Application Status

…/api/underwriting-applications/{applicationId}/status

Response Example

{ 
"payoutStatus": "Approved" 
}

Use GET Underwriting Application Statuses method to inquire an existing underwriting application statuses

  • In the request URL user enters {id} of the existing underwriting application
  • In the response user receives a Json object with application status.

Values of application statuses:

  • “UnderReview”
  • “UnderValidation”
  • “PendingResubmission”
  • “Approved“
  • “Declined“
  • “OnboardingCompleted“
  • “ReadyToProcess“

Endpoint:
GET

Sandbox: https://sandbox.4levers.com/managementapi/api/underwriting-applications/{applicationId}/status
Production: https://managementapi.4levers.com/api/underwriting-applications/{applicationId}/status

UMS IFrame Authentication

Request example

Payload: {
          "login": "USERNAME",
          "password": "PASSWORD"
         }

Use POST Authentication Token method to inquire a token to access underwriting application iFrame

  • In the request user enters credentials (see request example)
  • In the response user receives a token to access iFrame or error 404

Endpoint:
POST

Sandbox: https://sandbox.4levers.com/underwritingiframe/api/auth
Production: https://underwriting.4levers.com/api/auth

UMS IFrame

Select Html to display code samples
  1. Request an authorization token via UMS IFrame Authentication method.
  2. Add the provided script reference to your application HTML page (parent page in the external system).
  3. Add Underwriting amaryllis-application custom element container (with required parameters) to your application HTML page (parent page in the external system).
  4. Add async submit() method to your application HTML page (parent page in the external system), a specific responses will be received – see attached implementation example.
Component Properties
Select Html to display code samples
NameOptionalityDescription
1templaterequiredid of the application template to display specific underwriting application form in the external system.
2providerrequiredid of the service provider that is related to application template in the configuration.
3namerequiredgenerated or pre-defined name of the underwriting application form.
4emailrequiredmerchant contact email.
5tokenrequiredtoken that is taken via get authentication token method.
6configurationoptionalpre-filled form information.
Component properties rendering logic
Select Html to display code samples
NameOptionalityDescription
1namerequiredname of the field.
2valueoptionalvalue of the field.
3isHiddenoptionalthe flag defines whether the field is hidden or not.
  • Single fields (one parameter in Template = one field in Application) can be hidden, if set “isHidden”:true
  • Group fields (one parameter in Template = a few fields in Application, named as block of parameters in the description) can be hidden, if set block name “isHidden”:true.
    • List of group fields:
      •  businessDetails.businessAddressbusinessDetails.corporateAddress
      • bankingDetails.bankAccount
      • contactDetails.address
      • ownerDetails.address
      • businessProfile.gstExempt
      • businessProfile.shippingRequired
      • businessProfile.pciCompliance
      • businessFinancials.volumeProjection
      • businessProcessingHistory.volumeHistory
Be noticed:
One separate field from group cannot be hidden, only full group.
 

There are two types of pre-filled information representation:

  • Hidden fields: hidden in the UMS custom element. Fields contain pre-filled data that cannot be overridden and are represented by the following parameters
    • name
    • isHidden flag="true"
    • pre-populated value is saved after submit action from the external system
  • Visible fields with pre-filled data: displayed in the UMS custom element and contain pre-filled data that can be overridden. Fields are represented by the following parameters
    • name
    • isHidden flag="false"
    • pre-populated value OR the user input is saved after submit action from the external system
Available Fields

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

  • In case fields are marked as visible, then they are not required;
  • In case fields are marked as required, then they are required and fields values must be populated in the form at the moment when the submit() method is called
  • Enumeration field type value is defined via enum number according to Validation rules – see below
Available Fields Validation Rules
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>
NameTypeDescription
1businessDetails.namestringmax length =” 255 “symbols.
2businessDetails.legalnamestringmax length =” 255 “symbols.
3businessDetails.registrationnumberstringmax length =” 255 “symbols.
4businessDetails.ownershipTypeenum
Avaliable Values:
  1. individual
  2. partnership
  3. corporation
  4. llc
  5. medical
  6. legal
  7. association
  8. estate
  9. trustcompany
  10. notforprofit
  11. governmentmunicipalentity
  12. governmentfederalentity
  13. governmentprovincialentity
5businessDetails.taxidstringmax length =” 255 “symbols.
6businessDetails.giinstring

max length =” 19 “symbols

1st and 2nd parts – numbers and uppercase letters only

3rd part – uppercase letters only

4th part – numbers only
7businessDetails.incorporationDatedatetimedate format: us pattern m/d/yyyy
8businessDetails.businessAddressblock of parameterssee examples for additional reference
9businessDetails.businessAddress.countrystringcountry from the list of available values
10businessDetails.businessAddress.stateCodestring

max length =” 3 “symbols

states from the list of available values for country =” “us” “or “ca” or “australia”:
11businessDetails.businessAddress.citystringmax length =” 15 “symbols
12businessDetails.businessAddress.streetstringmax length =” 38 “symbols
13businessDetails.businessAddress.apartmentstringmax length =” 38 “symbols
14businessDetails.corporateAddress.zipstring
if businessdetails.businessaddress.country =” “us”, “max length =” 5 “or 9 symbolsif businessdetails.businessaddress.country !=” “us”, “max length =” 15 “symbols
15businessDetails.companyWebsiteURLstring

web address

url address should be started with http(s)://
16businessDetails.dbaNamestringmax length =” 255 “symbols
17businessDetails.dbaWebsiteURLstring

web address

url address should be started with http(s)://
18businessDetails.dynamicDescriptorstringmax length =” 255 “symbols
19businessDetails.descriptionstringmax length =” 4000 “symbols
20businessDetails.customerServicePhonestring

max length =” 50 “symbols

regular expression:/^([+ ]+)?(\d[\d- ]+)?(([\d- ]+))?[\d- ]+\d$/
21businessDetails.customerServiceEmailstring

email

regular expression:

/^(?=”[a-za-z0-9])[“a-za-z0-9.!#$%&’+/=?^_`{|}~-]a-za-z0-9@[a-za-z0-9-]+(?:.[a-za-z0-9-]{2,})$/
22businessDetails.faxstring

max length =” 50 “symbols

regular expression:

/^([+ ]+)?(\d[\d- ]+)?(([\d- ]+))?[\d- ]+\d$/
23businessDetails.agreementboolean

true

false
24businessDetails.customfield1stringmax length =” 255 “symbols
25businessDetails.customfield2stringmax length =” 255 “symbols
26businessDetails.customfield3stringmax length =” 255 “symbols
27bankingDetails.bankAccountblock 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
28bankingDetails.accountNumberstring

value restrictions:

digits;

min.length=”3

max.length=”17
29bankingDetails.accountTypeenum

checking – 1

savings -2
30bankingDetails.accountHolderNamestringlength=”120
31″bankingDetails.entityTypeenum
Avaliable Values:

personal – 0

business – 1
32bankingDetails.routingNumberstring
digits;length=”9
33″bankingDetails.bankNamestringmax length =” 255 “symbols
34contactDetails.firstNamestringmax length =” 255 “symbols
35contactDetails.contactTypeenum
Avaliable Values:
  1. statements
  2. finances
  3. legal
  4. disputes
36contactDetails.lastNamestringmax length =” 255 “symbols
37contactDetails.legalNamestringmax length =” 255 “symbols
38contactDetails.emailstring

email

regular expression:

/^(?=”[a-za-z0-9″])[“a-za-z0-9.!#$%&’+/=?^_`{|}~-]a-za-z0-9@[a-za-z0-9-]+(?:.[a-za-z0-9-]{2,})$/
39contactDetails.mobilePhonestring

max length =” 50 “symbols

regular expression:

/^([+ ]+)?(\d[\d- ]+)?(([\d- ]+))?[\d- ]+\d$/
40contactDetails.homePhonestring

max length =” 50 “symbols

regular expression:

/^([+ ]+)?(\d[\d- ]+)?(([\d- ]+))?[\d- ]+\d$/
41contactDetails.addressblock of parameterssee examples for additional reference
42contactDetails.address.countrystringcountry from the list of available values
43contactDetails.address.statecodestring

max length =” 3 “symbols

states from the list of available values for country =” “us” “or “ca” or “australia”:
44contactDetails.address.citystringmax length =” 15 “symbols
45contactDetails.address.streetstringmax length =” 38 “symbols
46contactDetails.address.apartmentstringmax length =” 38 “symbols
47contactDetails.address.zipstring

if businessdetails.businessaddress.country =” “us”, “max length =” 5 “or 9 symbols

if businessdetails.businessaddress.country !=” “us”, “max length =” 15 “symbols
48contactDetails.customfield1stringmax length =” 255 “symbols
49contactDetails.customfield2stringmax length =” 255 “symbols
50contactDetails.customfield3stringmax length =” 255 “symbols
51ownerDetails.giinstring

max length =” 19 “symbols

1st and 2nd parts – numbers and uppercase letters only

3rd part – uppercase letters only

4th part – numbers only
52ownerDetails.emailstring

email

regular expression:

/^(?=”[a-za-z0-9])[“a-za-z0-9.!#$%&’+/=?^_`{|}~-]a-za-z0-9@[a-za-z0-9-]+(?:.[a-za-z0-9-]{2,})$/
53ownerDetails.mobilephonestring

max length =” 50 “symbols

regular expression:

/^([+ ]+)?(\d[\d- ]+)?(([\d- ]+))?[\d- ]+\d$/
54ownerDetails.homephonestring

max length =” 50 “symbols

regular expression:

/^([+ ]+)?(\d[\d- ]+)?(([\d- ]+))?[\d- ]+\d$/
55ownerDetails.addressblock of parameterssee examples for additional reference
56ownerDetails.address.countrystringcountry from the list of available values
57ownerDetails.address.statecodestring

max length =” 3 “symbols

states from the list of available values for country =” “us” “or “ca” or “australia”:
58ownerDetails.address.citystringmax length =” 15 “symbols
59ownerDetails.address.streetstringmax length =” 38 “symbols
60ownerDetails.address.apartmentstringmax length =” 38 “symbols
61ownerDetails.address.zipstring

if businessdetails.businessaddress.country =” “us”, “max length =” 5 “or 9 symbols

if businessdetails.businessaddress.country !=” “us”, “max length =” 15 “symbols
62ownerDetails.dateofbirthdatetimeus pattern m/d/yyyy
63ownerDetails.positionstringmax length =” 255 “symbols
64ownerDetails.citizenshipstringmax length =” 255 “symbols
65ownerDetails.ownershipDatedatetimeus pattern m/d/yyyy
66ownerDetails.ownerShipperCentagestring

6 symbols max

0 >=” value <=” “100

the “value can not have more than 2 symbols in decimal part
67ownerDetails.driversLicenceNumberstringmax length =” 255 “symbols
68ownerDetails.customfield1stringmax length =” 255 “symbols
69ownerDetails.customfield2stringmax length =” 255 “symbols
70ownerDetails.customfield3stringmax length =” 255 “symbols
71businessProfile.industryenum

string with industrytype enumeration value.

Avaliable Values:
  1. informationtechnology
  2. telecommunication
  3. manufacturing
  4. bankingservices
  5. consulting
  6. finance
  7. government
  8. delivery
  9. entertainment
  10. nonprofit
  11. other
72businessProfile.categoryenum

string with the categorytype enumeration value.

Avaliable Values:
  1. retail
  2. ecommerce
  3. pos
73businessProfile.privacyPolicyurlstring

web address

url address should be started with http(s)://
74businessProfile.returnsPolicyurlstring

web address

url address should be started with http(s)://
75businessProfile.tcpolicyurlstring
web addressurl address should be started with http(s)://
76businessProfile.gstexemptboolean

true

false
77businessProfile.gstnumberstring

in case

businessprofile.gstexempt =” true, “then businessprofile.gstnumber is required

businessprofile.gstexempt =” false, “then businessprofile.gstnumber should be empty.
78businessProfile.descriptionOfGoodsstringmax length =” 4000 “symbols
79businessProfile.seasonalBusinessboolean

true

false
80businessProfile.shippingRequiredboolean

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
81businessProfile.inventoryboolean

true

false
82businessProfile.deliveryTimePercentage.oneToSevenDaysinteger

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
83businessProfile.deliveryTimePercentage.eightToFourTeenDaysinteger

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
84businessProfile.deliveryTimePercentage.fifteentothirtydaysinteger

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
85businessProfile.deliveryTimePercentage.moreThanThirtyDaysinteger

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
86businessProfile.pciComplianceblock of parameterssee examples for additional reference
87businessProfile.pciCompliance.pciLevelenum

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:
  • dss level 11
  • dss level 22
  • dss level 33
  • dss level 44
88businessProfile.pciCompliance.storesSensitiveDataboolean

in case

businessprofile.pcicompliance.isenabled =” true “parameter is required

businessprofile.pcicompliance.isenabled =” false “parameter is not required

true

false
89businessProfile.pciCompliance.dataCompromisedboolean

in case

businessprofile.pcicompliance.isenabled =” true “parameter is required

businessprofile.pcicompliance.isenabled =” false “parameter is not required

true

false
90businessProfile.customfield1stringmax length =” 255 “symbols
91businessProfile.customfield2stringmax length =” 255 “symbols
92businessProfile.customfield3stringmax length =” 255 “symbols
93businessFinancials.volumeprojectionblock of parameterssee examples for additional reference
94businessFinancials.volumeprojectionvisastring

max length =” 255 “symbols

in case parameter “volume projection” =” ‘required’ “under underwriting template the parameter is required
95businessFinancials.volumeprojectionmastercardstringmax length =” 255 “symbols
in case parameter “volume projection” =” ‘required’ “under underwriting template the parameter is required
96businessFinancials.volumeprojectionamericanexpressstringmax length =” 255 “symbols
in case parameter “volume projection” =” ‘required’ “under underwriting template the parameter is required
97businessFinancials.volumeprojectiondiscoverstring

max length =” 255 “symbols

in case parameter “volume projection” =” ‘required’ “under underwriting template the parameter is required
98businessFinancials.volumeprojectionlocaldebitcardstring

max length =” 255 “symbols

in case parameter “volume projection” =” ‘required’ “under underwriting template the parameter is required
99businessFinancials.avgticketpriceprojectionstring
max length =” 255 “symbolsin case parameter “volume projection” =” ‘required’ “under underwriting template the parameter is required
100businessFinancials.customfield1stringmax length =” 255 “symbols
101businessFinancials.customfield2stringmax length =” 255 “symbols
102businessFinancials.customfield3stringmax length =” 255 “symbols
103businessProcessingHistory.volumehistoryblock of parameterssee examples for additional reference
104businessProcessingHistory.volumehistoryvisastring

max length =” 255 “symbols

in case parameter “volume history” =” ‘required’ “under underwriting template the parameter is required
105businessProcessingHistory.volumehistorymastercardstring

max length =” 255 “symbols

in case parameter “volume history” =” ‘required’ “under underwriting template the parameter is required
106businessProcessingHistory.volumehistoryamericanexpressstring

max length =” 255 “symbols

in case parameter “volume history” =” ‘required’ “under underwriting template the parameter is required
107businessProcessingHistory.volumehistorydiscoverstring

max length =” 255 “symbols

in case parameter “volume history” =” ‘required’ “under underwriting template the parameter is required
108businessProcessingHistory.volumehistorylocaldebitcardstring
max length =” 255 “symbolsin case parameter “volume history” =” ‘required’ “under underwriting template the parameter is required
109businessProcessingHistory.avgticketpricehistorystring

max length =” 255 “symbols

in case parameter “volume history” =” ‘required’ “under underwriting template the parameter is required
110businessProcessingHistory.previousbankruptcyboolean
true
false
111businessProcessingHistory.customfield1stringmax length =” 255 “symbols
112businessProcessingHistory.customfield2stringmax length =” 255 “symbols
113businessProcessingHistory.customfield3stringmax length =” 255 “symbols

UMS IFrame Authentication in Resubmission Mode

Once the “Request Resubmission“ action is selected, user can choose to send a direct email with a link to the UMS resubmission page

  • The links could be sent to the contact email address or copied via a link from pop-up under Application grid
  • UMS IFrame in Resubmission mode is implemented to be redirected via the link

URL is set in Back-Office Application

URL example: ums.4levers.com/ums/resubmission?token=TOKEN_VALUE
 

UMS IFrame in Resubmission Mode

Select Html to display code samples
//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.

Create Application

Use POST method to create a new underwriting application

  • In the request user sends Json object with filled underwriting application parameters
  • In the response user receives a Json object with 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

See Objects Reference for full code sample fields description
…/api/underwriting-applications

Request

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

Response

{
  "id": 0
}
Request Parameters
NameTypeDescription
1idstringapplication identifier.
can be ommited in post request.
all new applictions are created with a unique identifier.
2namestringapplication name.
3templateIdstringapplication template identifier.
4contactEmailstringnotification target email.
Application Body Object
NameTypeDescription
1businessDetailsobjectbusiness details include business general information.
2businessDetailsDocumentsobjectbusiness details documents include business registration documents.
3bankingDetailsobjectbanking details include business bank and bank account information.
4bankingDetailsDocumentsobjectbanking details documents include business banking documents.
5contactDetailsarraycontact details include business contact information.
6ownerDetailsarrayowner details include business owner information.
7ownerDetailsDocumentsobjectowner details documents include documents provided by the business owner.
8businessProfileobjectbusiness profile includes information about the nature of a business
9businessProfileDocumentsobjectbusiness profile documents include pci compliance certificate.
10businessFinancialsobjectbusiness financials include business payment cards processing projections.
11businessProcessingHistoryobjectbusiness processing history includes historical data about payment card processing.

Update Application

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}

See Objects Reference for full code sample fields description
…/api/underwriting-applications/{applicationId}

Request

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

Response

{
  "id": 0
}
Request Parameters
NameTypeDescription
1idstringapplication identifier.
can be skipped in put request. id is taken from the request endpoint.
2namestringapplication name.
3templateIdstringapplication template identifier.
Application Body Object
NameTypeDescription
1businessDetailsobjectbusiness details include business general information.
2businessDetailsDocumentsobjectbusiness details documents include business registration documents.
3bankingDetailsobjectbanking details include business bank and bank account information.
4bankingDetailsDocumentsobjectbanking details documents include business banking documents.
5contactDetailsarraycontact details include business contact information.
6ownerDetailsarrayowner details include business owner information.
7ownerDetailsDocumentsobjectowner details documents include documents provided by the business owner.
8businessProfileobjectbusiness profile includes information about the nature of a business
9businessProfileDocumentsobjectbusiness profile documents include pci compliance certificate.
10businessFinancialsobjectbusiness financials include business payment cards processing projections.
11businessProcessingHistoryobjectbusiness processing history includes historical data about payment card processing.

Update Application Fields Statuses

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

See Objects Reference for full code sample fields description
 
…/api/underwriting-applications/{applicationId}/status

Request Example

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

Response

{
  "id": 0
}

Update Application Status

Use PUT Underwriting Application Statuses method to update Underwriting Application status

  • In the request URL user enters {id} and status of the existing underwriting application
  • In the response user receives a Json object with application ‘id’ and status.

Values of application statuses:

  • “UnderReview”
  • “Approved“
  • “Declined“
  • “OnboardingCompleted“
  • “ReadyToProcess“

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/Response Example

Request

{
  "id": 261,
  "payoutStatus": "Approved"
}

Response
{
  "id": 261,
  "status": "Approved"
}

Objects Reference

{
  "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.
Business Details
Name Type Description
1 businessDetails object

business details include business general information.

Avaliable Values:
name string, Max 255 Business name
legalName string, Max 255 Business legal name
registrationNumber string, Max 255 Business registration number
ownershipType enum Business type of ownership.
Avaliable Values:
Individual 1
Partnership 2
Corporation 3
LLC 4
Medical 5
Legal 6
Association 7
Estate 8
TrustCompany 9
NotForProfit 10
GovernmentMunicipalEntity 11
GovernmentFederalEntity 12
GovernmentProvincialEntity 13
taxId string, Max 255 Business taxpayer identification number.
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
incorporationDate datetime Business incorporation date.
businessAddress object
Avaliable Values:
streetstring length can not be more than 38 characters
apartmentstring length can not be more than 38 characters
citystring length can not be more than 15 characters
stateCodestring required in case Application ‘country’ = ‘US or ‘CA’ or ‘AU’ length can not be more than 3 characters
zipstring in case ‘country’ = ‘United States of America’ “zip” length is 5 OR 9 digits in case ‘country’ != ‘United States of America’ length can not be more than 15 characters
countrystring Country value should be in the list of available countries
corporateAddress object
Avaliable Values:
streetstring length can not be more than 38 characters
apartmentstring length can not be more than 38 characters
citystring length can not be more than 15 characters
stateCodestring required in case Application ‘country’ = ‘US or ‘CA’ or ‘AU’ length can not be more than 3 characters
zipstring in case ‘country’ = ‘United States of America’ “zip” length is 5 OR 9 digits in case ‘country’ != ‘United States of America’ length can not be more than 15 characters
countrystring Country value should be in the list of available countries
companyWebsiteUrl string, Max 255 Business Web site address. Pattern:^(https?:[\/]{2})(www.)?[a-zA-Z0-9@:%._\+~#=\-]{2,256}\.[a-z]{2,6}\b([a-zA-Z0-9@:%_\+.~#?&/=\-]*)$
dbaName string, Max 255 Doing-business-as name.
dbaWebsiteUrl string, Max 255 Business DBA Web site address. Pattern: ^(https?:[\/]{2})(www.)?[a-zA-Z0-9@:%._\+~#=\-]{2,256}\.[a-z]{2,6}\b([a-zA-Z0-9@:%_\+.~#?&/=\-]*)$
dynamicDescriptor string, Max 255 Business dynamic descriptor value.
description string, Max 4000 Business description.
customerServicePhone string, Max 50 Business customer service phone number. Pattern: ^([\+ ]+)?(\d[\d- ]+)?(\([\d- ]+\))?[\d- ]+\d$
customerServiceEmail string, Max 100 Business customer service email address. Pattern: /^(?=[a-zA-Z0-9])[a-zA-Z0-9.!#$%&’+/=?^_`{|}~-]a-zA-Z0-9@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]{2,})$/
fax string, Max 50 Business fax. Pattern: ^([\+ ]+)?(\d[\d- ]+)?(\([\d- ]+\))?[\d- ]+\d$
socialMediaAccounts object Business social media accounts.
Avaliable Values:
socialNetwork enum Collection of SocialNetworkType.
Avaliable Values:
Available Parameters +
Facebook
Twitter
Instagram
LinkedIn
Dribbble
Youtube
Google
accountNamestring, Max 255 Name of the social media account.
agreement object Applicable in case of Get Application Template
Avaliable Values:
statusstring Is defined as required, visible or hidden in case Get Application Template
textstring length can not be more than 38 characters
urlstring length can not be more than 15 characters
agreement string Applicable in case Get/Create/Update Application
customField1 object Applicable in case of Get Application Template
statusstring Is defined as required, visible or hidden in case Get Application Template
namestring
customField1 string Applicable in case Get/Create/Update Application
customField2 object Applicable in case of Get Application Template
Avaliable Values:
statusstring Is defined as required, visible or hidden in case Get Application Template
namestring
customField2 string Applicable in case Get/Create/Update Application
customField3 object Applicable in case of Get Application Template
Avaliable Values:
statusstring Is defined as required, visible or hidden in case Get Application Template
namestring
customField3 string Applicable in case Get/Create/Update Application
Business Documents
Name Type Description
1 registrationСertificate object

copy of the registration certificate.

fileName string, Max 255 Name of the attached file.
fileBody string Base64 encoded file content.
2 proofOfAddress object

proof of address documents.

string, Max 255 Name of the attached file.
fileBody string Base64 encoded file content.
3 customDocument1 object

applicable in case of get application template

status string, Max 255 Is defined as required, visible or hidden in case Get Application Template
name string
4 customDocument1 object

applicable in case get/create/update application

status string, Max 255 Is defined as required, visible or hidden in case Get Application Template
name string
5 customDocument2 object

applicable in case of get application template

status string, Max 255 Is defined as required, visible or hidden in case Get Application Template
name string
6 customDocument2 object

applicable in case get/create/update application

fileName string, Max 255 Name of the attached file.
fileBody string Base64 encoded file content.
7 customDocument3 object

applicable in case of get application template

status string, Max 255 Is defined as required, visible or hidden in case Get Application Template
name string
8 customDocument3 object applicable in case get/create/update application
fileName string, Max 255 Name of the attached file.
fileBody string Base64 encoded file content.
Banking Details
If external bank validation was set up in the Template (External Bank Validation = PLAID) then empty “plaidAccessToken” is received via GET Application method in response instead of “accountNumber”, “accountType”, “accountHolderName”, “entityType”, “routingNumber”, “bankName” parameters If external bank validation was set up in the Template then “plaidAccessToken” is send via CREATE/UPDATE Application method in Request instead of “accountNumber”, “accountType”, “accountHolderName”, “entityType”, “routingNumber”, “bankName” parameters
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:
  1. checking
  2. savings
4 accountHolderName string, max 120 bank account holder’s full name.
5 entityType enum

string with achentitytype.

Avaliable Values:
  • personal – 0
  • business – 1
6 routingNumber string, max 9, min 9 bank routing number.
7 bankName string, max 9, min 9 bank name.

Banking Documents

Name Type Description
1 voidCheck object

copy of a void check.

fileName string, Max 255 Name of the attached file.
fileBody string Base64 encoded file content.
2 customDocument1 object

applicable in case get/create/update application

status string, Max 255 Is defined as required, visible or hidden in case Get Application Template
name string
3 customDocument1 object

applicable in case of get application template

fileName string, Max 255 Name of the attached file.
fileBody string Base64 encoded file content.
4 customDocument2 object

applicable in case get/create/update application

status string, Max 255 Is defined as required, visible or hidden in case Get Application Template
name string
5 customDocument2 object

applicable in case of get application template

fileName string, Max 255 Name of the attached file.
fileBody string Base64 encoded file content.
6 customDocument3 object

applicable in case get/create/update application

status string, Max 255 Is defined as required, visible or hidden in case Get Application Template
name string
7 customDocument3 object

applicable in case of get application template

fileName string, Max 255 Name of the attached file.
fileBody string Base64 encoded file content.

Contact Details

Name Type Description
1 contactType enum

string with contacttype enumeration value.

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 email 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
streetstring length can not be more than 38 characters
apartmentstring length can not be more than 38 characters
citystring length can not be more than 15 characters
stateCodestring required in case Application ‘country’ = ‘US or ‘CA’ or ‘AU’ length can not be more than 3 characters
zipstring in case ‘country’ = ‘United States of America’ “zip” length is 5 OR 9 digits in case ‘country’ != ‘United States of America’ length can not be more than 15 characters
countrystring Country value should be in the list of available countries
9 customField1 object

applicable in case of get application template

statusstring Is defined as required, visible or hidden in case Get Application Template
namestring
10 customField1 string applicable in case get/create/update application
11 customField2 object

applicable in case of get application template

statusstring Is defined as required, visible or hidden in case Get Application Template
namestring
12 customField2 string applicable in case get/create/update application
13 customField3 object

applicable in case of get application template

statusstring Is defined as required, visible or hidden in case Get Application Template
namestring
14 customField3 string applicable in case get/create/update application

Owner Details

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 email 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
streetstring length can not be more than 38 characters
apartmentstring length can not be more than 38 characters
citystring length can not be more than 15 characters
stateCodestring required in case Application ‘country’ = ‘US or ‘CA’ or ‘AU’ length can not be more than 3 characters
zipstring in case ‘country’ = ‘United States of America’ “zip” length is 5 OR 9 digits in case ‘country’ != ‘United States of America’ length can not be more than 15 characters
countrystring Country value should be in the list of available countries
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

statusstring Is defined as required, visible or hidden in case Get Application Template
namestring
16 customField1 string applicable in case get/create/update application
17 customField2 object

applicable in case of get application template

statusstring Is defined as required, visible or hidden in case Get Application Template
namestring
18 customField2 string applicable in case get/create/update application
19 customField3 object

applicable in case of get application template

statusstring Is defined as required, visible or hidden in case Get Application Template
namestring
20 customField3 string applicable in case get/create/update application
21 ownerDetailsDocuments object Owner details documents include documents provided by the business owner.

Owner Documents

Name Type Description
1 proofOfId object

copy of an identification document of the business owner.

fileName string, Max 255 Name of the attached file.
fileBody string Base64 encode
2 proofOfAddress object

copy of a document that can prove the business owner residence address.

fileName string, Max 255 Name of the attached file.
fileBody string Base64 encoded file content.
3 personalGuarantee object

copy of a document that can serve as the business owner personal guarantee.

fileName string, Max 255 Name of the attached file.
fileBody string Base64 encoded file content.
4 customDocument1 object

applicable in case of get application template

status string, Max 255 Is defined as required, visible or hidden in case Get Application Template
name string
5 customDocument1 object

applicable in case get/create/update application

fileName string, Max 255 Name of the attached file.
fileBody string Base64 encoded file content.
6 customDocument2 object

applicable in case of get application template

status string, Max 255 Is defined as required, visible or hidden in case Get Application Template
name string
7 customDocument2 object

applicable in case get/create/update application

fileName string, Max 255 Name of the attached file.
fileBody string Base64 encoded file content.
8 customDocument3 object

applicable in case of get application template

status string, Max 255 Is defined as required, visible or hidden in case Get Application Template
name string
9 customDocument3 object

applicable in case get/create/update application

fileName string, Max 255 Name of the attached file.
fileBody string Base64 encoded file content.

Business Profile

Name Type Description
1 industry enum

string with industrytype enumeration value.

Avaliable Values:
  1. informationtechnology
  2. telecommunication
  3. manufacturing
  4. bankingservices
  5. consulting
  6. finance
  7. government
  8. delivery
  9. entertainment
  10. nonprofit
  11. other
2 category enum

string with the categorytype enumeration value.

Avaliable Values:
  1. retail
  2. ecommerce
  3. pos
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.

channelType string, Max 255 Type of a business sales channel.
percentageOfSales integer Share of a business sales channel in a total business sales.
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
oneToSevenDays double, Max 100
eightToFourteenDays double, Max 100
fifteenToThirtyDays double, Max 100
moreThanThirtyDays double, Max 100
14 pciCompliance object

business sales channels details.

isEnabled boolean Flag that indicates whether PCI compliance is enabled.
pciLevel enum String with PciLevel enum value. DssLevelOne 1 DssLevelTwo 2 DssLevelThree 3 DssLevelFour 4
storesSensitiveData boolean Flag that indicates whether sensitive data storage is enabled.
dataCompromised boolean Flag that indicates whether data has been compromised.
15 customField1 object

applicable in case of get application template

statusstring Is defined as required, visible or hidden in case Get Application Template
namestring
16 customField1 string applicable in case get/create/update application
17 customField2 object

applicable in case of get application template

statusstring Is defined as required, visible or hidden in case Get Application Template
namestring
18 customField2 string applicable in case get/create/update application
19 customField3 object

applicable in case of get application template

statusstring Is defined as required, visible or hidden in case Get Application Template
namestring
20 customField3 string applicable in case get/create/update application

Business Profile Documents

Name Type Description
1 pciCertificate object

copy of the pci certificate.

fileName string, Max 255 Name of the attached file.
fileBody string Base64 encoded file content.
2 customDocument1 object

applicable in case of get application template

status string, Max 255 Is defined as required, visible or hidden in case Get Application Template
name string
3 customDocument1 object

applicable in case get/create/update application

fileName string, Max 255 Name of the attached file.
fileBody string Base64 encoded file content.
4 customDocument2 object

applicable in case of get application template

status string, Max 255 Is defined as required, visible or hidden in case Get Application Template
name string
5 customDocument2 object

applicable in case get/create/update application

fileName string, Max 255 Name of the attached file.
fileBody string Base64 encoded file content.
6 customDocument3 object

applicable in case of get application template

status string, Max 255 Is defined as required, visible or hidden in case Get Application Template
name string
7 customDocument3 object

applicable in case get/create/update application

fileName string, Max 255 Name of the attached file.
fileBody string Base64 encoded file content.

Business Financials

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

statusstring Is defined as required, visible or hidden in case Get Application Template
namestring
8 customField1 string applicable in case get/create/update application
9 customField2 object

applicable in case of get application template

statusstring Is defined as required, visible or hidden in case Get Application Template
namestring
10 customField2 string applicable in case get/create/update application
11 customField3 object

applicable in case of get application template

statusstring Is defined as required, visible or hidden in case Get Application Template
namestring
12 customField3 string applicable in case get/create/update application

Business Processing History

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

statusstring Is defined as required, visible or hidden in case Get Application Template
namestring
9 customField1 string applicable in case get/create/update application
10 customField2 object

applicable in case of get application template

statusstring Is defined as required, visible or hidden in case Get Application Template
namestring
11 customField2 string applicable in case get/create/update application
12 customField3 object

applicable in case of get application template

statusstring Is defined as required, visible or hidden in case Get Application Template
namestring
13 customField3 string applicable in case get/create/update application

Response Codes

Response Codes

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.

Transactions Processing

Getting Started

Endpoints:

Sandbox URL: https://sandbox.4levers.com/TxWs/ATPayTxWS.svc/json/Transaction

Production URL: https://transactions.4levers.com/ATPayTxWS.svc/json/Transaction

Credit Card Transactions

 

3D-Secure

3D-secure processing flow consists of 3 parts:

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

Phase 1. check3DSEnrollment method

IMPORTANT:
“check3DSEnrollment” is the method used to initiate a 3DS authentication.

“check3DSEnrollment” Endpoint:

Sandbox URL: TxWs/ATPayTxWS.svc/json/сheck3DSEnrollment

Production URL: TxWs/ATPayTxWS.svc/json/сheck3DSEnrollment

Request example

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

Request Parameters

NameTypeOptionalityDescription
1subAccountIdintegerrequiredsub-account identifier.
must be greater than 0.
2accountIdintegerrequiredplatform account identifier.
must be greater than 0.
3amountdecimalrequiredtransaction amount.
value ≥ 0 (2 decimal places)
4currencyenumrequired

currencytypeid.

Avaliable Values:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
5creditCardobjectrequiredcredit card data object.

Responce example

{
"orderId":"1234560000789",
"responseCode": 0,
"responseDescription":"Operation successful",
"paymentToken": "...",
"redirectURL": "https://example.aspx?ReqType=0",
"paReq": "eNpVUsFu2zAMvesrchjQ"
}

Responce Parameters

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

Phase 2. check3DSPaymentResponse method

IMPORTANT:
“check3DSPaymentResponse” is the method used to verify a 3DS result.

“check3DSPaymentResponse” Endpoint:

Sandbox URL: TxWs/ATPayTxWS.svc/json/

Production URL: TxWs/ATPayTxWS.svc/json/

Request example

{
  "subAccountId": "Sub-Account Id"
  "accountId": "Account Id",
  "orderId": "1618001128118361545",
  "paResp":"eJzNWVmvm9iy/it"
}

Request Parameters

NameTypeOptionalityDescription
1subAccountIdintegerrequiredsub-account identifier.
must be greater than 0.
2accountIdintegerrequiredplatform account identifier.
must be greater than 0.
3orderIdstringrequiredid to match the transaction
4paRespstringrequiredrequest value from issuer bank

Responce example

{
  "responseCode":"0",
  "responseDescription":"Operation successful",
  "token": "8e86aef68037e8849980"
  "eci": "3",
  "xid": "857e2347c329eec31c75",
  "cavv":"645sd54ad5a5sd65"   
}

Responce Parameters

NameTypeOptionalityDescription
1responseCodeintegerrequiredsystem response code.
2responseDescriptionstringrequiredsystem response code description.
3tokenstringrequired3D – Secure token. this parameter is used to indicate if a transaction has been authenticated
4ecistringrequiredECI indicates the result of 3D-secfure authentication process (verification successful/verification attempted/unable to verify)
5xidstringrequiredXID is the id (or code) of the particular authentication
6cavvstringrequiredCAVV is the authentication verification value

Phase 3. Processing transaction with 3D-Secure

Processing transaction Authorization and Charge can be processed with threeDSToken or eci, xid, cavv (depends on payment processor). Look for information about “threeDSecure” object parameters in Auth or Charge sections.

Authorization

IMPORTANT:
Authorization is not an actual charge; it is only a reservation of a certain amount. Authorizations help reduce the risk of fraudulent transactions and credit card misuse.

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 number
TransactionID":"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.

Request example

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

Request Parameters

NameTypeOptionalityDescription
1accountIdintegerrequired

platform account identifier.

must be greater than 0.
2amountdecimalrequired

transaction amount.

value ≥ 0 (2 decimal places)
3billingAddressobjectoptionaluser billing address data object.
4billingOverrideobjectoptionaldata object that contains an array of billingfee objects.
5creditCardobjectconditional

credit card data object.

required if payment method = creditcard;
6achobjectconditional

ach data object.

required if payment method = ach.
7currencyenumrequired

currencyTypeId.

Avaliable Values:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
8merchantDataobjectoptionalmerchant data data object.
9entryModeintegeroptional

nullable

transaction entry mode numerical value.
10paymentMethodenumrequired
Avaliable Values:

paymentMethodTypeId.

creditcard – 0 credit card payments

ach – 1 ach payments
11processorDataobjectoptionalprocessor data data object.
12subAccountIdintegerrequired
sub-account identifier.value ≥ 0
13terminalIdstringoptional

terminal identifier.

maxlength(20)
14transactionMethodenumoptional

transactionmethodid.

Avaliable Values:
  • regulartransaction – 0
  • mailortelephoneorder – 1
  • internettransaction – 2
  • 3dsecuretransaction – 3
  • pointofsaletransaction – 4
  • billpaytransaction – 5
  • recurringtransaction – 6
15typeenumrequired
transactiontypeid.authorization
15threeDSecureobjectoptional
3D-Secure data object..authorization

Void

In this type of transaction, the amount reserved by the Authorization transaction is released back to the credit card balance.

IMPORTANT:
the authorization lifespan may vary depending on credit card type. For VISA, American Express and Mastercard, authorization may take up to 7 days. For Discover, up to 10 days. Authorizations may even take up to 30 days.
Partial Void (Partial Cancel Authorization) transaction. This transaction involves the partial release of the amount reserved by the Authorization transaction.
IMPORTANT:
a “parent” transaction identifier must be passed with the transaction request .
In case none of the above is provided in the API request, the transaction will be declined.

 

Void request example

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

Request Parameters

NameTypeOptionalityDescription
1accountIdintegerrequired

platform account identifier.

must be greater than 0.
2amountdecimalrequired

transaction amount.

value ≥ 0 (2 decimal places)

amount=0 can be passed with partial void transaction type.
3billingAddressobjectoptionaluser billing address data object.
4billingOverrideobjectoptionaldata object that contains an array of billingfee objects.
5creditCardobjectconditional

credit card data object.

required in case payment method is credit card.
6achobjectconditional

ach data object.

required if payment method = ach.
7currencyenumrequired

currencytypeid.

Avaliable Values:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
8merchantDataobjectoptionalmerchant data data object.
9entryModeintegeroptional

nullable

transaction entry mode numerical value.
10paymentMethodenumrequired
Avaliable Values:

paymentmethodtypeid.

creditcard – 0 credit card payments

ach – 1 ach payments
11processorDataobjectoptionalprocessor data data object.
12subAccountIdintegerrequiredsub-account identifier.
13terminalIdstringoptionalterminal identifier.
14transactionMethodenumoptional

transactionmethodid.

Avaliable Values:
  • regulartransaction – 0
  • mailortelephoneorder – 1
  • internettransaction – 2
  • 3dsecuretransaction – 3
  • pointofsaletransaction – 4
  • billpaytransaction – 5
  • recurringtransaction – 6
15typeenumrequired

transactiontypeid.

Avaliable Values:
  • void
  • partialvoid
16originalTransactionobjectrequired

original transaction data object.

required for capture and refund and update and void.

Capture

Capture derives from the parent (original) Authorization transaction – – pass parent transaction identifier (originalTransaction object) with the request.

Deposit Transaction Types

  • Capture
  • Charge

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.

Capture request example

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

Request Parameters for Capture and Partial Capture transaction types

NameTypeOptionalityDescription
1accountIdintegerrequired

platform account identifier.

must be greater than 0.
2amountdecimalrequired

transaction amount.

value ≥ 0 (2 decimal places)

Amount=0 can be passed with Partial Capture transaction Type.
3billingAddressobjectoptionaluser billing address data object.
4billingOverrideobjectoptionaldata object that contains an array of billingfee objects.
5creditCardobjectconditional

credit card data object.

required in case payment method is credit card.
6achobjectconditional

ach data object.

required if payment method = ach.
7currencyenumrequired

currencytypeid.

Avaliable Values:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
8merchantDataobjectoptionalmerchant data data object.
9entryModeintegeroptional

nullable

transaction entry mode numerical value.
10paymentMethodenumrequired
Avaliable Values:

creditcard – 0 credit card payments

ach – 1 ach payments
11processorDataobjectoptionalprocessor data data object.
12subAccountIdintegerrequired

sub-account identifier.

value ≥ 0
13terminalIdstringoptional

terminal identifier.

maxlength(20)
14transactionMethodenumoptional

transactionmethodid.

Avaliable Values:
  • regulartransaction – 0
  • mailortelephoneorder – 1
  • internettransaction – 2
  • 3dsecuretransaction – 3
  • pointofsaletransaction – 4
  • billpaytransaction – 5
  • recurringtransaction – 6
15typeenumrequired

transactiontypeid.

Avaliable Values:
  • capture
  • partialcapture
16originalTransactionobjectrequired

original transaction data object.

required for capture and refund and update and void.

Charge

Deposit Transaction Types

  • Capture
  • Charge

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.

Charge request example

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

Request Parameters

NameTypeOptionalityDescription
1accountIdintegerrequired

platform account identifier.

must be greater than 0.
2amountdecimalrequired

transaction amount.

value ≥ 0 (2 decimal places)

amount=0 can be passed with charge void transaction type.
3billingAddressobjectoptionaluser billing address data object.
4billingOverrideobjectoptionaldata object that contains an array of billingfee objects.
5creditCardobjectconditional

credit card data object.

required in case payment method is credit card.
6achobjectconditional

ach data object.

required if payment method = ach.
7currencyenumrequired

currencytypeid.

Avaliable Values:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
8merchantDataobjectoptionalmerchant data data object.
9entryModeintegeroptional

nullable

transaction entry mode numerical value.
10paymentMethodenumrequired

paymentmethodtypeid.

Avaliable Values:
  • creditcard – 0 credit card payments
  • ach – 1 ach payments
11processorDataobjectoptionalprocessor data data object.
12subAccountIdintegerrequired

sub-account identifier.

value ≥ 0
13terminalIdstringoptional

terminal identifier.

maxlength(20)
14transactionMethodenumoptional

transactionmethodid.

Avaliable Values:
  • regulartransaction – 0
  • mailortelephoneorder – 1
  • internettransaction – 2
  • 3dsecuretransaction – 3
  • pointofsaletransaction – 4
  • billpaytransaction – 5
  • recurringtransaction – 6
15typeenumrequired

transactiontypeid.

charge
16subscriptionobjectconditional

subscription data object.

use for recurring transactions.
17threeDSecureobjectoptional3D-Secure data object.

Refund

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.

Refund request example

{
  "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"
  }
NameTypeOptionalityDescription
1accountIdintegerrequired

platform account identifier.

must be greater than 0.
2amountdecimalrequired

transaction amount.

value ≥ 0 (2 decimal places)

amount=0 can be passed with refund transaction type.
3billingAddressobjectoptionaluser billing address data object.
4billingOverrideobjectoptionaldata object that contains an array of billingfee objects.
5creditCardobjectconditional

credit card data object.

required in case payment method is credit card.
6achobjectconditional

ach data object.

required if payment method = ach.
7currencyenumrequired

currencytypeid.

Avaliable Values:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
8merchantDataobjectoptionalmerchant data data object.
9entryModeintegeroptional

nullable

transaction entry mode numerical value.
10paymentMethodenumrequired

paymentmethodtypeid.

creditcard – 0 credit card payments

ach – 1 ach payments
11processorDataobjectoptionalprocessor data data object.
12subAccountIdintegerrequired

sub-account identifier.

value ≥ 0
13terminalIdstringoptional

terminal identifier.

maxlength(20)
14transactionMethodenumoptional

transactionmethodid.

Avaliable Values:
  • regulartransaction – 0
  • mailortelephoneorder – 1
  • internettransaction – 2
  • 3dsecuretransaction – 3
  • pointofsaletransaction – 4
  • billpaytransaction – 5
  • recurringtransaction – 6
15typeenumrequired

transactiontypeid.

refund
16originalTransactionobjectrequired

original transaction data object.

required for capture and refund and update and void.

Credit

Credit transaction in use:

  1. Money transfer between two credit cards
  2. Money transfers in gaming industry
  3. Money back operations

The difference between Refund and Credit transaction types, is that Refund is based on a previous (parent) transaction (e.g. Charge).

Credit request example

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

Request Parameters

NameTypeOptionalityDescription
1accountIdintegerrequired

platform account identifier.

must be greater than 0.
2amountdecimalrequired

transaction amount.

value ≥ 0 (2 decimal places)
3billingAddressobjectoptionaluser billing address data object.
4billingOverrideobjectoptionaldata object that contains an array of billingfee objects.
5creditCardobjectconditional

credit card data object.

required if payment method = creditcard;
6achobjectconditional

ach data object.

required if payment method = ach.
7currencyenumrequired

currencytypeid.

Avaliable Values:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
8merchantDataobjectoptionalmerchant data data object.
9entryModeintegeroptional

nullable

transaction entry mode numerical value.
10paymentMethodenumrequired

paymentmethodtypeid.

Avaliable Values:
  • creditcard – 0 credit card payments
  • ach – 1 ach payments
11processorDataobjectoptionalprocessor data data object.
12subAccountIdintegerrequired

sub-account identifier.

value ≥ 0
13terminalIdstringoptional

terminal identifier.

maxlength(20)
14transactionMethodenumoptional

transactionmethodid.

Avaliable Values:
  • regulartransaction – 0
  • mailortelephoneorder – 1
  • internettransaction – 2
  • 3dsecuretransaction – 3
  • pointofsaletransaction – 4
  • billpaytransaction – 5
  • recurringtransaction – 6
15typeenumrequired

transactiontypeid.

credit

Verify

Verify (Check Payment Method) transaction can have two purposes:

  1. To check the validity of the payment method provided, e.g. the credit card validation
  2. To generate a token without processing an actual Authorization or Deposit transaction

Verify transaction request parameters must include:

  • Amount = 0,00
  • credit card information

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.

IMPORTANT:
if a customer changes their credit card information, a new token should be issued and credit card must be validated as well.

Verify request example

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

Request Parameters

NameTypeOptionalityDescription
1accountIdintegerrequired

platform account identifier.

must be greater than 0.
2amountdecimalrequired

transaction amount.

value ≥ 0 (2 decimal places)
3billingAddressobjectoptionaluser billing address data object.
4billingOverrideobjectoptionaldata object that contains an array of billingfee objects.
5creditCardobjectconditional

credit card data object.

required if payment method = creditcard;
6achobjectconditional

ach data object.

required if payment method = ach.
7currencyenumrequired

currencytypeid.

Avaliable Values:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
8merchantDataobjectoptionalmerchant data data object.
9entryModeintegeroptional

nullable

transaction entry mode numerical value.
10paymentMethodenumrequired

paymentmethodtypeid.

Avaliable Values:
  • creditcard – 0 credit card payments
  • ach – 1 ach payments
11processorDataobjectoptionalprocessor data data object.
12subAccountIdintegerrequired

sub-account identifier.

value ≥ 0
13terminalIdstringoptional

terminal identifier.

maxlength(20)
14transactionMethodenumoptional

transactionmethodid.

Avaliable Values:
  • regulartransaction – 0
  • mailortelephoneorder – 1
  • internettransaction – 2
  • 3dsecuretransaction – 3
  • pointofsaletransaction – 4
  • billpaytransaction – 5
  • recurringtransaction – 6
15typeenumrequired

transactiontypeid.

verify

Chargeback

Chargeback request example

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

Request Parameters

NameTypeOptionalityDescription
1accountIdintegerrequired

platform account identifier.

must be greater than 0.
2amountdecimalrequired

transaction amount.

value ≥ 0 (2 decimal places)
3billingAddressobjectoptionaluser billing address data object.
4billingOverrideobjectoptionaldata object that contains an array of billingfee objects.
5creditCardobjectconditional

credit card data object.

required if payment method = creditcard;
6achobjectconditional

ach data object.

required if payment method = ach.
7currencyenumrequired

currencytypeid.

Avaliable Values:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
8merchantDataobjectoptionalmerchant data data object.
9entryModeintegeroptional

nullable

transaction entry mode numerical value.
10paymentMethodenumrequired

paymentmethodtypeid.

Avaliable Values:
  • null if transaction “type“ = “update”, “adjustment”
  • if transaction “type“ = “chargeback” and originaltransaction. transactionid null, then “paymentmethod” can not be “ach”creditcard – 0 credit card payments
  • ach – 1 ach payments
11processorDataobjectoptionalprocessor data data object.
12subAccountIdintegerrequired

sub-account identifier.

value ≥ 0
13terminalIdstringoptional

terminal identifier.

maxlength(20)
14transactionMethodenumoptional

transactionmethodid.

Avaliable Values:
  • regulartransaction –
  • mailortelephoneorder – 1
  • internettransaction – 2
  • 3dsecuretransaction – 3
  • pointofsaletransaction – 4
  • billpaytransaction – 5
  • recurringtransaction – 6
15typeenumrequired

transactiontypeid.

Avaliable Values:
  • chargeback
16chargeBackobjectconditionaladditional chargeback parameters.
null if transaction “type“ ≠ “chargeback” and “update“
conditional if transaction “type“ = “chargeback” or “update“

Cancel

Cancel request example

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

Request Parameters

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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
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:
  • regulartransaction – 0
  • mailortelephoneorder – 1
  • internettransaction – 2
  • 3dsecuretransaction – 3
  • pointofsaletransaction – 4
  • billpaytransaction – 5
  • recurringtransaction – 6
15 type enum required

transactiontypeid.

Avaliable Values:
  • cancel
16 originalTransaction object required
original transaction data object. required for capture and refund and update and void.

Update

Use Update transaction to send updated values of commissions and fees of the original transaction with the Update transaction request. With the Update transaction request it is also possible to change a number of other original transaction parameters. When creating an Update transaction, the system does not update the transaction itself, but specific transaction parameters by the updated values passed with Update transaction request packet. Original transaction is determined by the Update transaction using the following original transaction parameters: transactionId, subAccountId, accountId.
Update transaction cannot be processed on another Update transaction. Update transaction packet must include originalTransaction object.
Parameters that cannot be updated are marked appropriately in the Request Parameters table.

Update request example

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

Request Parameters

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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
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:
  • regulartransaction – 0
  • mailortelephoneorder – 1
  • internettransaction – 2
  • 3dsecuretransaction – 3
  • pointofsaletransaction – 4
  • billpaytransaction – 5
  • recurringtransaction – 6
10 type enum required

transactiontypeid.

Avaliable Values:
  • disabled for updating by the update transaction.
  • update
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.

Adjustment

Use Adjustment transaction to send 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 $.

Adjustment request example

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

Request Parameters

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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
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:
  • regulartransaction – 0
  • mailortelephoneorder – 1
  • internettransaction – 2
  • 3dsecuretransaction – 3
  • pointofsaletransaction – 4
  • billpaytransaction – 5
  • recurringtransaction – 6
12 type enum required

transactiontypeid.

Avaliable Values:
  • adjustment

Recurring

For recurring transactions use Subscription object parameters. See attached code sample for reference.

Recurring Authorization request example

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

ACH

ACH request example

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

Request Parameters

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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
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:
  • creditcard 0 credit card payments
  • ach 1 ach payments
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:
  • regulartransaction – 0
  • mailortelephoneorder – 1
  • internettransaction – 2
  • 3dsecuretransaction – 3
  • pointofsaletransaction – 4
  • billpaytransaction – 5
  • recurringtransaction – 6
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.

Response

Response example

{
  "transactionId":"1234560000789",
  "merchantTransactionId": "2135345654786567",
  "responseCode": 0,
  "responseDescription":"OK",  
  "paymentToken": "",
  "processorResult": {
    "transactionId": "",
    "authNumber": "",
    "responseCode": "", 
    "responseDescription":"OK",  
    "cvvResult": "", 
    "avsResult": ""
  }
}

Response Parameters

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

processorResult Object Fileds

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

Response Codes

Objects Reference

ACH
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)

Billing Address

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 email 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)
Billing Override
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:
  1. billingaccountid
  2. subaccountid
  3. platformaccountid
  4. serviceproviderid
  5. operatorid
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:
  1. billingaccountid
  2. subaccountid
  3. platformaccountid
  4. serviceproviderid
  5. operatorid
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.
Credit Card
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:
  • visa – 0
  • mastercard – 1
  • diners – 2
  • isracard – 3
  • americanexpress – 4
  • discover – 7
  • jcb – 8
  • visadebit – 9
  • mastercarddebit – 10
  • delta – 11
  • electron – 12
  • maestro – 13
  • solo – 14
  • interac – 15
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.
Tokenization
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:
  1. external
  2. internal
2 cardtype enum conditional

creditcardtypeid.

null if “token” is null

Avaliable Values:
  • visa – 0
  • mastercard – 1
  • diners – 2
  • isracard – 3
  • americanexpress – 4
  • discover – 7
  • jcb – 8
  • visadebit – 9
  • mastercarddebit – 10
  • delta – 11
  • electron – 12
  • maestro – 13
  • solo – 14
  • interac – 15
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
Merchant Data
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)
Original Transaction
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
Processor Data
Name Type Optionality Description
1 dynamicDescriptor string required

processor dynamic descriptor value.

maxlength(255)
Chargeback
Name Type Optionality Description
1 disputeDate datetime optional

dispute date of the chargeback.

date ≤ today
2 reasonCode string optional

chargeback reason code.

maxlength(25)
Subscription
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
First Installment
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
Schedule
Name Type Optionality Description
1 interval integer conditional

schedule interval value

value > 0

required if “schedule” is not null

Avaliable Values:
  1. daily
  2. weekly
  3. monthly
  4. yearly
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
Expiration
Name Type Optionality Description
1 type enum optional

expiration type.

Avaliable Values:
  1. noenddate
  2. endafternumberofoccurrences
  3. endbydate
  4. endafternumberofdays
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
3D-Secure
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)

Transaction Echo

Getting Started

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

Credit Card Transactions

Authorization

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

Request Parameters

Transaction Packet
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:
  • CAD – 6
  • USD – 1
  • EUR – 2
  • GBP – 4
  • AUD – 5
  • SGD – 11
  • JPY – 23
  • NZD – 32
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:
  • creditcard 0 credit card payments
10 processorData object required processor data data object.
11 status enum required

transactionstatusid.

Avaliable Values:
  • processed – 0 processed transaction
  • declined – 1 declined transaction
12 subAccountId integer required sub-account identifier.
13 terminalId string optional terminal identifier.
14 transactionMethod enum optional

transactionmethodid.

Avaliable Values:
  • regulartransaction – 0
  • mailortelephoneorder – 1
  • internettransaction – 2
  • 3dsecuretransaction – 3
  • pointofsaletransaction – 4
  • billpaytransaction – 5
  • recurringtransaction – 6
15 type enum required

transactiontypeid.

Avaliable Values:
  • authorization

Void

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

Request Parameters

Transaction Packet
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:
  • CAD – 6
  • USD – 1
  • EUR – 2
  • GBP – 4
  • AUD – 5
  • SGD – 11
  • JPY – 23
  • NZD – 32
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:
  • creditcard 0 credit card payments
11 processorData object required processor data data object.
12 status enum required

transactionstatusid.

Avaliable Values:
  • processed 0 processed transaction.
  • declined 1 declined transaction.
13 subAccountId integer required sub-account identifier.
14 terminalId string optional terminal identifier.
15 transactionMethod enum optional

transactionmethodid.

Avaliable Values:
  • regulartransaction – 0
  • mailortelephoneorder – 1
  • internettransaction – 2
  • 3dsecuretransaction – 3
  • pointofsaletransaction – 4
  • billpaytransaction – 5
  • recurringtransaction – 6
16 type enum required

transactiontypeid.

Avaliable Values:
  • void – 3
  • partialvoid 4

Capture

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

Request Parameters

Valid for Capture and Partial Capture transaction types. Transaction Packet
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:
  • CAD – 6
  • USD – 1
  • EUR – 2
  • GBP – 4
  • AUD – 5
  • SGD – 11
  • JPY – 23
  • NZD – 32
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:
  • creditcard 0 credit card payments
11 processorData object required processor data data object.
12 status enum required

transactionstatusid.

Avaliable Values:
  • processed 0 processed transaction.
  • declined 1 declined transaction.
13 subAccountId integer required sub-account identifier.
14 terminalId string optional terminal identifier.
15 transactionMethod enum optional

transactionmethodid.

Avaliable Values:
  • regulartransaction – 0
  • mailortelephoneorder – 1
  • internettransaction – 2
  • 3dsecuretransaction – 3
  • pointofsaletransaction – 4
  • billpaytransaction – 5
  • recurringtransaction – 6
16 type enum required

transactiontypeid.

Avaliable Values:
  • capture – 5
  • partialcapture – 6

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


Request Parameters

Transaction Packet
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:
  • CAD – 6
  • USD – 1
  • EUR – 2
  • GBP – 4
  • AUD – 5
  • SGD – 11
  • JPY – 23
  • NZD – 32
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:
  • creditcard – 0 credit card payments.
10 processordata object required processor data data object.
11 status enum required

transactionstatusid.

Avaliable Values:
  • processed – 0 processed transaction.
  • declined – 1 declined transaction.
12 subaccountid integer required sub-account identifier.
13 terminalid string optional terminal identifier.
14 transactionmethod optional

transactionmethodid.

Avaliable Values:
  • regulartransaction – 0
  • mailortelephoneorder – 1
  • internettransaction – 2
  • 3dsecuretransaction – 3
  • pointofsaletransaction – 4
  • billpaytransaction – 5
  • recurringtransaction – 6
15 type enum required

transactiontypeid.

Avaliable Values:
  • charge

Refund


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

Request Parameters

Valid for Refund and Partial Refund transaction types. Transaction Packet
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:
  • CAD – 6
  • USD – 1
  • EUR – 2
  • GBP – 4
  • AUD – 5
  • SGD – 11
  • JPY – 23
  • NZD – 32
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:
  • creditcard – 0 credit card payments.
11 processordata object required processor data data object.
12 status enum required

transactionstatusid.

Avaliable Values:
  • processed – 0 processed transaction.
  • declined – 1 declined transaction.
13 subaccountid integer required sub-account identifier
14 terminalid string optional terminal identifier.
15 transactionmethod enum optional

transactionmethodid.

Avaliable Values:
  • regulartransaction – 0
  • mailortelephoneorder – 1
  • internettransaction – 2
  • 3dsecuretransaction – 3
  • pointofsaletransaction – 4
  • billpaytransaction – 5
  • recurringtransaction – 6
16 type enum required

transactiontypeid.

Avaliable Values:
  • refund – 8
  • partialrefund – 9

Credit

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

Request Parameters

Transaction Packet
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:
  • CAD – 6
  • USD – 1
  • EUR – 2
  • GBP – 4
  • AUD – 5
  • SGD – 11
  • JPY – 23
  • NZD – 32
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:
  • creditcard – 0 credit card payments.
10 processordata object required processor data data object.
11 status enum required

transactionstatusid.

Avaliable Values:
  • processed – 0 processed transaction.
  • declined – 1 declined transaction.
12 subaccountid integer required sub-account identifier.
13 terminalid string optional terminal identifier.
14 transactionmethod enum optional

transactionmethodid

Avaliable Values:
  • regulartransaction – 0
  • mailortelephoneorder – 1
  • internettransaction – 2
  • 3dsecuretransaction – 3
  • pointofsaletransaction – 4
  • billpaytransaction – 5
  • recurringtransaction – 6
15 type enum required

transactiontypeid.

Avaliable Values:
  • credit

Verify

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

Request Parameters

Transaction Packet
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:
  • CAD – 6
  • USD – 1
  • EUR – 2
  • GBP – 4
  • AUD – 5
  • SGD – 11
  • JPY – 23
  • NZD – 32
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:
  • creditcard – 0 credit card payments.
9 processordata object required processor data data object.
10 status enum required

transactionstatusid.

Avaliable Values:
  • processed – 0 processed transaction.
  • declined – 1 declined transaction.
11 subaccountid integer required sub-account identifier.
12 terminalid string optional terminal identifier.
13 transactionmethod enum optional

transactionmethodid.

Avaliable Values:
  • regulartransaction – 0
  • mailortelephoneorder – 1
  • internettransaction – 2
  • 3dsecuretransaction – 3
  • pointofsaletransaction – 4
  • billpaytransaction – 5
  • recurringtransaction – 6
14 type enum required

transactiontypeid.

Avaliable Values:
  • verify

Chargeback

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

Request Parameters

Valid for Chargeback, Retrieval, Representment, Arbitration and Reversal transaction types. Transaction Packet
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:
  • CAD – 6
  • USD – 1
  • EUR – 2
  • GBP – 4
  • AUD – 5
  • SGD – 11
  • JPY – 23
  • NZD – 32
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:
  • paymentmethodtypeid.creditcard 0 credit card payments
11 processordata object required processor data data object.
12 chargeback object optional additional chargeback parameters.
13 status enum required

transactionstatusid.

Avaliable Values:
  • processed 0 processed transaction.
  • declined 1 declined transaction.
14 subaccountid integer required sub-account identifier.
15 terminalid string optional terminal identifier.
16 transactionmethod enum optional

transactionmethodid.

Avaliable Values:
  • regulartransaction 0
  • mailortelephoneorder 1
  • internettransaction 2
  • 3dsecuretransaction 3
  • pointofsaletransaction 4
  • billpaytransaction 5
  • recurringtransaction 6
17 type enum required

transactiontypeid.

Avaliable Values:
  • chargeback 11
  • retrieval 14
  • representment 15
  • arbitration 16
  • reversal 17

Cancel

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

Request Parameters

Transaction Packet
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:
  • CAD – 6
  • USD – 1
  • EUR – 2
  • GBP – 4
  • AUD – 5
  • SGD – 11
  • JPY – 23
  • NZD – 32
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:
  • creditcard 0 credit card payments.
10 processordata object required processor data data object.
11 status enum required

transactionstatusid.

Avaliable Values:
  • processed 0 processed transaction.
  • declined 1 declined transaction.
12 subaccountid integer required sub-account identifier.
13 terminalid string optional terminal identifier.
14 transactionmethod enum optional

transactionmethodid

Avaliable Values:
  • regulartransaction 0
  • mailortelephoneorder 1
  • internettransaction 2
  • 3dsecuretransaction 3
  • pointofsaletransaction 4
  • billpaytransaction 5
  • recurringtransaction 6
15 type enum required
transactiontypeid.
Avaliable Values:
  • cancel

Update

Use Update transaction to send updated values of commissions and fees of the original transaction with the Update transaction request. With the Update transaction request it is also possible to change a number of other original transaction parameters. When creating an Update transaction, the system does not update the transaction itself, but specific transaction parameters by the updated values passed with Update transaction packet. Original transaction is determined by the Update transaction using the following parameters: OriginalTransactioID, SubAccountID, AccountID. Use regular Echo request packet for Update transactions.
Parameters that cannot be updated are marked appropriately
Update transaction packet must include:
  • parent transaction id
  • parent transaction id type
See code sample of the request in the Echo Request section.
Update transaction cannot be processed on another Update transaction
{
  "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"

}

Request Parameters

Transaction Packet
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:
  • CAD – 6
  • USD – 1
  • EUR – 2
  • GBP – 4
  • AUD – 5
  • SGD – 11
  • JPY – 23
  • NZD – 32
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:
  • update

Adjustment

Use Adjustment transaction to send 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 $.

Request Parameters

{
  "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"
}
Transaction Packet
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:
  • CAD – 6
  • USD – 1
  • EUR – 2
  • GBP – 4
  • AUD – 5
  • SGD – 11
  • JPY – 23
  • NZD – 32
6 status enum optional

acceptable values: status=null / status is absent / status = “”/ status: processed.

Avaliable Values:
  • processed 0 processed transaction.
  • declined 1 declined transaction.
7 subaccountid integer required sub-account identifier.
8 terminalid string optional terminal identifier.
9 transactionmethod enum optional

transactionmethodid.

Avaliable Values:
  • regulartransaction 0
  • mailortelephoneorder 1
  • internettransaction 2
  • 3dsecuretransaction 3
  • pointofsaletransaction 4
  • billpaytransaction 5
  • recurringtransaction 6
10 type enum required

transactiontypeid.

Avaliable Values:
  • adjustment

ACH

Request Parameters

ACH Regular Transaction Request Example

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

ACH Submit Transaction Request Example

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

Echo Response

Response Parameters

NameTypeDescription
1transactionidlongsystem transaction identifier.
2responsecodeintegersystem response code.
view all response codes
3responsedescriptionstringsystem response description.
4titlestringerror title.
5statusinteger

error code value

6detailstringerror path and details.
7instancestringerror instance guid.

Response Codes

Response Example

Success

{
"transactionId":"1234560000789",
"responseCode": 0,
"responseDescription":"OK"
}

Data Model Validation Error

{
"title":"Model validation failed",
"status": 400,
"detail":"{\"Amount\":[\"'Amount' must be greater than '0'.\"]}"
}

Malformed Request

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

Declined

{
"transactionId":"1234560000789",
"responseCode": 10042,
"responseDescription":" Authorization transaction already deposited"
}

Objects Reference

ACH
Name Type Optionality Description
1 accountnumber string required ach account number.
2 accounttype enum required

achaccounttypeid

Avaliable Values:
  1. savings 1 savings accounts are intended for putting money aside for long periods of time.
  2. checking 2 checking accounts are intended for depositing checks, making withdrawals and managing bill payments.
3 entitytype enum required

achentitytypeid

Avaliable Values:
  • in case is missing in the request, entitytype=0.
  • personal 0 personal account
  • business 1 business account
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.
Billing Address
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 email 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.
Billing Override
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:
  • billingaccountid 1
  • subaccountid 2
  • platformaccountid 3
  • serviceproviderid 4
  • operatorid 5
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:
  1. billingaccountid
  2. subaccountid
  3. platformaccountid
  4. serviceproviderid
  5. operatorid
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.
Credit Card
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:
  • visa 0
  • mastercard 1
  • diners 2
  • isracard 3
  • americanexpress 4
  • discover 7
  • jcb 8
  • visadebit 9
  • mastercarddebit 10
  • delta 11
  • electron 12
  • maestro 13
  • solo 14
  • interac 15
Merchant Data
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.
Original Transaction
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:
  • amaryllis 0
  • processor 1merchant 2
Processor Data
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.
Chargeback
Name Type Optionality Description
1 disputedate datetime optional dispute date of the chargeback.
2 reasoncode string optional chargeback reason code.

Tokenization

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:

  1. Via the direct API transaction processing request with tokenization parameters
  2. Via the embedded iFrame in your application checkout solution

Processing with a Token

Getting Started

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

NOTE:
see Authentication chapter for more information regarding making API requests.

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.

IMPORTANT:
In the event that the System cannot find the relevant transaction based on the specified token,it returns an InternalErrorID with the error description “Invalid Internal Token” for internal tokenization.For external tokenization, please refer to the message received from the Processor.
 

Processing with Tokenization

Activating Tokenization

Follow these steps to activate tokenization with a first-time purchase:

  1. Send a regular transaction with "TokenizationFlag": "Internal" OR "TokenizationFlag": "External" and include full payment method information
    (credit card expiration date, name on card, credit card type, credit card number and CVV2). CVV2 value may be required for subsequent transactions as well (check with your bank). In this case, pass the credit card CVV2 value for all the subsequent transactions with payment token. See Using Payment Token code sample for reference.
  2. The System will return a response with the PaymentMethodToken – the secret transaction token you can use for subsequent transactions on the same card
  3. Save the transaction token and, for subsequent transactions with this credit card, specify
    "PaymentMethodToken": "Your Token"

IMPORTANT:
keep the token in a safe place and use it in all subsequent transactions instead of credit card information

Request Parameters


    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", 
    }
  ......
}
Query is based on Regular Transaction Packet including the following Parameters
NOTE: see Transactions Processing chapter for more information regarding making API requests.
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

Response Parameters

Name Type Optionality Description
1 “paymenttoken” string required credit card payment token

Objects Reference

creditCard
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:
  • visa 0
  • mastercard 1
  • diners 2
  • isracard 3
  • americanexpress 4
  • discover 7
  • jcb 8
  • visadebit 9
  • mastercarddebit 10
  • delta 11
  • electron 12
  • maestro 13
  • solo 14
  • interac 15
5 “cvv” string optional required if “token” is null. else null
tokenization
Name Type Optionality Description
1 “type” enum conditional

null if there is no tokenization object;

Avaliable Values:
  • external 1
  • internal 2
2 “cardtype“ enum conditional

null if “token” is null

Avaliable Values:
  • visa 0
  • mastercard 1
  • diners 2
  • isracard 3
  • americanexpress 4
  • discover 7
  • jcb 8
  • visadebit 9
  • mastercarddebit 10
  • delta 11
  • electron 12
  • maestro 13
  • solo 14
  • interac 15
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

Tokenization iFrame

The embedded iFrame allows you to be in control of your check out process and keep the look and feel of your web site. The iFrame module can be applied on any ecommerce site’s payment form. IFrame takes sensitive data, subject to PCI compliance (usually credit card number and CVV number), transmits it to the System for tokenization and returns it in a form of a Token back to your application. This way, sensitive data never touches your server and you keep the token for further transactions with this credit card.

iFrame Integration

Sandbox JavaScript URL: https://sandbox.4levers.com/TokenizationApi/Scripts/fourlevers.js Production environment JavaScript URL: https://tokens.4levers.com/Scripts/fourlevers.js

Integration Guidelines


<!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>
1.Add script reference to your application HTML page and provide your personal API key
//add 4levers script reference with specified client api key
2.Add container element to tokenization iFrame with id attribute specified as container
//div container for tokenization iframe
3.Create a JavaScript function 4.Call fourlevers.createIframe method to create an 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) {
});
}
}

iFrame Customization

You can customize the embedded iFrame to fit your application original design. CSS integration guidelines:
  1. Download CSS Template File
  2. Make the required changes to the iFrame design
  3. Add “data-theme” attribute with your CSS file name to JavaScript reference in your HTML file:
<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

iFrame Testing

Follow this URL: 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

Response Example

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

Getting Started

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]

In the endpoint enter your Account API key in the place of [ApiKeyOfAccount]:
Example: https://tokens.4levers.com/126a4d4fa19942f5b302763b079ebdas

Tokenization Request

{
  "CardType": "0",
  "Cvv": "123",
  "CreditCardNumber": "4111111111111111",
  "ExpirationMonth": "11",
  "ExpirationYear": "2025",
  "NameOnCard": "Eleanor Johnson"
}
Request Parameters
Name Type Optionality Description
1 cardtype enum optional

creditcardtypeid

Avaliable Values:
  • visa 0
  • mastercard 1
  • diners 2
  • isracard 3
  • americanexpress 4
  • discover 7
  • jcb 8
  • visadebit 9
  • mastercarddebit 10
  • delta 11
  • electron 12
  • maestro 13
  • solo 14
  • interac 15
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

Tokenization Response

Response for Valid Request

{
"bin": "411111",
"expirationMonth": "11",
"expirationYear": "2025",
"last4": "1111",
"nameOnCard": "Eleanor Johnson",
"paymentToken": "06cfae4e-17e2-4e29-a4a9-267f64c2929b"
}

Response for Invalid Request

{
  "field": "Invalid Field Name",
  "errors": [
    "Error description message"
  ]
}

Response Parameters

NameTypeDescription
1binstringcredit card bank identification number.
first 6 digits of the credit card number.
2expirationmonthstringcredit card expiration month
3expirationyearstringcredit card expiration year
4last4stringcredit card number last 4 digits
5nameoncardstringcardholder’s name
6paymenttokenstringcredit card payment token
7fieldstringinvalid field name
8errorsarraya list of error messages containing at least one error message

Response Codes

Error CodeDescription
400Bad Request — Your request is invalid
401Unauthorized — Authorization failed
403Forbidden — Access denied
404Not Found — Invalid API key
500Internal Server Error — Invalid Json format or Internal Server Error
503Service Unavailable — We’re temporarily offline for maintenance. Please try again later

Payouts

Getting Started

IMPORTANT: On-demand payouts are described in this section. Go to Management section to configure automated payouts settings for each entity.
Endpoints Sandbox (test environment) and Production URLs for processing transactions: Sandbox REST URL Regular Request Transaction Type: 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:
  1. Create a Payment Option using Wallets API Create Payment Option Method.
  2. Pass just the SvsPaymentMethodID (Payment Option Identifier) with each payout transaction request or pass all ACH fields.
IMPORTANT: see Code Samples for examples in use

Payer Information

Payer – merchant account
IMPORTANT: pass these fields or SvsPaymentMethodID (Payment Option Identifier)
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:
  • required when paymentmethod = ach
  • none 0
  • 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.
5 achEntityType enum optional

personal or business account.

Avaliable Values:
  • personal personal payment option.
  • business business payment option.

Payee Information

IMPORTANT: create an Acquirer bank and then you may pass the SvsPayeeAccountNumber (Acquirer Bank Account Number) or the below fields
Payee – acquirer bank
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.

Payment Option Information

IMPORTANT: the below fields are required with each payout transaction request if you choose to create a specific Payment Option for your account/sub-account
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.
Operation Type Operation Type parameter distinguishes debit and credit transaction types. Payout is Credit transaction type; therefore, it is required to pass "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

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:
  • Process: send unprocessed payouts for processing
  • Order: order payout processing
  • Reject: reject ordered and payouts under processing
  • Cancel: cancel confirmed payouts
  • Confirm: confirm the ordered payouts
  • Reprocess: reprocess canceled payouts
  • Edit: edit ordered payout details
Endpoints: REST: /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"
}
Regular Transaction Packet
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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
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:
  • 0 regular
  • 1 phone
  • 2 internet
17 accessManagementFlag boolean required boolean data type that enables accessmanagement service.
19 instructionType enum required

the type of action the transaction performs

none 0
deposit 1 amount captured – the actual amount of the funds transfer.
authorization 2 amount that is reserved. an authorization (also card authorization, pre-authorization, or pre-auth.) is the practice within the banking industry of authorizing electronic transactions done with a debit or credit card and holding or reserving the balance until the merchant clears the transaction (deposit) or the hold “falls off” (rendering the balance available again, i.e., cancelauthorization).
cancel 4 cancel deposit before it is processed through the сс network.
chargeback 5 a chargeback occurs when the amount of the original charge that was credited to the merchant’s account is reversed. common reasons for chargebacks: the card was fraudulent; the cardholder disputes the quality or receipt of merchandise; the amount charged to the card was incorrect; processing errors were made during the transaction.
fullcredit 6 refund of deposit. full money payback to the buyer.
retrieval 8 the chargeback may be preceded by a request for information. this is called a retrieval request.
revoke 9 chargeback for ach.
checkpaymentmethod 10 validation of payment method (cc check of validity).
cancelauthorization 11 cancel authorization is the opposite instruction type of authorization, and it unlocks the frozen or reserved amount on the cardholder’s account.
cancelrecurringbilling 12 cancel recurring billing plan.
cancelaccessmanagement 13 cancel access management.
partialcredit 14 partial refund of a deposit – partial money payback to the buyer.
partialcancelauthorization 15 cancellation of part of the authorization amount.
partialdeposit 16 capture of part of the authorization amount.
representment 17 if the chargeback is deemed invalid, the acquirer initiates a chargeback representment and submits it back to the credit card association along with any supporting documentation.
arbitration 18 the issuing bank initiates arbitration after representment either on their own or at the request of the cardholder.
reversal 19 a reversal is a reversal of a chargeback, meaning that the chargeback was deemed by the acquirer to be invalid.
authorizationordeposit 20 authofdeposit is processed as authorization or deposit depending on processor requirements.
cancelorrefund 21 cancelorrefund instructs the system to send a cancelauthorization or refund transaction to the processor depending on the instruction type of the parent transaction.
20 operationType enum required

determines the transaction type from the double-entry bookkeeping perspective (debit/credit)

Avaliable Values:
  • empty 1 used for transactions that do not cause a flow of funds, such as a retrieval.
  • debit 2 used for removing a certain amount of money from a customer’s account, typically as a payment for services or goods.
  • credit 3 used for adding a certain amount of money to a customer’s account.
21 originalRecurringBillingId biginteger required original recurring billing plan identifier. required when recurringbillingautorenew = true.
22 paymentMethodType enum required

transaction payment method type

creditcard 0 credit card payments
ach 1 ach payments – electronic payments made through the automated clearing house (ach) network.
23 paymentType enum required

type of payment in the sense of reoccurrence or settlement options.

regular 0 one-time payment
recurring 1 subscription payments
installments 2 recurring installments
deferred 3 deferred payment
24 processingType enum required

the method of transaction processing. set to “processing” by default.

1 processing default value for transactions processing
3 withdrawal set for payouts processing
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).

regular 0 a regular transaction is used for any authorization or deposit transaction that is not related to a previous (parent) transaction.
submit 1 a submit transaction refers to a transaction that has a related previous (parent) transaction. it is used, among other things, for the deposit of a pre-authorized transaction, the refund of a previous deposit (full or partial credit), or the cancellation of a pending deposit transaction.
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:
  • endafternumberofdays 0
  • endafternumberofweeks 1
  • endafternumberofmonths 2
  • endafternumberofyears 3
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.

nothreed 0 use “0” (default value) if you are not using 3dsecure.
threedphase 1-3 contactsupportto activate 3dsecure service.
33 tokenizationFlag enum required

boolean data type that enables tokenization service

notokenization 0 no tokenization.
external 1 token is issued by an external processor.
internal 2 token is issued by the system.
34 servicePurchasedType enum optional

mode of purchase

regulartransaction 0
mailortelephoneorder 1
internettransaction 2
3dsecuretransaction 3
pointofsaletransaction 4
billpaytransaction 5
recurringtransaction 6
Credit Card Transaction Fields
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:
  • visa 0
  • mastercard 1
  • diners 2
  • isracard 3
  • americanexpress 4
  • discover 7
  • jcb 8
  • visadebit 9
  • mastercarddebit 10
  • delta 11
  • electron 12
  • maestro 13
  • solo 14
  • interac 15
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

ACH Transaction Field Descriptions
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

none 0
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.
5 achEntity enum optional

personal or business account.

personal personal payment option.
business business payment option.
Note — Withdrawal Authorization is not an actual payout transaction; it is only a reservation of a certain amount and has to be confirmed either manually(via the System Back-Office) or by sending an additional Withdrawal Capture transaction.

Response Parameters

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

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.

IMPORTANT:
a Parent or OriginalTransactionID must be supplied with the transaction request for any Submit transaction. OriginalTransactionID (generated by the System) or OriginalCustomerTxID (generated by Merchant). In case none of the above is passed with the request, the transaction is to be declined.
 
IMPORTANT:
the authorization lifespan may vary depending on credit card type. For VISA, American Express and Mastercard, authorization may take up to 7 days. For Discover, up to 10 days. Authorizations may even take up to 30 days.
 

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"
}
Request Parameters Sumbit Transaction Packet
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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
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:
  • 0regular
  • 1phone
  • 2internet
17 accessManagementFlag boolean required boolean data type that enables accessmanagement service.
18 instructionType enum required

the type of action the transaction performs

none 0
deposit 1 amount captured – the actual amount of the funds transfer.
authorization 2 amount that is reserved. an authorization (also card authorization, pre-authorization, or pre-auth.) is the practice within the banking industry of authorizing electronic transactions done with a debit or credit card and holding or reserving the balance until the merchant clears the transaction (deposit) or the hold “falls off” (rendering the balance available again, i.e., cancelauthorization).
cancel 4 cancel deposit before it is processed through the сс network.
chargeback 5 a chargeback occurs when the amount of the original charge that was credited to the merchant’s account is reversed. common reasons for chargebacks: the card was fraudulent; the cardholder disputes the quality or receipt of merchandise; the amount charged to the card was incorrect; processing errors were made during the transaction.
fullcredit 6 refund of deposit. full money payback to the buyer.
retrieval 8 the chargeback may be preceded by a request for information. this is called a retrieval request.
revoke 9 chargeback for ach.
checkpaymentmethod 10 validation of payment method (cc check of validity).
cancelauthorization 11 cancel authorization is the opposite instruction type of authorization, and it unlocks the frozen or reserved amount on the cardholder’s account.
cancelrecurringbilling 12 cancel recurring billing plan.
cancelaccessmanagement 13 cancel access management.
partialcredit 14 partial refund of a deposit – partial money payback to the buyer.
partialcancelauthorization 15 cancellation of part of the authorization amount.
partialdeposit 16 capture of part of the authorization amount.
representment 17 if the chargeback is deemed invalid, the acquirer initiates a chargeback representment and submits it back to the credit card association along with any supporting documentation.
arbitration 18 the issuing bank initiates arbitration after representment either on their own or at the request of the cardholder.
reversal 19 a reversal is a reversal of a chargeback, meaning that the chargeback was deemed by the acquirer to be invalid.
authorizationordeposit 20 authofdeposit is processed as authorization or deposit depending on processor requirements.
cancelorrefund 21 cancelorrefund instructs the system to send a cancelauthorization or refund transaction to the processor depending on the instruction type of the parent transaction.
19 operationType enum required

determines the transaction type from the double-entry bookkeeping perspective (debit/credit)

empty 1 used for transactions that do not cause a flow of funds, such as a retrieval.
debit 2 used for removing a certain amount of money from a customer’s account, typically as a payment for services or goods.
credit 3 used for adding a certain amount of money to a customer’s account.
20 paymentMethodType enum required

transaction payment method type

creditcard 0 credit card payments
ach 1 ach payments – electronic payments made through the automated clearing house (ach) network.
21 paymentType enum required

type of payment in the sense of reoccurrence or settlement options.

regular 0 one-time payment
recurring 1 subscription payments
installments 2 recurring installments
deferred 3 deferred payment
22 processingType enum required

the method of transaction processing. set to “processing” by default.

1 processing default value for transactions processing
3 withdrawal set for payouts processing
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).
regular 0 a regular transaction is used for any authorization or deposit transaction that is not related to a previous (parent) transaction.
submit 1 a submit transaction refers to a transaction that has a related previous (parent) transaction. it is used, among other things, for the deposit of a pre-authorized transaction, the refund of a previous deposit (full or partial credit), or the cancellation of a pending deposit transaction.
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.
nothreed 0 use “0” (default value) if you are not using 3dsecure.
threedphase 1-3 contactsupportto activate 3dsecure service.
27 tokenizationFlag enum required

boolean data type that enables tokenization service

notokenization 0 no tokenization.
external 1 token is issued by an external processor.
internal 2 token is issued by the system.
28 numberOfTries integer optional determines the transaction retry configuration. set to 1 by default.
29 servicePurchasedType enum optional

mode of purchase

regulartransaction 0
mailortelephoneorder 1
internettransaction 2
3dsecuretransaction 3
pointofsaletransaction 4
billpaytransaction 5
recurringtransaction 6
30 skinId integer required skin identifier required for user validation purposes. skinid is also known as service provider id.
Credit Card Transaction Fields
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

visa 0
mastercard 1
diners 2
isracard 3
americanexpress 4
discover 7
jcb 8
visadebit 9
mastercarddebit 10
delta 11
electron 12
maestro 13
solo 14
interac 15
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

ACH Transaction Field Descriptions
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

none 0
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.
5 achEntity enum optional

personal or business account.

personal personal payment option.
business business payment option.

Response Parameters

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 Capture

Withdrawal Capture is a Submit Request Transaction Type – meaning that it is based on parent (original) Withdrawal Authorization transaction.
IMPORTANT: a “parent” or OriginalTransactionID must be supplied with the transaction request for a Submit transaction. OriginalTransactionID (generated by the System) or OriginalCustomerTxID (generated by Merchant). In case none of the above is provided with the API request, the transaction is to be declined.
Endpoints: REST: /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"
}
Request Parameters Sumbit Transaction Packet
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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
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:
  • 0regular
  • 1phone
  • 2internet
19 accessManagementFlag boolean required boolean data type that enables accessmanagement service.
20 instructionType enum required

the type of action the transaction performs

none 0
deposit 1 amount captured – the actual amount of the funds transfer.
authorization 2 amount that is reserved. an authorization (also card authorization, pre-authorization, or pre-auth.) is the practice within the banking industry of authorizing electronic transactions done with a debit or credit card and holding or reserving the balance until the merchant clears the transaction (deposit) or the hold “falls off” (rendering the balance available again, i.e., cancelauthorization).
cancel 4 cancel deposit before it is processed through the сс network.
chargeback 5 a chargeback occurs when the amount of the original charge that was credited to the merchant’s account is reversed. common reasons for chargebacks: the card was fraudulent; the cardholder disputes the quality or receipt of merchandise; the amount charged to the card was incorrect; processing errors were made during the transaction.
fullcredit 6 refund of deposit. full money payback to the buyer.
retrieval 8 the chargeback may be preceded by a request for information. this is called a retrieval request.
revoke 9 chargeback for ach.
checkpaymentmethod 10 validation of payment method (cc check of validity).
cancelauthorization 11 cancel authorization is the opposite instruction type of authorization, and it unlocks the frozen or reserved amount on the cardholder’s account.
cancelrecurringbilling 12 cancel recurring billing plan.
cancelaccessmanagement 13 cancel access management.
partialcredit 14 partial refund of a deposit – partial money payback to the buyer.
partialcancelauthorization 15 cancellation of part of the authorization amount.
partialdeposit 16 capture of part of the authorization amount.
representment 17 if the chargeback is deemed invalid, the acquirer initiates a chargeback representment and submits it back to the credit card association along with any supporting documentation.
arbitration 18 the issuing bank initiates arbitration after representment either on their own or at the request of the cardholder.
reversal 19 a reversal is a reversal of a chargeback, meaning that the chargeback was deemed by the acquirer to be invalid.
authorizationordeposit 20 authofdeposit is processed as authorization or deposit depending on processor requirements.
cancelorrefund 21 cancelorrefund instructs the system to send a cancelauthorization or refund transaction to the processor depending on the instruction type of the parent transaction.
21 operationType enum required

determines the transaction type from the double-entry bookkeeping perspective (debit/credit)

empty 1 used for transactions that do not cause a flow of funds, such as a retrieval.
debit 2 used for removing a certain amount of money from a customer’s account, typically as a payment for services or goods.
credit 3 used for adding a certain amount of money to a customer’s account.
22 paymentMethodType enum required

transaction payment method type

creditcard 0 credit card payments
ach 1 ach payments – electronic payments made through the automated clearing house (ach) network.
23 paymentType enum required

type of payment in the sense of reoccurrence or settlement options.

regular 0 one-time payment
recurring 1 subscription payments
installments 2 recurring installments
deferred 3 deferred payment
24 processingType enum required

the method of transaction processing. set to “processing” by default.

1 processing default value for transactions processing
3 withdrawal set for payouts processing
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).

regular 0 a regular transaction is used for any authorization or deposit transaction that is not related to a previous (parent) transaction.
submit 1 a submit transaction refers to a transaction that has a related previous (parent) transaction. it is used, among other things, for the deposit of a pre-authorized transaction, the refund of a previous deposit (full or partial credit), or the cancellation of a pending deposit transaction.
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.

nothreed 0 use “0” (default value) if you are not using 3dsecure.
threedphase 1-3 contactsupportto activate 3dsecure service.
29 tokenizationFlag enum required

boolean data type that enables tokenization service

notokenization 0 no tokenization.
external 1 token is issued by an external processor.
internal 2 token is issued by the system.
30 numberOfTries integer optional

determines the transaction retry configuration.

set to 1 by default.
31 servicePurchasedType enum optional mode of purchase
regulartransaction 0
mailortelephoneorder 1
internettransaction 2
3dsecuretransaction 3
pointofsaletransaction 4
billpaytransaction 5
recurringtransaction 6
Credit Card Transaction Fields
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

visa 0
mastercard 1
diners 2
isracard 3
americanexpress 4
discover 7
jcb 8
visadebit 9
mastercarddebit 10
delta 11
electron 12
maestro 13
solo 14
interac 15
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

ACH Transaction Field Descriptions
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

none 0
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.
5 achEntity enum optional

personal or business account.

personal personal payment option.
business business payment option.

Response Parameters

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.

Withdrawal Charge

Withdrawal Charge is a Regular Request Transaction Type – meaning that it is not based on any parent (original) transaction. Use Withdrawal Charge transaction type to process a direct payout without prior withdrawal authorization. Endpoints: REST: /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"
}
Request Parameters Regular Transaction Packet
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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
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:
  • 0 regular
  • 1 phone
  • 2 internet
18 accessManagementFlag boolean required boolean data type that enables accessmanagement service.
19 instructionType enum required

the type of action the transaction performs

none 0
deposit 1 amount captured – the actual amount of the funds transfer.
authorization 2 amount that is reserved. an authorization (also card authorization, pre-authorization, or pre-auth.) is the practice within the banking industry of authorizing electronic transactions done with a debit or credit card and holding or reserving the balance until the merchant clears the transaction (deposit) or the hold “falls off” (rendering the balance available again, i.e., cancelauthorization).
cancel 4 cancel deposit before it is processed through the сс network.
chargeback 5 a chargeback occurs when the amount of the original charge that was credited to the merchant’s account is reversed. common reasons for chargebacks: the card was fraudulent; the cardholder disputes the quality or receipt of merchandise; the amount charged to the card was incorrect; processing errors were made during the transaction.
fullcredit 6 refund of deposit. full money payback to the buyer.
retrieval 8 the chargeback may be preceded by a request for information. this is called a retrieval request.
revoke 9 chargeback for ach.
checkpaymentmethod 10 validation of payment method (cc check of validity).
cancelauthorization 11 cancel authorization is the opposite instruction type of authorization, and it unlocks the frozen or reserved amount on the cardholder’s account.
cancelrecurringbilling 12 cancel recurring billing plan.
cancelaccessmanagement 13 cancel access management.
partialcredit 14 partial refund of a deposit – partial money payback to the buyer.
partialcancelauthorization 15 cancellation of part of the authorization amount.
partialdeposit 16 capture of part of the authorization amount.
representment 17 if the chargeback is deemed invalid, the acquirer initiates a chargeback representment and submits it back to the credit card association along with any supporting documentation.
arbitration 18 the issuing bank initiates arbitration after representment either on their own or at the request of the cardholder.
reversal 19 a reversal is a reversal of a chargeback, meaning that the chargeback was deemed by the acquirer to be invalid.
authorizationordeposit 20 authofdeposit is processed as authorization or deposit depending on processor requirements.
cancelorrefund 21 cancelorrefund instructs the system to send a cancelauthorization or refund transaction to the processor depending on the instruction type of the parent transaction.
20 operationType enum required

determines the transaction type from the double-entry bookkeeping perspective (debit/credit)

empty 1 used for transactions that do not cause a flow of funds, such as a retrieval.
debit 2 used for removing a certain amount of money from a customer’s account, typically as a payment for services or goods.
credit 3 used for adding a certain amount of money to a customer’s account.
21 originalRecurringBillingId biginteger optional

original recurring billing plan identifier.

required when recurringbillingautorenew = true.
22 paymentMethodType enum required

transaction payment method type

creditcard 0 credit card payments
ach 1 ach payments – electronic payments made through the automated clearing house (ach) network.
23 paymentType enum required

type of payment in the sense of reoccurrence or settlement options.

regular 0 one-time payment
recurring 1 subscription payments
installments 2 recurring installments
deferred 3 deferred payment
24 processingType enum required

type of payment in the sense of reoccurrence or settlement options.

1 processing default value for transactions processing
3 withdrawal set for payouts processing
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).

regular 0 a regular transaction is used for any authorization or deposit transaction that is not related to a previous (parent) transaction.
submit 1 a submit transaction refers to a transaction that has a related previous (parent) transaction. it is used, among other things, for the deposit of a pre-authorized transaction, the refund of a previous deposit (full or partial credit), or the cancellation of a pending deposit transaction.
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

endafternumberofdays 0
endafternumberofweeks 1
endafternumberofmonths 2
endafternumberofyears 3
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.

nothreed 0 use “0” (default value) if you are not using 3dsecure.
threedphase 1-3 contactsupportto activate 3dsecure service.
33 tokenizationFlag enum required

boolean data type that enables tokenization service

notokenization 0 no tokenization.
external 1 token is issued by an external processor.
internal 2 token is issued by the system.
34 numberOfTries integer optional

determines the transaction retry configuration.

set to 1 by default.
35 servicePurchasedType enum optional mode of purchase
Avaliable Values:
  • regulartransaction 0
  • mailortelephoneorder 1
  • internettransaction 2
  • 3dsecuretransaction 3
  • pointofsaletransaction 4
  • billpaytransaction 5
  • recurringtransaction 6
36 skinId integer required

skin identifier required for user validation purposes.

skinid is also known as service provider id.
ACH Transaction Field Descriptions
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

none 0
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.
5 achEntity enum optional

personal or business account.

personal personal payment option.
business business payment option.

Response Parameters

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.

Reports

Getting Started

Response Example

{
"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&parameter2&..&parameterN=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

Reports API

Account Balances

 

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.

 

Request Example (REST Production URL)

GET: https://reports-api.4levers.com/api/Reports/account-balances?DateFrom=2020-12-10&DateTo=2020-12-22&Accounts={accountId}&SubAccounts={subAccountId}&Take=5

Request Parameters
NameTypeOptionalityDescription
1dateFromdatetimerequireddetermines the selection starting/ending time range
2dateTodatetimerequired
3serviceProvidersinteger/arrayoptionalenter your service provider id(s)
4operatorsinteger/arrayoptionalenter your operator id(s)
5accountsinteger/arrayoptionalenter your platform account id(s)
6subAccountsstring/arrayoptionalenter your sub-account id(s)
7skipinteger/arrayoptional

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
8takeinteger/arrayoptional

Response Example

[
    {
        "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"
    }
]
Response Parameters
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

Payouts

REST Sandbox URL: 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.
Request Example (REST Production URL)
GET: 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
Request Parameters
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:
  • creationdate
  • modificationdate
4 payoutNtatus enum optional

transaction processing status:

Avaliable Values:
  • pendingapproval
  • pendingprocessing
  • processed
  • declinedbyuser
  • rejectedbyprocessor
  • declinedbyprocessor
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

ach to process regular payouts
creditcard to process negative payouts via card on file instructions in case configured.
8 payoutType enum optional

specify the payout type

fixed fixed amount
percentage percentage amount
pastdate amount for the date in the past
pastinterval amount for the interval in the past
payoutondemand single payout
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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
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

Response Example

[
  {
    "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"
  }
]
Response Parameters
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

Payouts Reconciliation

REST Sandbox URL: 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.
Request Example (REST Production URL)
GET: https://reports-api.4levers.com/api/Reports/payouts-reconciliation?DateFrom=2020-12-10&DateTo=2020-12-22&PayoutMethod=ACH&Currencies=USD&Take=5
Request Parameters
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:
  • processdate
  • returndate
4 payoutStatus enum optional

transaction processing status

Avaliable Values:
  • processed
  • rejectedbyprocessor
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:
  • ach
  • creditcard
8 payoutType enum optional

specify the payout type

percentage percentage amount
pastinterval amount for the interval in the past
payoutondemand single payout
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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
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

Response Example

[
  {
        "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"
    }
]
Response Parameters
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:
  • ACH
  • Fee
  • Gift Card or Credit Card type
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

Settlements

REST Sandbox URL: 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.
Request Example (REST Production URL)
GET: https://reports-api.4levers.com/api/Reports/settlements?ReportPeriodType=Monthly&Processors={processorId}&DateFrom=2020-12-10&DateTo=2020-12-22&Currencies=USD&Take=5
Request Parameters
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:
  • daily
  • monthly
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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD

Response Example

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

Response Parameters

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

Account Summary

REST Sandbox URL: 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.
Request Example (REST Production URL)
GET: 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}

Request Parameters

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:
  • systemDate
  • merchantDate
4 processors string/array optional specify your processor(s)
5 reportperiodtype enum optional

select the output period for the report

Avaliable Values:
  • daily
  • monthly
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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD

Response Example

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


Response Parameters

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

Transactions Summary

REST Sandbox URL: 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.
Request Example (REST Production URL)
GET: 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

Request Parameters

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:
  • systemDate
  • merchantDate
  • settlementDate
4 processors integer/array optional

enter your processor id(s)

5 reportperiodtype enum optional

select the output period for the report

Avaliable Values:
  • daily
  • monthly
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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD

Response Example

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

Responce Parameters

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

Transactions

REST Sandbox URL: 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.
Request Example (REST Production URL)
GET: https://reports-api.4levers.com/api/Reports/transactions?DateFrom=2019-07-23&DateTo=2019-07-24
Request Parameters
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:
  • processed
  • declined
  • chbcredited
  • chbamountmismatch
  • chbcurrencymismatch
  • chbdouble
  • chbexception
  • chbmultiple
  • chbunrelated
5 daterangetype enum optional

specify the date range type

Avaliable Values:
  • systemdate
  • merchantdate
  • settlementdate
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:
  • creditcard
  • ach
  • giftcard
13 creditcards enum optional

specify a credit card type

Avaliable Values:
  • visa
  • mastercard
  • diners
  • isracard
  • americanexpress
  • discover
  • jcb
  • visadebit
  • mastercarddebit
  • delta
  • electron
  • maestro
  • solo
  • interac
14 transactiontype enum optional

specify a transaction type

Avaliable Values:
  • verify
  • authorization
  • void
  • partialvoid
  • capture
  • partialcapture
  • charge
  • refund
  • partialrefund
  • credit
  • chargeback
  • retrieval
  • representment
  • arbitration
  • reversalcancel
15 paymenttypes enum optional

specify a payment type

Avaliable Values:
  • regular one-time payment
  • recurring subscription payments
  • installments recurring installments
  • deferred deferred payment
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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD
27 amountfrom number optional amount range starting value
28 amountto number optional amount range ending value

Response Example

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

Response Parameters

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.

Fees Summary

REST Sandbox URL: 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.
Request Example (REST Production URL)
GET: https://reports-api.4levers.com/api/Reports/fees-summary?DateFrom=2019-07-23&DateTo=2019-07-24

Request Parameters

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:
  • pertransaction calculated per transaction
  • scalerange calculated per transaction count
  • scheduled calculated on a scheduled basis
  • interchangefee interchange fees
  • feeonfee fees for other fees
6 feecategory enum optional

nullable

fee categories

Avaliable Values:
  • fee
  • tax
7 processors string/array optional clearing acquirer name(s)
8 feetargets enum optional

specify the fee recipient

Avaliable Values:
  • platform platform is a fee recipient
  • serviceprovider service provider is a fee recipient
  • operator operator is a fee recipient
  • reservebalance fee assigned to a reserve balance
  • subaccount sub-account is a fee recipient
  • outgoing outgoing fees
  • agent fees for agents
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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD

Response Example

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

Response Parameters

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.

Incoming Fees

REST Sandbox URL: 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.
Request Example (REST Production URL)
GET: https://reports-api.4levers.com/api/Reports/incoming-fees?DateFrom=2019-07-23&DateTo=2019-07-24

Request Parameters

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:
  • pertransaction calculated per transaction
  • scalerange calculated per transaction count
  • scheduled calculated on a scheduled basis
  • interchangefee interchange fees
  • feeonfee fees for other fees
6 feecategory enum optional

nullable

fee categories

Avaliable Values:
  • fee
  • tax
7 feesources enum optional

specify the fee source

Avaliable Values:
  • disabled for platform user.
  • available for full view only.
  • platform platform account is a fee recipient
  • serviceprovider service provider is a fee recipient
  • operator operator is a fee recipient
  • reservebalance fees for reserve balance
  • subaccount sub-account is a fee recipient
  • outgoing outgoing fees
  • agents fees for agent entities
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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD

Response Example

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

Response Parameters

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.

Expected Future Revenue

REST Sandbox URL: 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.
Request Example (REST Production URL)
GET: https://reports-api.4levers.com/api/Reports/expected-future-revenue?DateFrom=2020-06-01&DateTo=2020-07-17
Request Parameters
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:
  • pertransaction calculated per transaction
  • scalerange calculated per transaction count
  • scheduled calculated on a scheduled basis
  • interchangefee interchange fees
  • feeonfee fees for other fees
6 feecategory enum optional

nullable

fee categories

Avaliable Values:
  • fee
  • tax
7 feesources enum optional

specify the fee source

Avaliable Values:
  • disabled for platform user.
  • available for full view only.
  • platform platform account is a fee recipient
  • serviceprovider service provider is a fee recipient
  • operator operator is a fee recipient
  • reservebalance fees for reserve balance
  • subaccount sub-account is a fee recipient
  • outgoing outgoing fees
  • agents fees for agent entities
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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD

Response Example

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

Response Parameters

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.

Profitability Analysis

REST Sandbox URL: 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.
Request Example (REST Production URL)
GET: https://reports-api.4levers.com/api/Reports/profitability-analysis?DateFrom=2020-06-01&DateTo=2020-07-17

Request Parameters

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:
  • daily
  • monthly
5 paymentmethods enum optional

specify the payment method

required in case credit card is populated.

Avaliable Values:
  • creditcard
  • ach
  • giftcard
6 creditcards enum optional

specify a credit card type

Avaliable Values:
  • visa
  • mastercard
  • diners
  • isracard
  • americanexpress
  • discover
  • jcb
  • visadebit
  • mastercarddebit
  • delta
  • electron
  • maestro
  • solo
  • interac
7 transactiontype enum optional

specify a transaction type

Avaliable Values:
  • authorization
  • void
  • partialvoid
  • capture
  • partialcapture
  • charge
  • refund
  • partialrefund
  • credit
  • chargeback
  • payout
  • payoutrejectedbyprocessor
  • payoutdeclinedbyuser
  • payoutauthorization
  • retrieval
  • representment
  • arbitration
  • reversal
  • cancel
  • adjustment
  • fee
8 status enum optional

transaction processing status

Avaliable Values:
  • processed
  • declined
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

Response Example

[
  {
        "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",
    }
]

Response Parameters

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

Reconciliation Summary

REST Sandbox URL: 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.
Request Example (REST Production URL)
GET: https://reports-api.4levers.com/api/Reports/reconciliation-summary?DateFrom=2019-07-23&DateTo=2019-07-24

Request Parameters

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:
  • systemdate
  • reconciliationdate
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:
  • creditcard
  • ach
  • giftcard
6 creditcards enum optional

specify a credit card type

Avaliable Values:
  • visa
  • mastercard
  • diners
  • isracard
  • americanexpress
  • discover
  • jcb
  • visadebit
  • mastercarddebit
  • delta
  • electron
  • maestro
  • solo
  • interac
7 reportperiodtype enum optional

specify the output report period type

Avaliable Values:
  • daily
  • monthly
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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD

Response Example

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

Response Parameters

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

Reconciliation Records

REST Sandbox URL: 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.
Request Example (REST Production URL)
GET: https://reports-api.4levers.com/api/Reports/reconciliation-records?DateFrom=2019-07-23&DateTo=2019-07-24

Request Parameters

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:
  • systemdate
  • reconciliationdate
5 reconciliationstatus enum optional

specify the output report reconciliation status

Avaliable Values:
  • pending
  • matching
  • mismatch
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:
  • creditcard
  • ach
  • giftcard
11 creditcards enum optional

specify a credit card type

Avaliable Values:
  • visa
  • mastercard
  • diners
  • isracard
  • americanexpress
  • discover
  • jcb
  • visadebit
  • mastercarddebit
  • delta
  • electron
  • maestro
  • solo
  • interac
12 transactiontype enum optional

specify a transaction type

Avaliable Values:
  • verify
  • authorization
  • void
  • partialvoid
  • capture
  • partialcapture
  • charge
  • refund
  • partialrefund
  • credit
  • chargeback
  • retrieval
  • representment
  • arbitration
  • reversal
  • cancel
13 paymenttypes enum optional

specify the payment type

Avaliable Values:
  • regular
  • recurring
  • installments
  • deferred
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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD

Response Example

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

Response Parameters

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.

Chargeback Analysis

REST Sandbox URL: 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.
Request Example (REST Production URL)
GET: https://reports-api.4levers.com/api/Reports/chargeback-analysis?DateFrom=2019-06-01&DateTo=2019-07-24

Request Parameters

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:
  • creditcard
  • ach
  • giftcard
5 creditcards enum optional

specify a credit card type

Avaliable Values:
  • visa
  • mastercard
  • diners
  • isracard
  • americanexpress
  • discover
  • jcb
  • visadebit
  • mastercarddebit
  • delta
  • electron
  • maestro
  • solo
  • interac
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:
  • CAD
  • USD
  • EUR
  • GBP
  • AUD
  • SGD
  • JPY
  • NZD

Response Example

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

Response Parameters

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

Tokens

REST Sandbox URL: 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.
Request Example (REST Production URL)
GET: https://reports-api.4levers.com/api/Reports/tokens?DateFrom=2019-07-23&DateTo=2019-07-24

Request Parameters

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:
  • visa
  • mastercard
  • diners
  • isracard
  • americanexpress
  • discover
  • jcb
  • visadebit
  • mastercarddebit
  • delta
  • electron
  • maestro
  • solo
  • interac
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

Response Example

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

Response Parameters

NameDescription
1tokenpayment secure token
2creationdatetoken creation date and time
3creditcardtypecredit card type
4creditcardnumbermasked credit card number
5сreditCardExpirationcredit card expiration date in a format mm/yyyy
6
сreditCardOwnerName
cardholder’s name
7subaccountsub-account identifier and name
8platformaccountplatform account name

Sign-up Summary

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.

Request Example (REST Production URL)

GET: https://reports-api.4levers.com/api/Reports/underwriting-sign-up-summary?DateFrom=2019-07-23&DateTo=2019-07-24

Request Parameters

NameTypeOptionalityDescription
1datefromdatetimerequireddetermines the selection starting/ending time range
2datetodatetimerequired
3serviceprovidersinteger/arrayoptionalenter your service provider id(s)
4operatorsinteger/arrayoptionalenter your operator id(s)
5skipintegeroptional

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

 
6takeintegeroptional

Response Example

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

Response Parameters

NameDescription
1systemdatesystem date
2numberofapplicationsignupsoverall number of applications created in this specific date
3numberofapplicationsundervalidationoverall number of applications with status = “under validation”
4numberofapplicationsunderreviewoverall number of applications with status = “under review”
5numberofapplicationspendingresubmissionoverall number of applications with status = “pending resubmission”
6numberofdeclinedapplicationsnumber of applications declined in this date
7numberofapprovedapplicationsnumber of applications approved in this date
8numberofboardedsubaccountsoverall number of sub-accounts created in this date
9numberofactivesubaccountsoverall number of active sub-accounts in this date
10numberofdisabledsubaccountsoverall number of disabled sub-accounts in this date
11operatoroperator name
12serviceproviderservice provider name

Status Codes

Response CodeResponse code nameDescription
400BadRequestInvalid data in the request
401UnauthorizedUnauthorized attempt to access data
500InternalServerErrorInternal server error
200OkSuccessful request

Errors

Here is a list of Standard Error Codes for the REST APIs

Error CodeDescription
400Bad Request — Your request is invalid
401Unauthorized — Authorization failed
403Forbidden — Access denied
404Not Found — Wrong URL
415Unsupported Media Type — Wrong request format
500Internal Server Error — We had a problem with our server. Try again later
503Service Unavailable — We’re temporarily offline for maintenance. Please try again later

Response Codes

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.