For developers

Main page /

For developers

General technical details

All the requests regarding AbyssPay API should be sent to:

https://abysspay.online/api

All the requests should contain the Auth header with an authorization key that will be sent to Merchant, e.g.:

POST /deposit/create HTTP/1.1
Host: abysspay.online
Accept: application/json
Content-Type: application/json
Auth: fcd8766d4fa5b4a5c7198b87a5d0921d
    

AbyssPay API deals with JSON requests.

All the requests, excluding GET, should be signed by a secret key that will be also sent to Merchant. For signing you need to deliver the md5 hash from a request body with a secret a key concatenating. Then the delivered hash is used in the Sign header and sent together with the request.

The example of the hash calculation in PHP:

$secret_key = '1dfcd12ba13fff487a84cf50d8099297';
$request = '{"test":"test"}';
$sign = md5($request . $secret_key);
//49e8dde596382693c52ccc3d722e5229
    

POST request will be written as:

POST /deposit/create HTTP/1.1
Host: abysspay.online
Accept: application/json
Content-Type: application/json
Auth: fcd8766d4fa5b4a5c7198b87a5d0921d
Sign: 49e8dde596382693c52ccc3d722e5229
…
{"test":"test"}
    

Whereas AbyssPay sends the requests to the Merchant system using the same rules and keys.

Your integration keys should be received via the link. First time you will get this link via email. The keys will be of use within 1 hour via the link. Otherwise, you should require the keys from the manager who will send you another link. All other ways of getting the keys are considered insecure.

Payment process

Please see below the scheme of the payment through Payment System by means of AbyssPay API:

Client
Merchant
AbyssPay
Payment system
Order creating and data entering
Creating and sending a deposit/create request
Request sending to the Payment system
Sending redirect parameters
Response to the request with AbyssPay transaction data and redirect parameters
User redirecting to payment page, data entering for payment
User redirecting to Merchant site
User notification
Awaiting AbyssPay notification
Sending a payment status notification
Sending a payment status Notification with transaction data
User notification, account crediting
Client
Merchant
AbyssPay
Payment system

A maximally general case is analyzed in this scheme. In different systems the schemes can differentiate. The information is thoroughly described in the section below.

All the cases will be reviewed after the Section of Requests and Responses.

Request for payment transaction creating /deposit/create

The request is sent by POST to the address:

https://abysspay.online/api/deposit/create

The request format is as follows:

Field Type Mandatory Description Example
amount float(10,2) Yes Transaction amount 10.00
currency string(3) Yes Transaction currency USD
payment_system string Yes Payment system name CardGate
transaction_id string No Transaction number in the Merchant system 123
note string No Transaction description for the Merchant Account deposit 321
system_fields object No Container for additional fields of payment system. You can specify it with your manager
url object No Container for URL addresses transmitting
url > callback_url url No URL for transmitting notification of a payment to the Merchant system http://site.com/callback
url > fail_url url No URL for user redirecting to the Merchant page in case of failure http://site.com/fail
url > pending_url url No URL for user redirecting to the Merchant page in case of transaction nonfinal status http://site.com/pending
url > success_url url No URL for user redirecting to the Merchant page in case of success http://site.com/success

The example of the request:

{
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "USD",
    "payment_system": "CardGate",
    "url": {
        "callback_url": "https://site.com/callback",
        "fail_url": "https://site.com/fail",
        "pending_url": "https://site.com/pending",
        "success_url": "https://site.com/success"
    }
}
    

Response of AbyssPay:

Field Type Mandatory Description Example
status string Yes Transaction status 'created' in the case of success, 'error' if an error arose created
id integer Yes (success) Transaction number in AbyssPay system 300
transaction_id string No (success) Transaction number in the Merchant system, if it was transmitted in the request 123
type string Yes (success) Transaction type: 'deposit' – top-up deposit
amount_to_pay string Yes (success) The amount, required to be paid to the Client 10.00
amount_merchant string Yes (success) The amount that will be credited to the Merchant account (less payment system fee) 9.30 (with a fee, e.g. 7%)
amount_client string Yes (success) *deprecated* 10.00
currency string(3) Yes (success) Transaction currency USD
payment_system string(3) Yes (success) Payment system name CardGate
redirect object Yes (success) Container with parameters of redirect
redirect > url url Yes (success) URL for the request sending https://abysspay.online/
redirect > method string Yes (success) The request method GET
redirect > params object Yes (success) Container with the request parameters. All the parameters in the container need to be sent together with the request. [] will be presented in case of empty params.
code string Yes (fail) Error code, list of codes and their description are in the table below 500
message string Yes (fail) Text description of an error Internal server error
description string No (fail) Additional error description, if it is not on AbyssPay side Do not honor
system_fields object No Container for additional fields of payment system that you've sent

The example of successful AbyssPay response:

{
    "status": "created",
    "id": "300",
    "transaction_id": "123",
    "type": "deposit",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.30",
    "amount_client": "10.00",
    "currency": "USD",
    "payment_system": "CardGate",
    "redirect": {
        "url": "https://abysspay.online/payment/checkout",
        "method": "GET",
        "params": {
            "data": "12345678"
        }
    }
}
    

The example of unsuccessful AbyssPay response:

{
    "status": "error",
    "code": "201",
    "message": "Mandatory field `amount` is not present"
}
    

Authorization - capture/void process

Contact your manager to specify if this method is available.

Please see below the scheme of the Authorization - Capture/Void through Payment System by means of AbyssPay API:

Client
Merchant
AbyssPay
Payment system
Authorization creating and data entering
Creating and sending a deposit/create/authorization request
Request sending to the Payment system
Sending redirect parameters
Response to the request with AbyssPay transaction data and redirect parameters
User redirecting to 3DS/3DS2 page, authenticating
User redirecting to Merchant site
User notification
Awaiting AbyssPay notification
Sending an authorization status notification
Sending an authorization status Notification with transaction data
User notification
Creating and sending a Capture/Void request
Request sending to the Payment system
Getting completion result
Getting completion result
User notification
Client
Merchant
AbyssPay
Payment system

A maximally general case is analyzed in this scheme. In different systems the schemes can differentiate. The information is thoroughly described in the section below.

Request for authorization transaction creating

The request is sent by POST to the address:

https://abysspay.online/api/deposit/create/authorization

The request format is as follows:

Field Type Mandatory Description Example
amount float(10,2) Yes Transaction amount 10.00
currency string(3) Yes Transaction currency USD
payment_system string Yes Payment system name CardGate
transaction_id string No Transaction number in the Merchant system 123
note string No Transaction description for the Merchant Account deposit 321
system_fields object No Container for additional fields of payment system. You can specify it with your manager
url object No Container for URL addresses transmitting
url > callback_url url No URL for transmitting notification of a payment to the Merchant system http://site.com/callback
url > fail_url url No URL for user redirecting to the Merchant page in case of failure http://site.com/fail
url > pending_url url No URL for user redirecting to the Merchant page in case of transaction nonfinal status http://site.com/pending
url > success_url url No URL for user redirecting to the Merchant page in case of success http://site.com/success

The example of the request:

{
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "USD",
    "payment_system": "CardGate",
    "url": {
        "callback_url": "https://site.com/callback",
        "fail_url": "https://site.com/fail",
        "pending_url": "https://site.com/pending",
        "success_url": "https://site.com/success"
    }
}
    

Response of AbyssPay:

Field Type Mandatory Description Example
status string Yes Transaction status 'created' in the case of non final status or redirect required, 'ok' in case of immediate successful status, 'error' if an error arose. created
id integer Yes (success) Transaction number in AbyssPay system 300
transaction_id string No (success) Transaction number in the Merchant system, if it was transmitted in the request 123
type string Yes (success) Transaction type: 'authorization' authorization
amount_to_pay string Yes (success) The amount, required to be paid to the Client 10.00
amount_merchant string Yes (success) The amount that will be credited to the Merchant account (less payment system fee) 9.30 (with a fee, e.g. 7%)
amount_client string Yes (success) *deprecated* 10.00
currency string(3) Yes (success) Transaction currency USD
payment_system string(3) Yes (success) Payment system name CardGate
redirect object No Container with parameters of redirect
redirect > url url No URL for the request sending https://abysspay.online/
redirect > method string No The request method GET
redirect > params object No Container with the request parameters. All the parameters in the container need to be sent together with the request. [] will be presented in case of empty params.
code string Yes (fail) Error code, list of codes and their description are in the table below 500
message string Yes (fail) Text description of an error Internal server error
description string No (fail) Additional error description, if it is not on AbyssPay side Do not honor
system_fields object No Container for additional fields of payment system that you've sent

The example of successful AbyssPay non final response with redirect:

{
    "status": "created",
    "id": "300",
    "transaction_id": "123",
    "type": "authorization",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.30",
    "amount_client": "10.00",
    "currency": "USD",
    "payment_system": "CardGate",
    "redirect": {
        "url": "https://abysspay.online/authorization/checkout",
        "method": "GET",
        "params": {
            "data": "12345678"
        }
    }
}
    

The example of successful AbyssPay non final response without redirect:

{
    "status": "created",
    "id": "300",
    "transaction_id": "123",
    "type": "authorization",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.30",
    "amount_client": "10.00",
    "currency": "USD",
    "payment_system": "CardGate"
}
    

The example of successful AbyssPay response with immediate authorization:

{
    "status": "ok",
    "id": "300",
    "transaction_id": "123",
    "type": "authorization",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.30",
    "amount_client": "10.00",
    "currency": "USD",
    "payment_system": "CardGate"
}
    

The example of unsuccessful AbyssPay response:

{
    "status": "error",
    "code": "201",
    "message": "Mandatory field `amount` is not present"
}
    

Request for capturing an authorized transaction

The request is sent by POST to the address:

https://abysspay.online/api/deposit/capture/authorization

The request format is as follows:

Field Type Mandatory Description Example
original_transaction_id integer Yes Authorization transaction number in AbyssPay system 300
amount float(10,2) No Capture amount. If not present, the full amount will be captured. 10.00
currency string(3) No Capture currency. Must be present if amount is present. USD
transaction_id string No Transaction number in the Merchant system 123
note string No Transaction description for the Merchant Account deposit 321
url object No Container for URL addresses transmitting
url > callback_url url No URL for transmitting notification of a payment to the Merchant system http://site.com/callback

The example of the request:

{
    "original_transaction_id": "300",
    "amount": "10.00",
    "currency": "USD",
    "transaction_id": "123",
    "url": {
        "callback_url": "https://site.com/callback"
    }
}
    

Response of AbyssPay:

Field Type Mandatory Description Example
status string Yes Transaction status 'created' in the case of non final status, 'ok' in case of successful status, 'error' if an error arose. created
id integer Yes (success) Transaction number in AbyssPay system 300
transaction_id string No (success) Transaction number in the Merchant system, if it was transmitted in the request 123
type string Yes (success) Transaction type: 'capture' capture
amount_to_pay string Yes (success) The amount, required to be paid to the Client 10.00
amount_merchant string Yes (success) The amount that will be credited to the Merchant account (less payment system fee) 9.30 (with a fee, e.g. 7%)
amount_client string Yes (success) *deprecated* 10.00
currency string(3) Yes (success) Transaction currency USD
payment_system string(3) Yes (success) Payment system name CardGate
description string No (fail) Additional error description, if it is not on AbyssPay side. Do not honor

The example of successful AbyssPay non final response:

{
    "status": "created",
    "id": "301",
    "transaction_id": "123",
    "type": "capture",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.30",
    "amount_client": "10.00",
    "currency": "USD",
    "payment_system": "CardGate",
}
    

The example of successful AbyssPay response:

{
    "status": "ok",
    "id": "301",
    "transaction_id": "123",
    "type": "capture",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.30",
    "amount_client": "10.00",
    "currency": "USD",
    "payment_system": "CardGate"
}
    

The example of unsuccessful AbyssPay response:

{
    "status": "error",
    "id": "301",
    "transaction_id": "123",
    "type": "capture",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.30",
    "amount_client": "10.00",
    "currency": "USD",
    "payment_system": "CardGate",
    "description": "Capture failed"
}
    

Payout process

Please see below the scheme of the payout through Payment System by means of AbyssPay API:

Client
Merchant
AbyssPay
Payment system
Order creating and data entering
Creating and sending a deduce/create request
Request sending to the Payment system
Sending result response
Response to the request with AbyssPay transaction data and status
User notification
Awaiting status change
Status request sending to the Payment system
Receiving response
Awaiting AbyssPay notification
Sending a payment status Notification with transaction data
User notification
Client
Merchant
AbyssPay
Payment system

A maximally general case is analyzed in this scheme. In different systems the schemes can differentiate. The information is thoroughly described in the section below.

The payout process is asynchronous. The Merchant creates a transaction with /deduce/create method. If transaction is created successfully then the Merchant should await for notification or send status requests.

Request for payout transaction creating /deduce/create

The request is sent by POST to the address:

https://abysspay.online/api/deduce/create

The request format is as follows:

Field Type Mandatory Description Example
amount float(10,2) Yes Transaction amount 10.00
currency string(3) Yes Transaction currency USD
payment_system string Yes Payment system name Card
transaction_id string Yes Transaction number in the Merchant system 123
note string No Transaction description for the Merchant Account deposit 321
system_fields object Yes Container for additional fields of payment system. You can specify it with your manager
url object No Container for URL addresses transmitting
url > callback_url url No URL for transmitting notification of a payout to the Merchant system http://site.com/callback
url > reversal_url url No URL for transmitting notification of a successful payout that had been reversed http://site.com/callback

The transaction_id parameter must be unique. In case of repeated ID AbyssPay system will answer with 306 error code. This does not mean that transaction in not successful! We suggest to check transaction status after receiving this kind of response.

In some cases payment system can cancel payout transaction after it became successful. For this case reversal_url is used. AbyssPay send common notification request to reversal_url with transaction status 'error' and 'Declined: reversal' message.

The example of the request:

{
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "USD",
    "payment_system": "Card",
    "system_fields": {
        "card_number": "4111111111111111",
        "client_phone": "+79008007000",
        "payment_description": "Account deposit 321"
    },
    "url": {
        "callback_url": "https://site.com/callback",
        "reversal_url": "https://site.com/reversal"
    }
}
    

Response of AbyssPay:

Field Type Mandatory Description Example
status string Yes Transaction status 'created' in the case of non final status, 'error' if an error arose, 'ok' in the case of success status. created
id integer Yes (success) Transaction number in AbyssPay system 300
transaction_id string No (success) Transaction number in the Merchant system, if it was transmitted in the request 123
type string Yes (success) Transaction type: 'deduce' – payout deduce
amount_to_pay string Yes (success) The amount, required to be paid to the Client 10.00
amount_merchant string Yes (success) The amount withdrawn from the Merchant account 10.70 (with a fee, e.g. 7%)
amount_client string Yes (success) *deprecated* 10.00
currency string(3) Yes (success) Transaction currency USD
payment_system string(3) Yes (success) Payment system name CardGate
created integer Yes (success) Timestamp of the creation date and time 1510000000
system_fields object No Container for additional fields of payment system that you've sent.

The example of successful non final AbyssPay response:

{
    "status": "created",
    "id": "300",
    "transaction_id": "123",
    "type": "deposit",
    "amount_to_pay": "10.00",
    "amount_merchant": "10.70",
    "amount_client": "10.00",
    "currency": "USD",
    "payment_system": "Card",
    "created": 1510000000
}
    

The example of successful AbyssPay response:

{
    "status": "ok",
    "id": "300",
    "transaction_id": "123",
    "type": "deposit",
    "amount_to_pay": "10.00",
    "amount_merchant": "10.70",
    "amount_client": "10.00",
    "currency": "USD",
    "payment_system": "Card",
    "created": 1510000000
}
    

The example of unsuccessful AbyssPay response:

{
    "status": "error",
    "code": "305",
    "message": "Insufficient balance"
}
    

Request for recurring transaction creating /deposit/create/recurring

The request is sent by POST to the address:

https://abysspay.online/api/deposit/create/recurring

The request format and payment flow are the same as for payment transaction creation /deposit/create

After successful completion of the payment you will get an additional parameter "recurring_id" (see notification and status section) which you can use to initiate recurring transaction.

Request for recurring transaction initiation /deposit/recurring

The request is sent by POST to the address:

https://abysspay.online/api/deposit/recurring

The request format is as follows:

Field Type Mandatory Description Example
recurring_id int Yes Recurring ID of the initial transaction 300
amount float(10,2) Yes Transaction amount 10.00
currency string(3) Yes Transaction currency USD
transaction_id string No Transaction number in the Merchant system 123
note string No Transaction description for the Merchant Account deposit 321
system_fields object No Container for additional fields of payment system. You can specify it with your manager.
url object No Container for URL addresses transmitting
url > callback_url url No URL for transmitting notification of a payment to the Merchant system http://site.com/callback

The example of the request:

{
    "recurring_id": "300",
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "USD",
    "url": {
        "callback_url": "https://site.com/callback"
    }
}
    

Response of AbyssPay:

Field Type Mandatory Description Example
status string Yes Transaction status 'ok' in the case of success, 'error' if an error arose, 'created' if final status is not available yet. created
id integer Yes (success) Transaction number in AbyssPay system 300
transaction_id string No (success) Transaction number in the Merchant system, if it was transmitted in the request 123
type string Yes (success) Transaction type: 'deposit' – top-up deposit
amount_to_pay string Yes (success) The amount, required to be paid to the Client 10.00
amount_merchant string Yes (success) The amount that will be credited to the Merchant account (less payment system fee) 9.30 (with a fee, e.g. 7%)
currency string(3) Yes (success) Transaction currency USD
payment_system string Yes (success) Payment system name CardGate
redirect object Yes (success) Container with parameters of redirect
redirect > url url Yes (success) URL for the request sending https://abysspay.online/
redirect > method string Yes (success) The request method GET
redirect > params object Yes (success) Container with the request parameters. All the parameters in the container need to be sent together with the request. [] will be presented in case of empty params.
code string Yes (fail) Error code, list of codes and their description are in the table below. 500
message string Yes (fail) Text description of an error Internal server error
description string No (fail) Additional error description, if it is not on AbyssPay side Do not honor
system_fields object No Container for additional fields of payment system

The example of successful AbyssPay response:

{
    "status": "ok",
    "id": "301",
    "transaction_id": "123",
    "type": "deposit",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.30",
    "currency": "USD",
    "payment_system": "CardGate"
}
    

The example of unsuccessful AbyssPay response:

{
    "status": "error",
    "code": "201",
    "message": "Mandatory field `amount` is not present"
}
    

The example of non final AbyssPay response:

{
    "status": "created",
    "id": "301",
    "transaction_id": "123",
    "type": "deposit",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.30",
    "currency": "USD",
    "payment_system": "CardGate"
}
    

Refunds

Refunds can only be made if next conditions are met:

  • Payment method supports refunds (you can specify it with your manager).
  • Transaction type is deposit and its status is success.
  • Transaction type is authorization and it has a successful capture transaction.
  • Merchant balance is greater of equal refund amount.
  • Sum of all refunds on specific transaction is less or equal the transaction amount (capture amount in case of authorization/capture).

The request is sent by POST to the address:

https://abysspay.online/api/refund/create

The request format is as follows:

Field Type Mandatory Description Example
amount float(10,2) Yes Refund amount 10.00
currency string(3) Yes Transaction currency USD
original_transaction_id integer Yes AbyssPay ID of the original transaction 300
transaction_id integer Yes Transaction number in the Merchant system 123
note string No Transaction description for the Merchant Account deposit 321
url object No Container for URL addresses transmitting
url > callback_url url No URL for transmitting notification of a refund to the Merchant system http://site.com/callback

The example of the request:

{
    "amount": "10.00",
    "currency": "USD",
    "original_transaction_id": "300",
    "transaction_id": "123",
    "url": {
        "callback_url": "https://site.com/callback"
    }
}
    

Response of AbyssPay:

Field Type Mandatory Description Example
status string Yes Transaction status 'ok' in the case of success, 'created' in case of non-final status, 'error' if an error arose. created
id integer Yes (success) Transaction number in AbyssPay system 301
transaction_id string No (success) Transaction number in the Merchant system, if it was transmitted in the request. 123
type string Yes (success) Transaction type refund
amount_to_pay string Yes (success) The amount, to be refunded to the Client 10.00
amount_merchant string Yes (success) The amount withdrawn from the Merchant account 10.70 (with a fee, e.g.7%)
amount_client string Yes (success) *deprecated* 10.00
currency string(3) Yes (success) Transaction currency USD
payment_system string Yes (success) Payment system name CardGate
created integer Yes (success) Timestamp of the creation date and time 1510000000
code string Yes (fail) Error code, list of codes and their description are in the table below 500
message string Yes (fail) Text description of an error Internal server error
description string No (fail) Additional error description, if it is not on AbyssPay side. Do not honor

The example of successful AbyssPay responses:

{
    "status": "ok",
    "id": "301",
    "transaction_id": "123",
    "type": "refund",
    "amount_to_pay": "10.00",
    "amount_merchant": "10.70",
    "amount_client": "10.00",
    "currency": "USD",
    "payment_system": "CardGate",
    "created": 1510000000
}
    

The example of successful AbyssPay response:

{
    "status": "created",
    "id": "301",
    "transaction_id": "123",
    "type": "refund",
    "amount_to_pay": "10.00",
    "amount_merchant": "10.70",
    "amount_client": "10.00",
    "currency": "USD",
    "payment_system": "CardGate",
    "created": 1510000000
}
    

The example of unsuccessful AbyssPay response:

{
    "status": "error",
    "code": "305",
    "message": "Insufficient balance"
}
    

Transaction status notification

Notification is sent if the Merchant specifies the corresponding URL in the deposit/create or deduce/create request in case of transaction status changing. The request has headers Auth and Sign, signature and authorization should be checked, the merchant keys are used. The request is written as follows:

The response format:

Field Type Mandatory Description Example
id integer Yes Transaction number in system 300
status string Yes Transaction status: 'ok' – successful, 'pending' – has non final status, 'cancel' – canceled, 'error' – an error has occurred, 'authorized' - has been authorized ok
type string Yes Transaction type: 'deposit', 'deduce', 'refund' deposit
transaction_id string No Transaction number in Merchant system 123
amount_payed string Yes In case of deposit — the amount paid by a Client. In case of withdrawal – the amount paid to a Client. 10.00
amount_merchant string Yes In case of deposit – the amount credited to the Merchant account. In case of withdrawal – the amount withdrawn from the Merchant account. 9.30
currency string(3) Yes Transaction currency USD
payment_system string Yes Name of Payment system to which the Transaction belongs CardGate
created integer Yes Transaction creation time 1500000000
updated integer Yes Time of the last status change 1510000000
message string No Error description in case of failure operation_time_out
original_currency string No This field appear in case of currency conversion. It points currency that was received from Merchant. EUR
original_amount string No This field appear in case of currency conversion. It points amount that was received from Merchant. 1
original_transaction->id int No Original transaction id 299
original_transaction->transaction_id string No Original merchant transaction id 123
fee string Yes Fee that merchant paid 1.02
rolling_reserve string Yes Rolling that merchant paid 0.00
compensation string No Compensation that should be paid to client 0.00
recurring_id integer Yes for recurring Recurring ID 300
system_fields object No Container with additional fields (availability and content depend on a payment system)

Notification example:

{
    "id": "300",
    "status": "ok",
    "type": "deposit",
    "transaction_id": "123",
    "amount_payed": "10.00",
    "amount_merchant": "9.30",
    "amount_client": "10.00",
    "currency": "USD",
    "payment_system": "CardGate",
    "system_fields": {
        "card_number": "411111******1111"
    }
}
    

The system will make efforts to send the notification no more than 20 times. The interval between efforts will grow each time.

The system concludes the successful notification delivering, if the response with <b>code 200</b> and body:

{
    "answer": "ok"
}
    

Transaction status request

The Merchant System can request transaction status without waiting for notification delivering. For this purpose it is required to send GET request with Auth heading to the address:

https://abysspay.online/api/status/{ID}, in which {ID} is replaced by a transaction number in AbyssPay system, for example: https://abysspay.online/api/status/300.

There is also a way to request transaction status by Transaction number in Merchant system. For this case it is required to send GET request with Auth heading to the address:

https://abysspay.online/api/status/merchant?id={MERCHANT_ID}&date={APPROX_DATE}, in which {MERCHANT_ID} is replaced by a transaction number in Merchant system and {APPROX_DATE} by approximate date of the transaction creation (in format: 2020-12-30). {APPROX_DATE} is non mandatory parameter, but it used for speeding up the search. Transaction will be searched for ±3 days from {APPROX_DATE}

Attention! You can only request a status with a Merchant transaction number for transactions that are less than 5 years old.

The fields in response are equal to transaction status notification request above

The example of response to the request: https://abysspay.online/api/status/300:

{
    "id": "300",
    "status": "ok",
    "type": "deposit",
    "transaction_id": "123",
    "amount_payed": "10.00",
    "amount_merchant": "9.30",
    "amount_client": "10.00",
    "currency": "USD",
    "payment_system": "CardGate",
    "created": 1500000000,
    "updated": 1510000000,
    "system_fields": {
        "card_number": "411111******1111"
    }
}
    

Balance request

The Merchant System can request remaining balance. For this purpose it is required to send GET request with Auth heading to the address: https://abysspay.online/api/balance

Response of AbyssPay:

Field Type Mandatory Description Example
status string Yes Transaction status: 'ok' – successful, 'error' – an error has occurred. ok
balances string Yes (success) Container for balance by different type of payment system
balances > payment system float(10,2) Yes (success) Available payment system for Merchant system. Instead of `payment system` it will be placed all available balance on payment system type. TestCard
payment system > currency float(10,2) No (success) Remaining balance by currency. At field `currency` it will be placed all available currencies for Merchant. 4973.00
code string Yes (fail) Error code, list of codes and their description are in the table below. 103
message integer Yes (fail) Error description Header `Auth` is not set or empty

The example of successful response to the request https://abysspay.online/api/balance:

{
    "status": "ok",
    "balances": {
        "TestCard": {
            "USD": "4973.00"
        }
    }
}
    

The example of unsuccessful AbyssPay response to the request:

{
    "status": "error",
    "code": "103",
    "message": "Header `Auth` is not set or empty"
}
    

Errors arising in operating with the system

When creating a transaction, any error other than 5xx can be considered an unambiguous failure. Exceptions:

  • Error 306 when creating a transaction
  • Getting a 1xx or 422 error when creating a status request, this is a request error, not a transaction error

The list of all possible errors is presented in the following table:

Code Description
1XX Authorization error, request format error
101 Merchant is not found
102 Wrong request signature
103 The required request header is not found
104 Wrong request format / JSON is not correctly structured
105 IP is not whitelisted
2XX Request content errors
201 Mandatory field is not found
202 Payment system is not found or not available
203 Payment system does not support the transaction type (deposit or withdrawal)
3XX Data validation errors
301 Wrong field format
302 Transaction is not found
303 Amount is less than 0 after fee calculating
304 User is not found
305 Insufficient balance
306 Transaction with number transaction_id is already exist
307 Antifraud validation check failed
308 Recurring data is not found
309 Transaction has wrong status
4XX Payment system errors
401 Error on the side of Payment system, more detailed information will be specified in the field “message”
422 Request error, more detailed information in the fields "message” and "errors"
5XX AbyssPay server errors
501 Error on the side of AbyssPay server, more detailed information will be specified in the field “message”

Testing card methods

Supported currencies: RUB, EUR, USD.

Any other currencies will be converted into RUB.

CVV, expire month and expire year can be any valid value.

For successful deposit payment without 3ds process and payout payment you can use following card numbers:

  • 4111 1111 1111 1111
  • 4000 0000 0000 0002
  • 4000 0000 0000 0127
  • 5200 0000 0000 0007
  • 5200 0000 0000 0114
  • 5200 0000 0000 0122

To test deposit and payout payment that remains in non-final status you can use following card numbers:

  • 4012 8888 8888 1881
  • 5200 8282 8282 8210

For successful deposit payment with 3ds imitation process you can use following card numbers:

  • 5555 5555 5555 4444
  • 5454 5454 5454 5454
  • 4917 6100 0000 0000

Any other card numbers will initiate an error.

Use "payment_system": "CardGateTest" for testing card acquiring.

Use "payment_system": "CardGateTestS2S" for testing server-to-server integration.

Use "payment_system": "TestCard" for testing card payout.

For testing recurring payments (deposit/recurring) put "expected_status" parameter inside "system_fields" object with following values:

  • "system_fields": {"expected_status": "error"} - for immediate "error" status,
  • "system_fields": {"expected_status": "created_error"} - for "created" status in the answer and "error" callback,
  • "system_fields": {"expected_status": "created_success"} - for "created" status in the answer and "ok" callback,
  • "system_fields": {"expected_status": "success"} - or any other - for immediate "ok" status.

Testing wallet methods

Supported currencies: RUB, EUR, USD.

Any other currencies will be converted into USD.

The client_id field should be present inside "system_fields": {"client_id": "client_id_on_merchant_side"} for all types of integrations.

Use "payment_system": "TestWallet" for testing wallet deposit.

For immediate successful deposit payment you can use following wallet numbers:

  • 79111111111
  • 79151515151

To test deposit payment that remains in non-final status you can use following wallet numbers:

  • 799999999991
  • 799999999992

For deposit payment with OTP input imitation process you can use following wallet numbers:

  • 78005553535
  • 79000000001

Enter 1234 OTP to test successful deposit payment, any other number will initiate an error

Any other wallet numbers will initiate an error.

Cookies

We utilize cookie files in order to make your experience on our website more comfortable and offer more relevant information. You can take a look at our Cookies policy to know more.

By continuing to use this website you agree to collection and storage of cookie files on your device. You can withdraw your consent at any time by deleting the previously saved cookie files.