Revision History
Version Date Description
1.0 02/09/2022 - Initial version

Introduction

Payment Gateway API reference provides information on available endpoints and how to interact with them.

Target Audience

This document aims at developers who integrate with Payment Gateway API.

Definitions

The following terminology is used throughout this document:

User - a person who has a gaming account at a Partner's website. The terms User, Customer, and Player are used interchangeably.

Merchant - describes the Partner who uses the solutions provided by the Payment Gateway. The terms Merchant and Partner are used interchangeably.

Payment Gateway Base URLs

The following URLs are added before the endpoint when sending requests to the Payment Gateway. Based on the environment, the base URLs differ.

Live/Production -
Test/Sandbox - https://pygapi.tst-digi.com

Payment Getaway API

To interact with the API, see PaymentGatewayAPI generated and hosted on Swagger.

Authentication

All the requests sent to Payment Gateway are signed and contain the following headers:

SITED: Unique identifier of the site provided by the Payment Gateway.
REQUESTID: Globally Unique Identifier (GUID). For each request a new GUID is generated.
SIGNATURE: A signature used to verify that the data hasn't been altered.

Request header example:

curl -L -X GET 'https://pygapi.tst-digi.com/api/transaction/gettransactiondetails' \
-H 'SITEID: 2adf34s52g5' \
-H 'REQUESTID: fet47t924t9h2ch01f2yi47' \
-H 'SIGNATURE: S4eFruHgo24t204G7tH027KtgmEu73dO7t27'

The REQUESTID header is generated via GUID. After identifier generation remove all the hyphens (-) and use it as REQUESTID.

Headers[REQUESTID] = Guid.NewGuid().ToString("N")

The SIGNATURE header is generated in the following way:

  1. Request body is hashed via MD5 hashing algorithm. The output is encoded via Base64 encoding scheme.
    requestContentBase64String = Base64Encoded(md5(requestContent))  
    
    NOTE: This step is discarded if the request doesn't contain a body (usually in the case of GET or DELETE requests).
  2. The parameters concatenated in the following order without any delimiters: SITEID + REQUESTID + body .
  3. HMAC SHA256 is created using the secret key on the concatenated string from the 2nd step.
  4. Output from the 3rd step is encoded using Base64 encoding scheme.
    Base64Encod(HMACSHA256(secretKey).ComputeHash(signatureRawData(SITEID,REQUESTID,requestContentBase64String)))  
    

The secret key is provided by the Payment Gateway.

All API requests must be made over HTTPS. The ones without authentication or with wrong data will be rejected and as a reponse 401 Unauthorized HTTP status code will be returned.

NOTE: The secret key must be secured as it provides access API calls. The secret key must not be shared in publicly accessible areas.

API Reference

Online Payments

Online payment is the electronic exchange of money. The money is transferred right after the ustomer confirms the transaction.

POST /api/Transaction/inittransaction Creates a transaction at the Payment Gateway's and Payment Provider's side
POST /api/Transaction/confirmtransaction Confirms the transaction. The method is supported only for withdrawals
POST Callback URL from InitTransaction Notifies about the change of transaction's state

Overview

Online Deposit Flow

Transaction flow

  1. The User selects a payment method from gaming website cashier, fills required fields on the payment form, submits the Deposit, and the Web sends Create Payment request to the Platform.
  2. The Platform checks the User credentials and if the User is eligible to make a transaction, creates a transaction and sends the InitTransaction request to the Payment Gateway.
  3. The Payment Gateway returns Redirect URL to the Platform.
  4. The Platform provides the Redirect URL to the Web so the User is redirected to the Payment Provider checkout page.
  5. The Payment Gateway informs the Platform about the change in the transaction state, using NotifyTransactionStateChange method.

Note: This flow is applicable for payment systems if the Initial Amount and Final Amount are different. That type of payment systems have diferent flow. The amount is changed on the Platform after the callback.

Online Withdrawal Flow

Transaction flow

  1. The User selects a payment method from gaming website cashier, fills required fields on the payment form, submits the Withdrawal, and the Web sends Create Payment request to the Platform.
  2. The Platform checks the User credentials and if the User is eligible to transfer money, then creates a transaction and sends the InitTransaction request to the Payment Gateway.
  3. The Payment Gateway responds to the Platform.
  4. The Platform responds to the Web.
  5. The Partner Risk Managers/Operation team checks the transaction credentials and after confirmation the Platform calls the ConfirmTransaction method to process the transaction.
  6. The Payment Gateway responds to the Platform by returning with transaction details (in some cases, it sends Redirect URL). Note: In the case of withdrawals with redirection, the Platform sends the Redirect URL to the Web and the User is redirected to the Payment Provider checkout page.
  7. The Payment Gateway informs the Platform about the change in the transaction state using NotifyTransactionStateChange method.

Method: InitTransaction

The method initializes transaction on the side of the PaymentGetaway and PaymentProvider by InitTransactionDTO parameters.
Note: The method is supported both for deposits and withdrawals.


Endpoint: /api/Transaction/inittransaction
Method: POST
Request Content-Type: application/json
Response Content-Type: application/json


Parameters
Resquest

Query Params

Name Type Description
Api-version
Required
int Current version of the API (the value is "1")

Body

Name Type Description
SiteId
Required
int Identifier of the Merchant site
Currency
Required
enum
Currency
ISO currency code
Amount
Required
decimal Amount of the transaction
PaymentSystem
Required
int Identifier of the Payment system
OperationType
Required
enum
TransactionType
Operation type
PaymentMethod int Type of the payment method (Default-0/Binding-1/NotAttached-2)
MTransId
Required
string Identifier of the transaction provided by the Merchant
CallbackURL string Callback URL
Language enum
Language
ISO Language Code
UserID string Identifier of the User
Email string Email address of the User
FirstName string First name of the User
LastName string Last name of the User
DateOfBirth datetime Birthdate of the User. Format: dd/mm/yyy hh:mm:ss
Don't specify the time part of the birthdate. The value can be null.
Address string Address of the User
PhoneNumber string Phone number of the User
PostalCode string Postal code of the User
City string City of the User residence
State string State of the User residence
County string Country of User
PsAccountID string Identifier of the Paymant System destination account
IpAddress string IP address of the User
TransactionData object Key value pairs of the properties that are required by the Payment System but are not supported by the payment method
MockResponseState string Mock response state used for testing payment system mock APIs

Note: For some Payment Systems the marked (asterisk) parameters can be required. It is recommended to send the asterisked parameters for all payments.

Sample Deposit Request

curl -L -X POST ' https://pygapi.tst-digi.com/api/Transaction/inittransaction?Api-version=1' \
-H 'SITEID: 234525' \
-H 'REQUESTID: fet47t924t9h2ch01f2yi47' \
-H 'SIGNATURE: S4eFruHgo24t204G7tH027KtgmEu73dO7t27' \
-H 'Content-Type: application/json' \
--data-raw '{
    "SiteId": 17,
    "Amount": 100.00,
    "Currency": 51,
    "PaymentSystem": 14,
    "OperationType": 1,
    "MTransId": "Merchant_Transaction_id_123",
    "MockResponseState": "200,null,10,20,30"
}'

var client = new RestClient(" https://pygapi.tst-digi.com/api/Transaction/inittransaction?Api-version=1");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("SITEID", "234525");
request.AddHeader("REQUESTID", "fet47t924t9h2ch01f2yi47");
request.AddHeader("SIGNATURE", "S4eFruHgo24t204G7tH027KtgmEu73dO7t27");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\r\n    \"SiteId\": 17,\r\n    \"Amount\": 100.00,\r\n    \"Currency\": 51,\r\n    \"PaymentSystem\": 14,\r\n    \"OperationType\": 1,\r\n    \"MTransId\": \"Merchant_Transaction_id_123\",\r\n    \"MockResponseState\": \"200,null,10,20,30\"\r\n}",  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
  
Sample Withdrawal Request

curl -L -X POST 'https://pygapi.tst-digi.com/api/transaction/inittransaction?api-version=1' \
-H 'Authorization: Bearer jvaK06ouQ10qa2Ziq0y1OaGNhaeGZ2yYXesp9ThWLDCcuuM0UXtsjdqt9UBI' \
-H 'Content-Type: application/json' \
--data-raw '{
    "SiteId": 17,
    "Amount": 12.00,
    "Currency": 51,
    "PaymentSystem": 146,
    "OperationType": 2,
    "MTransId": "789123456",
    "PsAccountID": "12345679810123456",
    "MockResponseState": "200,12,0,0,ok"
}'

var client = new RestClient("https://pygapi.tst-digi.com/api/transaction/inittransaction?api-version=1");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer jvaK06ouQ10qa2Ziq0y1OaGNhaeGZ2yYXesp9ThWLDCcuuM0UXtsjdqt9UBI");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\r\n    \"SiteId\": 17,\r\n    \"Amount\": 12.00,\r\n    \"Currency\": 51,\r\n    \"PaymentSystem\": 146,\r\n    \"OperationType\": 2,\r\n   \"MTransId\": \"789123456\",\r\n    \"PsAccountID\": \"12345679810123456\",\r\n    \"MockResponseState\": \"200,12,0,0,ok\"\r\n}",  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
  

ErrorCode Available error codes for this method.

HTTP Status Code Message Player/Merchant/
200 500 Request processed successfully. Merchant
400 10 Internal Error Merchant
400 18 Merchant not found. Merchant
400 20 Invalid Account Credentials. Merchant
400 29 Permission access. Please check your account credentials. Merchant
400 31 Transaction already executed. Merchant
400 50 Check in your account profile that the API is enabled and you are posting your requests from the IP address specified. Merchant
400 51 Payment method is not enabled. Merchant
400 53 Missing {0}. Merchant
400 54 Request from unauthorized user. Merchant
400 56 {0} Setting is missing. Merchant
400 60 Empty callback received from payment system. Merchant
400 61 An error occured in payment system side. Merchant
400 90 The merchant is inactive on payment system side. Merchant
400 97 Invalid {0}. Merchant
400 104 Communication request error. Merchant
400 105 Request limit exceeded. Merchant
400 110 Payment service is unavailable. Merchant
400 111 Transaction already cancled. Merchant
400 114 Invalid request opeartion. Merchant
400 118 Unknown. Merchant
400 124 Fraud Detection. Merchant
400 127 Technical Error On System. Merchant
400 129 BadRequest. Merchant
400 131 SecurityError. Merchant
400 132 Unexpected Issue. Merchant
400 135 No Row Updated. Merchant
400 136 Request Stopped. Merchant
400 143 Maintenance Break. Merchant
400 147 Transaction Has Timeout. Merchant
400 152 Transaction Detected As Critical. Merchant
400 155 Inactive Session Id. Merchant
400 156 Error sended to payment system from merchant. Merchant
400 160 Payment system amount dont match with payment gateway amount. Merchant
400 3 Invalid Amount. Player
400 5 Invalid Date. Player
400 7 Transaction declined by payment system. Player
400 16 User is blocked. Player
400 19 Invalid Currecncy Code. Player
400 22 Not supported country code. Player
400 33 The payment amount is greater than the maximum amount. Player
400 34 Invalid email address. Player
400 48 Your account email address needs to be verified. Player
400 57 Customer not found. Player
400 71 Reached maximum number of credit card payment options. Player
400 73 Credit Card number is duplicated. Player
400 76 Invalid mobile number. Player
400 82 Card number is invalid. Player
400 83 Invalid expiration date. Player
400 91 Invalid CVV2 number. Player
400 93 Invalid firstname. Player
400 94 Invalid lasttname. Player
400 96 Invalid City. Player
400 107 Card format is invalid.. Player
400 119 Invalid Bank Code. Player
400 130 Customer Has Pending Deposit. Player
400 138 Verification Error. Player
400 141 Invalid IBAN. Player
400 148 Invalid Or Missing Verification Code. Player
Response
Name Type Description
transactionID
Required
int Identifier of the Payment Getaway transaction
state
Required
enum
TransactionStates
Status of the transaction
creationDate
Required
DateTime Date and Time of the transaction creation
description
Optional
string Text related to the transaction
redirectUrl
Optional
string Checkout URL
transactionDetails
Optional
string Additional information related to the payment
psUserInfo
Optional
PsUserInfo User credentials on the Payment System side
Sample Response

{
  "TransactionID": 4057804,
  "State": 1,
  "CreationDate": "2021-03-31T14:28:33.0597399+04:00",
  "Description": null,
  "RedirectUrl": " https://pygapi.tst-digi.com/api/transaction/transactionflow??api-version=1&transactionid=4056528",
  "TransactionDetails": {
    "WalletId": "176851460197",
    "IsVerifiedWallet": "true",
    "WalletOwnerName": "Upay Receiver",
    "EmailAddress": null,
    "MobileNumber": null
  },
  "psUserInfo": {
    "firstName": "John",
    "lastName": "Doe",
    "phoneNumber": "86353763224",
    "passportId": "1234584736"
  }
}

{
  "Code": 2,
  "Message": "Currency: 'Currency' must not be equal to 'Invalid'.\r\n"
}
  

Method: InitWithoutTransaction

Initializes transaction on the side of the Payment Getaway and Payment Provider by InitWithoutTransactionDTO parameters.
Note: The method is applicable both for deposits and withdrawals.


Endpoint: /api/Transaction/InitWithoutTransaction
Method: POST
Request Content-Type: application/json
Response Content-Type: application/json


Parameters
Resquest

Query Params

Name Type Description
Api-version
Required
int Current version of the API (the value is "1")

Body

Name Type Description
SiteId
Required
int Identifier of the Merchat site
Currency
Required
enum
Currency
ISO currency code
Amount
Required
decimal Amount of the transaction
PaymentSystem
Required
int Identifier of the Payment system
OperationType
Required
enum
TransactionType
Operation type
CallbackURL string Callback URL
Language enum
Language
ISO Language Code
UserID string Identifier of the User
Email string Email address of the User
FirstName string First name of the User
LastName string Last name of the User
DateOfBirth datetime Birthdate of the User. Format: dd/mm/yyy hh:mm:ss
Don't specify the time part of the birthdate. The value can be null.
Address string Address of the User
PhoneNumber string Phone number of the User
PostalCode string Postal code of the User
City string City of the User residence
State string State of the User residence
County string Country of User
IpAddress string IP address of the User
TransactionData object Key value pairs of the properties that are required by the Payment System but are not supported by the payment method

Note: For some Payment Systems the marked (asterisk) parameters can be required. It is recommended to send the asterisked parameters for all payments.

Sample Deposit Request

curl -L -X POST ' https://pygapi.tst-digi.com/api/Transaction/InitWithoutTransaction?Api-version=1' \
-H 'SITEID: 234525' \
-H 'REQUESTID: fet47t924t9h2ch01f2yi47' \
-H 'SIGNATURE: S4eFruHgo24t204G7tH027KtgmEu73dO7t27' \
-H 'Content-Type: application/json' \
--data-raw '{
    "siteId": 53,
    "amount": 100,
    "currency": 978,
    "paymentSystem": 248,
    "operationType": 1,
    "paymentMethod": 0,
    "mTransId": null,
    "language": 1,
    "userID": "321",
    "email": "[email protected]",
    "firstName": "Gor",
    "lastName": "Yezekyan",
    "dateOfBirth": "1997-08-07",
    "address": "yerevan",
    "phoneNumber": "096030394",
    "postalCode": "0051",
    "city": "yerevan",
    "state": "yerevan",
    "country": "armenia",
    "detailDescription": "test",
    "detailText": "test",
    "TransactionData": "{\"cryptocurrency\":\"LTC\",\"address\":\"MEzxWTwMatroT4RtZ4QsTuxiKE2LLGcVyY\",\"destinationTag\":\"24\"}"
}'

var client = new RestClient(" https://pygapi.tst-digi.com/api/Transaction/InitWithoutTransaction?Api-version=1");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("SITEID", "234525");
request.AddHeader("REQUESTID", "fet47t924t9h2ch01f2yi47");
request.AddHeader("SIGNATURE", "S4eFruHgo24t204G7tH027KtgmEu73dO7t27");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\r\n    \"siteId\": 53,\r\n    \"amount\": 100,\r\n    \"currency\": 978,\r\n    \"paymentSystem\": 248,\r\n    \"operationType\": 1,\r\n    \"paymentMethod\": 0,\r\n    \"mTransId\": null,\r\n    \"language\": 1,\r\n    \"userID\": \"321\",\r\n    \"email\": \"[email protected]\",\r\n    \"firstName\": \"Gor\",\r\n    \"lastName\": \"Yezekyan\",\r\n    \"dateOfBirth\": \"1997-08-07\",\r\n    \"address\": \"yerevan\",\r\n    \"phoneNumber\": \"096030394\",\r\n    \"postalCode\": \"0051\",\r\n    \"city\": \"yerevan\",\r\n    \"state\": \"yerevan\",\r\n    \"country\": \"armenia\",\r\n    \"detailDescription\": \"test\",\r\n    \"detailText\": \"test\",\r\n    \"TransactionData\": \"{\\\"cryptocurrency\\\":\\\"LTC\\\",\\\"address\\\":\\\"MEzxWTwMatroT4RtZ4QsTuxiKE2LLGcVyY\\\",\\\"destinationTag\\\":\\\"24\\\"}\"\r\n}",  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
  

ErrorCode

Available error codes for this method.

HTTP Status Code Message Player/Merchant/
200 500 Request processed successfully. Merchant
400 10 Internal Error Merchant
400 18 Merchant not found. Merchant
400 20 Invalid Account Credentials. Merchant
400 29 Permission access. Please check your account credentials. Merchant
400 31 Transaction already executed. Merchant
400 50 Check in your account profile that the API is enabled and you are posting your requests from the IP address specified. Merchant
400 51 Payment method is not enabled. Merchant
400 53 Missing {0}. Merchant
400 54 Request from unauthorized user. Merchant
400 56 {0} Setting is missing. Merchant
400 60 Empty callback received from payment system. Merchant
400 61 An error occured in payment system side. Merchant
400 90 The merchant is inactive on payment system side. Merchant
400 97 Invalid {0}. Merchant
400 104 Communication request error. Merchant
400 105 Request limit exceeded. Merchant
400 110 Payment service is unavailable. Merchant
400 111 Transaction already cancled. Merchant
400 114 Invalid request opeartion. Merchant
400 118 Unknown. Merchant
400 124 Fraud Detection. Merchant
400 127 Technical Error On System. Merchant
400 129 BadRequest. Merchant
400 131 SecurityError. Merchant
400 132 Unexpected Issue. Merchant
400 135 No Row Updated. Merchant
400 136 Request Stopped. Merchant
400 143 Maintenance Break. Merchant
400 147 Transaction Has Timeout. Merchant
400 152 Transaction Detected As Critical. Merchant
400 155 Inactive Session Id. Merchant
400 156 Error sended to payment system from merchant. Merchant
400 160 Payment system amount dont match with payment gateway amount. Merchant
400 3 Invalid Amount. Player
400 5 Invalid Date. Player
400 7 Transaction declined by payment system. Player
400 16 User is blocked. Player
400 19 Invalid Currecncy Code. Player
400 22 Not supported country code. Player
400 33 The payment amount is greater than the maximum amount. Player
400 34 Invalid email address. Player
400 48 Your account email address needs to be verified. Player
400 57 Customer not found. Player
400 71 Reached maximum number of credit card payment options. Player
400 73 Credit Card number is duplicated. Player
400 76 Invalid mobile number. Player
400 82 Card number is invalid. Player
400 83 Invalid expiration date. Player
400 91 Invalid CVV2 number. Player
400 93 Invalid firstname. Player
400 94 Invalid lasttname. Player
400 96 Invalid City. Player
400 107 Card format is invalid.. Player
400 119 Invalid Bank Code. Player
400 130 Customer Has Pending Deposit. Player
400 138 Verification Error. Player
400 141 Invalid IBAN. Player
400 148 Invalid Or Missing Verification Code. Player
Response
Name Type Description
transactionID
Required
int Identifier of the Payment Getaway transaction
state
Required
enum
TransactionStates
Status of the transaction
creationDate
Required
DateTime Date and time of the transaction creation
description
Optional
string Text related to the transaction
redirectUrl
Optional
string Checkout URL
transactionDetails
Optional
string Additional information related to the payment
psUserInfo
Optional
PsUserInfo User credentials on the Payment System side
Sample Response

{
  "TransactionID": 4057804,
  "State": 1,
  "CreationDate": "2021-03-31T14:28:33.0597399+04:00",
  "Description": null,
  "RedirectUrl": " https://pygapi.tst-digi.com/api/transaction/transactionflow??api-version=1&transactionid=4056528",
  "TransactionDetails": {
    "WalletId": "176851460197",
    "IsVerifiedWallet": "true",
    "WalletOwnerName": "Upay Receiver",
    "EmailAddress": null,
    "MobileNumber": null
  },
  "psUserInfo": {
    "firstName": "John",
    "lastName": "Doe",
    "phoneNumber": "86353763224",
    "passportId": "1234584736"
  }
}

{
  "Code": 2,
  "Message": "Currency: 'Currency' must not be equal to 'Invalid'.\r\n"
}
  

Method: ConfirmTransaction

Merchant sends the request to Payment Gateway to confirm the transaction. The method is applicable only for withdrawals.


Endpoint: /api/Transaction/confirmtransaction
Method: POST
Request Content-Type: application/json
Response Content-Type: application/json


Parameters
Request

Query Params

Name Type Description
Api-version
Required
int Current version of the API (the value is "1")

Body

Name Type Description
SiteId
Required
int Identifier of the Merchant site
TransactionId
Required
int Identifier of the Payment Gateway transaction
Sample Request

curl -L -X POST ' https://pygapi.tst-digi.com/api/Transaction/confirmtransaction?Api-version=1' \
-H 'SITEID: 234525' \
-H 'REQUESTID: fet47t924t9h2ch01f2yi47' \
-H 'SIGNATURE: S4eFruHgo24t204G7tH027KtgmEu73dO7t27' \
-H 'Content-Type: application/json' \
--data-raw '{
    "SiteId": 342,
    "TransactionId": 187653
}'

var client = new RestClient(" https://pygapi.tst-digi.com/api/Transaction/confirmtransaction?Api-version=1");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("SITEID", "234525");
request.AddHeader("REQUESTID", "fet47t924t9h2ch01f2yi47");
request.AddHeader("SIGNATURE", "S4eFruHgo24t204G7tH027KtgmEu73dO7t27");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\r\n    \"MerchantId\": 342,\r\n    \"TransactionId\": 187653\r\n}",  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
  
Response
Name Type Description
TransactionId
Required
int Identifier of the Payment Gateway transaction
State
Required
int Status of the transaction (InProcess - if the transaction is sucessfully confirmed)
Sample Response

{
  "TransactionId": 187653,
  "State": 2
}

Method: CencelTransaction

Merchant sends the request to the Payment Gateway to cencel the transaction. The method is applicable only for withdrawals.


Endpoint: /api/Transaction/cenceltransaction
Method: POST
Request Content-Type: application/json
Response Content-Type: application/json


Parameters
Request

Query Params

Name Type Description
Api-version
Required
int Current version of the API (the value is "1")

Body

Name Type Description
SiteId
Required
int Identifier of the Merchant site
TransactionId
Required
int Identifier of the Payment Gateway transaction
Sample Request

curl -L -X POST ' https://pygapi.tst-digi.com/api/Transaction/cenceltransaction?Api-version=1' \
-H 'SITEID: 234525' \
-H 'REQUESTID: fet47t924t9h2ch01f2yi47' \
-H 'SIGNATURE: S4eFruHgo24t204G7tH027KtgmEu73dO7t27' \
-H 'Content-Type: application/json' \
--data-raw '{
    "SiteId": 342,
    "TransactionId": 187653
}'

var client = new RestClient(" https://pygapi.tst-digi.com/api/Transaction/cenceltransaction?Api-version=1");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("SITEID", "234525");
request.AddHeader("REQUESTID", "fet47t924t9h2ch01f2yi47");
request.AddHeader("SIGNATURE", "S4eFruHgo24t204G7tH027KtgmEu73dO7t27");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\r\n    \"MerchantId\": 342,\r\n    \"TransactionId\": 187653\r\n}",  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
  
Response
Name Type Description
TransactionId
Required
int Identifier of the Payment Gateway transaction
State
Required
int Status of the transaction (InProcess - if the transaction is sucessfully confirmed)
Sample Response

{
  "TransactionId": 187653,
  "State": 2
}

Method: NotifyTransactionStateChange

The method notifies Merchant about the change of the transaction state. The method is applicable both for deposits and withdrawals.


URL: Callback URL from InitTransaction*
Method: POST
Request Content-Type: application/json
Response Content-Type: application/json


Note: If the Callback URL was not sent in the InitTransaction Request, the URL is taken from the configurations.

Parameters
Resquest
Name Type Description
FinalizeTransactionRequestModel
Required
FinalizeTransactionRequestModel Transaction details for state change
Sample Request

curl -L -X POST 'https://callbackurl.com' \
-H 'SITEID: 234525' \
-H 'REQUESTID: fet47t924t9h2ch01f2yi47' \
-H 'SIGNATURE: S4eFruHgo24t204G7tH027KtgmEu73dO7t27' \
-H 'Content-Type: application/json' \
--data-raw '{
    "FinalizeTransactionRequestModel": {
        "TransactionId": 187653,
        "MerchantTransactionId": "3468204",
        "Amount": 12.00,
        "Currency": 51,
        "PaymentSystem": 146,
        "OperationType": 2,
        "PsUserInfo": {
            "firstName": "John",
            "lastName": "Doe",
            "phoneNumber": "86353763224",
            "passportId": "1234584736"
        },
        "VoucherInfo": {
            "VoucherNum": "43567763",
            "VoucherCode": "2323yhnbgry32g3v"
        },
        "State": 3,
        "TransactionDetails": {
            "WalletId": "176851460197",
            "IsVerifiedWallet": "true",
            "WalletOwnerName": "Upay Receiver",
            "EmailAddress": null,
            "MobileNumber": null
        }
    }
}'

curl -L -X POST 'https://callbackurl.com' \
-H 'SITEID: 234525' \
-H 'REQUESTID: fet47t924t9h2ch01f2yi47' \
-H 'SIGNATURE: S4eFruHgo24t204G7tH027KtgmEu73dO7t27' \
-H 'Content-Type: application/json' \
--data-raw '{
                "TransactionId":1405190,
                "MerchantTransactionId":"53_Skrilltest6",
                "PSTransactionId":"3575709308",
                "Amount":2.00,
                "Currency":"Eur",
                "PaymentSystem":17,
                "OperationType":1,
                "State":4,
                "TransactionDetails":{
                "ErrorCode":"46",
                "ErrorMessage":"Sending amount exceeds account balance.",
                "PSErrorCode":null,
                "PSErrorMessage":"RECIPIENT_LIMIT_EXCEEDED"
                }'

In case the Notified transaction is failed, via FinalizeTransactionRequestModel the TransactionDetails property which describes the failure reason, is sent.

ErrorCode - Error Code in Payment Gateway. ErrorMessage - Error Message in Payment Gateway. PSErrorCode - Error code in Payment System. PSErrorMessage - Error Message in Payment System.

Response
Name Type Description
Succeed
Required
bool True, if the state is successfully changed; otherwise, false
Sample Response
{
    "Succeed" : true
}

Terminal Payments

Terminal payments are asynchronously processed transactions. The transaction is usually done offline and reconciled manually or automatically to the admin panel. Terminal payments assume that the money is transferred to the User balance at a later date.

Overview

Terminal Payment Flow

Transaction flow

  1. The Payment Gateway requests to check the credentials of the User who wants to transfer money to the gaming account using CheckUserAccount method.
  2. The Platform checks the User data and responds to the Payment Gateway.
  3. The Payment Gateway requests to create a transaction at the Platform using InitTerminalTransaction method.
  4. The Platform informs the Payment Gateway whether the transaction is created or not.

Method: CheckUserAccount

The method checks whether the User with the provided ID exists at the side of the Merchant or not.


Endpoint: Provided by the Merchant
Method: POST
Request Content-Type: application/json, application/xml, application/x-www-form-urlencoded
Response Content-Type: application/json, application/xml


Parameters
Resquest
Name Type Description
siteId
Required
int Identifier of the Merchant site
PaymentSystem
Required
int Identifier of the Payment system
UserId
Required
string Unique identification number of the Player
Sample Request

curl -L -X POST 'SampleUrl.com' \
-H 'SITEID: 234525' \
-H 'REQUESTID: fet47t924t9h2ch01f2yi47' \
-H 'SIGNATURE: S4eFruHgo24t204G7tH027KtgmEu73dO7t27' \
-H 'Content-Type: application/json' \
--data-raw '{
    "PaymentSystem": 111,
    "UserId": "user123",
    "siteId": 17
}'

var client = new RestClient("SampleUrl.com");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("SITEID", "234525");
request.AddHeader("REQUESTID", "fet47t924t9h2ch01f2yi47");
request.AddHeader("SIGNATURE", "S4eFruHgo24t204G7tH027KtgmEu73dO7t27");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\r\n    \"PaymentSystem\": \"111\",\r\n    \"UserId\": \"User1234\",\r\n    \"siteId\": 17\r\n}",  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
  
Response
Name Type Description
Code
Required
int Code identifying request outcome
Message
Required
string Text briefly describing the outcome of the request
Sample Response

{
    "Code" : 0,
    "Message": "User exists and is verified, payment is possible."
}

{
    "Code" : 44,
    "Message": "User with id 123 is not found."
}

{
    "Code" : 69,
    "Message": "Invalid or missing User Id"
}
  

Method:IniTerminalTransaction

The method initializes transaction on the side of the Merchant.


URL: Provided by the Merchant
Method: POST
Request Content-Type: application/json, application/xml, application/x-www-form-urlencoded
Response Content-Type: application/json, application/xml


Parameters
Resquest
Name Type Description
transactionId
Required
int Identifier of the transaction
siteId
Required
int Identifier Merchat site
AccountId
Required
string Account identifier of the User on the Payment System side
Amount
Required
decimal Amount of the transaction
Currency
Required
enum
Currency
ISO currency code of the transaction
PaymentSystem
Required
int Identifier of the Payment system
Sample Request

curl -L -X POST 'SampleUrl.com' \
-H 'SITEID: 234525' \
-H 'REQUESTID: fet47t924t9h2ch01f2yi47' \
-H 'SIGNATURE: S4eFruHgo24t204G7tH027KtgmEu73dO7t27' \
-H 'Content-Type: application/json' \
--data-raw '{
    "transactionId": 123456789,
    "siteId": 103,
    "AccountId": "User1234",
    "Amount": 100.0,
    "Currency": 51,
    "PaymentSystem": 123
}'

var client = new RestClient("SampleUrl.com");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("SITEID", "234525");
request.AddHeader("REQUESTID", "fet47t924t9h2ch01f2yi47");
request.AddHeader("SIGNATURE", "S4eFruHgo24t204G7tH027KtgmEu73dO7t27");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\r\n    \"transactionId\": 123456789,\r\n \"siteId\": 103,\r\n     \"AccountId\": \"User1234\",\r\n    \"Amount\": 100.0,\r\n    \"Currency\": 51,\r\n    \"PaymentSystem\": 123\r\n}",  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
  
Response
Name Type Description
merchantTransactionId
Optional
string Identifier of the transaction provided by the Merchant. The parameter is returned only if the request is successfully processed
Description
Optional
string Text breifly describing transaction state
Code
Required
enum
ErrorCode
Code identifying transaction outcome
Sample Response

{
    "merchantTransactionId":"1231231",
    "Description":"Descr",
    "Code": 0
}

{
    "Code": 3,
    "Message": "Invalid amount is sent"
}

Transaction Details

Provides details and status information for onlie and offline transactions.

GET /api/transaction/gettransactionstatus Retrieves the transaction status with the given transaction ID
GET /api/transaction/gettransactionstatusbymerchant Retrieves the transaction status with a given merchant transaction ID
GET /api/transaction/gettransactiondetails Retrieves the transaction details with the given transaction ID
GET /api/transaction/gettransactiondetailsbymerchant Retrieves the transaction details with a given merchant transaction ID

Method: TransactionStatus

The method retrieves transaction status with the given transaction ID. Transaction ID provided by the Payment Gateway is sent to receive the information about the transaction state.


URL: /api/transaction/gettransactionstatus
Method: GET
Request Content-Type: application/x-www-form-urlencoded
Response Content-Type: application/json


Parameters
Resquest

Query Params

Name Type Description
Api-version
Required
int Current version of the API (the value is "1")
TransactionId
Required
int Identifier of the transaction provided by the Payment Gateway
Sample Request

curl -L -X GET ' https://pygapi.tst-digi.com/api/transaction/gettransactionstatus?Api-version=1&TransactionId=405765' \
-H 'SITEID: 234525' \
-H 'REQUESTID: fet47t924t9h2ch01f2yi47' \
-H 'SIGNATURE: S4eFruHgo24t204G7tH027KtgmEu73dO7t27' \

var client = new RestClient(" https://pygapi.tst-digi.com/api/transaction/gettransactionstatus?Api-version=1&TransactionId=405765");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("SITEID", "234525");
request.AddHeader("REQUESTID", "fet47t924t9h2ch01f2yi47");
request.AddHeader("SIGNATURE", "S4eFruHgo24t204G7tH027KtgmEu73dO7t27");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
  
Response
Name Type Description
Id
Required
int Identifier of the transaction provided by the Payment Gateway
State
Required
enum
TransactionStates
Status of the transaction
Amount
Required
decimal Amount of the transaction
Currency
Required
enum
Currency
ISO currency code
Sample Response

{
    "Id": 4057465,
    "State": 4,
    "Amount": 1.00,
    "Currency": "Usd"
}

{
    "Code": 6,
    "Message": "Transaction with Id=11111111 is missing"
}
  

Method: GetTransactionStatusbyMerchant

The method retrieves the transaction status with a given Merchant transaction ID.


Endpoint: /api/transaction/gettransactionstatusbymerchant
Method: GET
Request Content-Type: application/x-www-form-urlencoded
Response Content-Type: application/json


Parameters
Resquest

Query Params

Name Type Description
Api-version
Required
int Current version of the API (the value is "1")
MerchantTransactionId
Required
string Identifier of the transaction provided by the Merchant
Sample Request

curl -L -X GET ' https://pygapi.tst-digi.com/api/transaction/gettransactionstatusbymerchant?Api-version=1&MerchantTransactionId=444_1' \
-H 'SITEID: 234525' \
-H 'REQUESTID: fet47t924t9h2ch01f2yi47' \
-H 'SIGNATURE: S4eFruHgo24t204G7tH027KtgmEu73dO7t27' \

var client = new RestClient(" https://pygapi.tst-digi.com/api/transaction/gettransactionstatusbymerchant?Api-version=1&MerchantTransactionId=444_1");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("SITEID", "234525");
request.AddHeader("REQUESTID", "fet47t924t9h2ch01f2yi47");
request.AddHeader("SIGNATURE", "S4eFruHgo24t204G7tH027KtgmEu73dO7t27");
request.AddHeader("Content-Type", "application/json");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
  
Response
Name Type Description
Id
Required
int Identifier of the transaction provided by the Payment Gateway
State
Required
enum
TransactionStates
Status of the transaction
Amount
Required
decimal Amount of the transaction
Currency
Required
enum
Currency
ISO currency code
Sample Response

{
    "Id": 4057467,
    "State": 4,
    "Amount": 1.00,
    "Currency": "Usd"
}

{
    "Code": 10,
    "Message": "Transaction with merchant transaction Id=9999999 is missing"
}
  

Method: GetTransactionDetails

The method retrieves the transaction details with the given transaction ID. The transaction identifier provided by the Payment Gateway is sent in the request.


Endpoint: /api/transaction/gettransactiondetails
Method: GET
Request Content-Type: application/x-www-form-urlencoded
Response Content-Type: application/json


Parameters
Resquest

Query Params

Name Type Description
Api-version
Required
int Current version of the API (the value is "1")
TransactionId
Required
int Identifier of the transaction provided by the Payment Gateway
Sample Request

curl -L -X GET ' https://pygapi.tst-digi.com/api/transaction/gettransactiondetails?Api-version=1&TransactionId=4057467%20' \
-H 'SITEID: 234525' \
-H 'REQUESTID: fet47t924t9h2ch01f2yi47' \
-H 'SIGNATURE: S4eFruHgo24t204G7tH027KtgmEu73dO7t27' \

var client = new RestClient(" https://pygapi.tst-digi.com/api/transaction/gettransactiondetails?Api-version=1&TransactionId=4057467%20");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("SITEID", "234525");
request.AddHeader("REQUESTID", "fet47t924t9h2ch01f2yi47");
request.AddHeader("SIGNATURE", "S4eFruHgo24t204G7tH027KtgmEu73dO7t27");
request.AddHeader("Content-Type", "application/json");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
  
Response
Name Type Description
Id
Required
int Identifier of the transaction provided by the Payment Gateway
MerchantTransactionId
Required
string Identifier of the transaction provided by the Merchant
PaymentSystem
Required
int Identifier of the Payment system
CreationDate
Required
datetime Date and Time of the transaction creation
LastUpdateDate
Required
datetime Date and time of the transaction last update
OperationType
Required
enum
TransactionType
Operation type
State
Required
enum
TransactionStates
Status of the transaction
Amount
Required
decimal Amount of the transaction
Currency
Required
enum
Currency
Currency code
MerchantFeeAmount
Required
decimal Transaction fees charged from the Merchant
UserFeeAmount
Required
decimal Transaction fees charged from the User
MerchantFeePercent
Required
double Transaction fees charged from a Merchant expressed as a percentage
UserFeePercent
Required
double Transaction fees charged from the User expressed as a percentage
MerchantUserID
Required
int Identifier of the User provided by the Merchant
Sample Response

{
    "Id": 4057467,
    "MerchantTransactionID": "444_1",
    "PaymentSystem": 19,
    "CreationDate": "2020-12-08T17:24:18.25736",
    "LastUpdateDate": "2020-12-08T17:24:37.479132",
    "OperationType": 2,
    "State": 4,
    "Amount": 1.00,
    "Currency": 860,
    "MerchantFeeAmount": 0.05,
    "UserFeeAmount": 0.05,
    "MerchantFeePercent": 5.00,
    "UserFeePercent": 2.00,
    "MerchantUserID": 2057
}

Method: GetTransactionDetailsbyMerchant

The method retrieves the transaction details. The identifier of the transaction provided by the Merchant is sent in the request.


Endpoint: /api/transaction/gettransactiondetailsbymerchant
Method: GET
Request Content-Type: application/x-www-form-urlencoded
Response Content-Type: application/json


Parameters
Resquest

Query Params

Name Type Description
Api-version
Required
int Current version of the API (the value is "1")
MerchantTransactionId
Required
string Identifier of the transaction provided by the Merchant
Sample Request

curl -L -X GET ' https://pygapi.tst-digi.com/api/transaction/gettransactiondetailsbymerchant?Api-version=1&MerchantTransactionId=444_1' \
-H 'SITEID: 234525' \
-H 'REQUESTID: fet47t924t9h2ch01f2yi47' \
-H 'SIGNATURE: S4eFruHgo24t204G7tH027KtgmEu73dO7t27' \

var client = new RestClient(" https://pygapi.tst-digi.com/api/transaction/gettransactiondetailsbymerchant?Api-version=1&MerchantTransactionId=444_1");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("SITEID", "234525");
request.AddHeader("REQUESTID", "fet47t924t9h2ch01f2yi47");
request.AddHeader("SIGNATURE", "S4eFruHgo24t204G7tH027KtgmEu73dO7t27");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
  
Response
Name Type Description
Id
Required
int Identifier of the transaction provided by the Payment Gateway
MerchantTransactionId
Required
string Identifier of the transaction provided by the Merchant
PaymentSystem
Required
int Identifier of the Payment system
CreationDate
Required
datetime Date and time of the transaction creation
LastUpdateDate
Required
datetime Date and time of the transaction last update
OperationType
Required
enum
TransactionType
Operation type
State
Required
enum
TransactionStates
Status of the transaction
Amount
Required
decimal Amount of the transaction
Currency
Required
enum
Currency
Currency code
MerchantFeeAmount
Required
decimal Transaction fees charged from a Merchant
UserFeeAmount
Required
decimal Transaction fees charged from the User
MerchantFeePercent
Required
int Transaction fees charged from a Merchant expressed as a percentage
UserFeePercent
Required
int Transaction fees charged from the User expressed as a percentage
MerchantUserID
Required
int Identifier of the User provided by the Merchant
Sample Response

{
    "Id": 4057467,
    "MerchantTransactionID": "444_1",
    "PaymentSystem": 19,
    "CreationDate": "2020-12-08T17:24:18.25736",
    "LastUpdateDate": "2020-12-08T17:24:37.479132",
    "OperationType": 2,
    "State": 4,
    "Amount": 1.00,
    "Currency": 860,
    "MerchantFeeAmount": 0.05,
    "UserFeeAmount": 0.05,
    "MerchantFeePercent": 5,
    "UserFeePercent": 2,
    "MerchantUserID": 2057
}

Objects

Public Class: PsUserInfo

Information about the User on the Payment System side.

Name Type Description
firstName
Required
string First name of the User
lastName
Required
string Last name of the User
phoneNumber
Required
string Phone number of the User
passportId
Required
string Passport identifier of the User
{
  "psUserInfo": {
    "firstName": "John",
    "lastName": "Doe",
    "phoneNumber": "86353763224",
    "passportId": "1234584736"
  }
}

Public Class: FinalizeTransactionRequestModel

Name Type Description
TransactionID
Required
int Identifier of the Payment Gateway transaction
MerchantTransactionId
Required
string Identifier of the transaction provided by the Merchant
PSTransactionId
Optional
string Identifier of the transaction in the Payment System side
Amount
Required
decimal Amount of the transaction
Currency
Required
Currency Currency of the transaction
PaymentSystem
Required
int Identifier of the Payment system
OperationType
Required
enum
TransactionType
Operation type
PsUserInfo
Optional
PsUserInfo User credentials on the Payment System side
VoucherInfo
Optional
VoucherInfo Credentias of the voucher. The object is returned only for voucher payments methods
State
Required
enum
TransactionStates
Status of the transaction
TransactionDetails
Optional
int Additional information related to the payment
{
    "FinalizeTransactionRequestModel": {
        "TransactionId": 187653,
        "MerchantTransactionId": "3468204",
        "Amount": 12.00,
        "Currency": 51,
        "PaymentSystem": 146,
        "OperationType": 2,
        "PsUserInfo": {
            "firstName": "John",
            "lastName": "Doe",
            "phoneNumber": "86353763224",
            "passportId": "1234584736"
        },
        "VoucherInfo": {
            "VoucherNum": "43567763",
            "VoucherCode": "2323yhnbgry32g3v"
        },
        "State": 3
    }
}

Public Class: VoucherInfo

Information about the User on the Payment System side.

Name Type Description
VoucherNum
Required
string First name of the User
VoucherCode
Required
string Last name of the User
{
  "VoucherInfo": {
    "VoucherNum": "246362722425",
    "VoucherCode": "D2hsf46ho47hg49hd27bu472hbmvnoe"
  }
}

Enum

Currency

Currently, the following currencies are supported:

Enum ID ISO Code Description
0 INVALID Invalid or unknown currency
36 AUD Australian Dollar
51 AMD Armenian Dram
124 CAD Canadian Dollar
156 CNY Chinese Yuan
208 DKK Danish Krone
344 HKD Hong Kong Dollar
356 INR Indian Rupee
364 IRT Iranian Tuman
365 IRR Iranian Rial
368 IQD Iraqi Dinar
376 ILS Israeli New Shekel
392 JPY Japanese Yen
398 KZT Kazakhstani Tenge
404 KES Kenyan Shilling
410 KRW South Korean Won
458 MYR Malaysian Ringgit
504 MAD Moroccan dirham
566 NGN Nigerian Naira
578 NOK Norwegian Krone
586 PKR Pakistani Rupee
643 RUB Russian Ruble
702 SGD Singapore Dolla
710 ZAR South African Rand
752 SEK Swedish Krona
756 CHF Swiss Franc
764 THB Thai Baht
788 TND Tunisian Dinar
800 UGX Uganda Shilling
826 GBP Pound Sterling
840 USD United Stated Dollar
860 UZS Uzbekstan Sum
934 TMT Turkmenistan Manat
944 AZN Azerbaijanian Manat
949 TRY Turkish Lira
974 BYR Belarusian Ruble
978 EUR Euro (European Union currency)
977 BAM Bosnyan Mark
980 UAH Ukrainian Hryvnia
986 BRL Brazilian Real

TransactionTypes

ID Name
0 Both
1 Deposit
2 Withdrawal

Language

The supported langauges are listed below.

Enum ID Code Description
0 invalid Invalid or unknown language
1029 cs Czech
1031 de German
1033 en English
1034 es Spanish
1035 fi Finnish
1036 fr French
1040 it Italian
1041 ja Japanese
1042 ko Korean
1045 pl Polish
1049 ru Russian
1053 sv Swedish
1055 tr Turkish
1057 id Indonesian
1058 uk Ukrainian
1059 be Belarusian
1061 et Estonian
1065 fa Parsi
1067 hy Armenian
1068 az Azerbaijani
1079 ka Georgian
1087 kk Kazakh
2052 zh Chinese
3098 sr Serbian
14337 ar Arabic

TransactionStates

The following table represents the available states of the transaction.

Code State
1 Initialized
2 InProcess
3 Success
4 Failed

ErrorCode

Available error codes.

HTTP Status Code Message Player/Merchant/
200 500 Request processed successfully. Merchant
400 6 Transaction not found in payment system side. Merchant
400 10 Internal Error Merchant
400 15 User is blocked. Merchant
400 17 A parameter in the request sent has invalid values. Merchant
400 18 Merchant not found. Merchant
400 20 Invalid Account Credentials. Merchant
400 29 Permission access. Please check your account credentials. Merchant
400 31 Transaction already executed. Merchant
400 50 Check in your account profile that the API is enabled and you are posting your requests from the IP address specified. Merchant
400 51 Payment method is not enabled. Merchant
400 53 Missing {0}. Merchant
400 54 Request from unauthorized user. Merchant
400 55 Transaction refunded. Merchant
400 56 {0} Setting is missing. Merchant
400 58 Invalid transaction type. Merchant
400 60 Empty callback received from payment system. Merchant
400 61 An error occured in payment system side. Merchant
400 64 Acccount locked for withdrawals. Merchant
400 66 Transaction declined by customer. Merchant
400 68 Transaction cancelled due to time out. Merchant
400 84 Invalid checksum. Merchant
400 90 The merchant is inactive on payment system side. Merchant
400 97 Invalid {0}. Merchant
400 98 The merchant could not be found. Merchant
400 104 Communication request error. Merchant
400 105 Request limit exceeded. Merchant
400 110 Payment service is unavailable. Merchant
400 111 Transaction already cancled. Merchant
400 112 Transaction already rejected. Merchant
400 113 Transaction already rejected. Merchant
400 114 Invalid request opeartion. Merchant
400 115 Invalid response received from payment system. Merchant
400 117 The payment method is invalid. Merchant
400 118 Unknown. Merchant
400 121 In Blacklist IBAN. Merchant
400 122 Withdraw Is Not Available. Merchant
400 124 Fraud Detection. Merchant
400 125 Data Incompatibility. Merchant
400 126 Transaction Canceled By The Merchant. Merchant
400 127 Technical Error On System. Merchant
400 128 Blocked By Popup Blocker. Merchant
400 129 BadRequest. Merchant
400 131 SecurityError. Merchant
400 132 Unexpected Issue. Merchant
400 134 Unauthorized Firm. Merchant
400 135 No Row Updated. Merchant
400 136 Request Stopped. Merchant
400 143 Maintenance Break. Merchant
400 145 Account does not have enough balance to perform transaction. Merchant
400 147 Transaction Has Timeout. Merchant
400 149 Keep Waiting The Transaction. Merchant
400 152 Transaction Detected As Critical. Merchant
400 153 Ip address rejected. Merchant
400 155 Inactive Session Id. Merchant
400 156 Error sended to payment system from merchant. Merchant
400 160 Payment system amount dont match with payment gateway amount. Merchant
400 3 Invalid Amount. Player
400 5 Invalid Date. Player
400 7 Transaction declined by payment system. Player
400 16 User is blocked. Player
400 19 Invalid Currecncy Code. Player
400 22 Not supported country code. Player
400 33 The payment amount is greater than the maximum amount. Player
400 34 Invalid email address. Player
400 48 Your account email address needs to be verified. Player
400 57 Customer not found. Player
400 71 Reached maximum number of credit card payment options. Player
400 73 Credit Card number is duplicated. Player
400 76 Invalid mobile number. Player
400 82 Card number is invalid. Player
400 83 Invalid expiration date. Player
400 91 Invalid CVV2 number. Player
400 93 Invalid firstname. Player
400 94 Invalid lasttname. Player
400 96 Invalid City. Player
400 107 Card format is invalid.. Player
400 119 Invalid Bank Code. player
400 130 Customer Has Pending Deposit. Player
400 138 Verification Error. Player
400 141 Invalid IBAN. Player
400 148 Invalid Or Missing Verification Code. Player
Back to top Copyright 2022 Payment Gateway