Additional parameters can be transferred in the request, for example:
description – payout description,account_details – additional information on the account for payout.The list of these parameters depends on the payway (payway). The required additional parameters for the payway can be found in the request “Receive possible payout methods for payments” shop_output_config/shop in the account_info_config response field.
Fields involved in request signature generation:
accountamountamount_typepaywayshop_currencyshop_idshop_payment_idDocumentation Index
Fetch the complete documentation index at: https://docs.m4psp.com/llms.txt
Use this file to discover all available pages before exploring further.
Every API request must be signed so that we can identify your account.
The signature is transferred in the request body through the sign parameter, for example:
{
"shop_id": 1520,
"shop_order_id" : "5b0efa8a-153b-4421-abac-2aba4d772a86",
"amout": "6320.91",
"currency": 840,
"payway": "card_invoice_usd",
"description": "Payment for shop_id=1520",
"sign": "77a6f7a30876d480d4e771d08cb83800dd5cb874664c77e515ffc052b20293c6"
}"sign" parameter, nevertheless your real requests must include it in the request body where required.
Signature line is generated according to the following algorithm: all request parameters involved in signature generation are ordered in the alphabetical order of keys, the values are concatenated with a colon (":") and the account secret key is added at the end (without the: sign), a sha256 hash is generated from the resulting line and its hex representation is passed in the sign request parameter.
Fields involved in request signature generation:
shop_idshop_order_idamountcurrencypayway"amount", "currency", "payway", "shop_id", "shop_order_id"
"6320.91:840:card_invoice_usd:1520:5b0efa8a-153b-4421-abac-2aba4d772a86account-secret-key"
Where account-secret-key is the secret identification key for your account. You can request a key from the support service.
>>> string_to_sign = '6320.91:840:card_invoice_usd:1520:5b0efa8a-153b-4421-abac-2aba4d772a86account-secret-key'
>>> import hashlib
>>> sign = hashlib.sha256(string_to_sign.encode()).hexdigest()
>>> print(sign)
'77a6f7a30876d480d4e771d08cb83800dd5cb874664c77e515ffc052b20293c6'Unique shop identifier in the M4 system.
1520
Payment direction for payout. Currency of receipt depends on the specified payment way.
There are two ways to get a list of all payment ways available to the shop:
150^[A-Za-z_,\[\]]+$"card_payway_usd"
Amount received or withdrawn.
Example: "227.34"
"6320.91"
Account of the recipient of funds in the payment system or service. For example, phone, card number or steam login.
"150010000097"
Indicates the amount type, possible values:
ps_amount – the exact amount indicated in the amount will be sent to a beneficiary card or wallet. Credit currency will correspond to the currency of the payway,
shop_amount – the exact amount indicated in the amount will be written off from the shop balance, beneficiary will receive this amount minus transaction fees. Debit currency will correspond to the currency of the shop_currency.
ps_amount, shop_amount "ps_amount"
Order ID in your system. Must be unique for each new payment.
"4440D705-947A-4C6E-9A2E-4A383B2CD574"
Detailed account information. If additional parameters were transferred in the /withdraw/try response in the account_info_config field, they must be transferred in the account_details field.
{ "name": "Adam" }Description of the payout. Transferred in the payway provided that the payment system has this function.
255"Payout to my worker"
OK
Boolean value, in case of successful response it will be true, in case of error – false
true
A textual description of the error, in case of success - simply Ok
"Ok"
If this value is greater than 0, then the request ended with an error. Description of error codes
0