Payout Process

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


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 /payout/create method. If transaction is created successfully then the Merchant should await for notification or send status requests.


REQUEST FOR PAYOUT TRANSACTION CREATING /PAYOUT/CREATE

The request is sent by POST to the address:

https://olympz.com/api/payout/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

method_name

string

Yes

Method name

CardChannel1

transaction_id

string

Yes

Transaction number in the merchant system

1234567

system_fields

object

Yes

Container for additional fields of payment system. You can specify it with your manager.

customer

object

Yes

Container for fields of end-customer / payer. You can specify it with your manager.

customer": {

"id": "1",

"ip": "127.0.0.1",

"email": "[email protected]",

"phone": "+97475300470",

"country": "GB",

"last_name": "First",

"first_name": "Last" }

The transaction_id parameter must be unique. In case of repeated ID Olympz 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. Olympz send common notification request to reversal_url with transaction status 'error' and 'Declined: reversal' message.

The example of the request:


{
    "amount": "10.00",
    "currency": "USD",
    "customer": {
        "id": "1234567890",
        "ip": "127.0.0.1",
        "email": "[email protected]",
        "phone": "1234567890",
        "country": "GB",
        "last_name": "Last",
        "first_name": "First"
    },
    "method_name": "CardGate",
    "system_fields": {
        "card_number": "4111111111111111"
    },
    "transaction_id": "117013775758724001779442581568"
}           

Response of Olympz:

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

500

transaction_id

string

No (success)

Transaction number in the Merchant system, if it was transmitted in the request.

1234567

type

string

Yes (success)

Transaction type: 'payout' – withdrawal.

payout

amount

string

Yes (success)

Transaction amount

10.00

currency

string(3)

Yes (success)

Transaction currency.

USD

method_id

string

Yes (success)

method_id name.

CardChannel1

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 Olympz response:

{
    "id": 2,
    "type": "payout",
    "amount": "50.00",
    "status": "pending",
    "created": 1701377095,
    "message": "",
    "currency": "USD",
    "method_name": "CardGate",
    "transaction_id": "117013775758724001779442581568",
    "original_amount": "50.00"
}

The example of unsuccessful Olympz response:

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

Last updated