{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"9345bab0-af51-4cd2-8691-7a5a03d226e9","name":"PAYMENTS API v1.0","description":"Our payment gateway lets you accept and make payments using a JSON-formatted REST API. This document describes API v1.0.\n\n## Introduction\n\nWe support debit and credit cards, such as Visa, Mastercard, and in certain cases Mir.\n\n## API Credentials\n\nYour API credentials are a project ID and a secret key, which authenticate API requests from your account.\n\n**Important: Don't use the secret key in the client-side (frontend) code.**\n\nTo get credentials, provide our customer support team with the following details:\n\n- Website URL\n- Email\n- Two Customer browser redirection URLs:\n    - success redirect\n    - failure redirect\n- Merchant callback URLs:\n    - payments callback (used both for inbound and outbound payments)\n\nFor example, the following URL may be used:  \n`https://example.com/payment`.\n\nWhen your company passes regulatory compliance procedures, production values for the project ID and the secret key will be supplied.\n\n## Sandbox\n\nWe provide a sandbox environment. This environment is an exact copy of a production environment. Once you integrated and regulatory compliance procedures are done you will recieve production project ID and secret key.\n\n#### How it works\n\n- Ask our technical team for sandbox credentials.\n- Integrate the API with some predefined data.\n- Each API endpoint have predifined data(pan & cvv) and instructions for reference\n- USD currency is available by default. Ask our technical team to add another currencies.\n    \n\n#### Card Processing\n\nTo test deposit flow use the following card data in the request:\n\n| **Parameter** | **Value** | **Description** |\n| --- | --- | --- |\n| number | 4244491609788988 | This is the only valid card number for payment procedure |\n| security_code |  | Depends on given codes you will recieve different response: |\n|  | 501 | success response with 3ds v2 flow |\n|  | 504 | failed response with 3ds v2 flow |\n|  | 100 | error reponse with 400069 code |\n|  | 101 | error response with 400345 code |\n|  | 102 | error response with 400390 code |\n\n#### Payouts\n\nTo test payout flow use the following card data in the request:\n\n| **Parameter** | **Value** | **Description** |\n| --- | --- | --- |\n| destination_card |  | These are the only valid values for sandbox environment |\n|  | 4244491609788988 | succes payout |\n|  | 5520055591529809 | error respons with 400069 code |\n\n## General features\n\n### HMAC Authentication\n\nWe use HMAC to authenticate entire request bodies. This approach is common in the payment industry, but it isn't standardized by API standards such as OpenAPI yet.\n\nHMAC authentication is required for all API calls except `/card/getToken`\n\nTo account for JSON serialization differences, our specification defines a custom serialization format for HMAC calculations.\n\nAs our API only uses flat lists of key-value pairs, there is no need to define serialization for nested structures.\n\nTo authenticate a request using an HMAC do the following:\n\n- sort the values in the case sensitive ascending order\n- concatenate the sorted list using the \"|\" character\n- construct HMAC-SHA256 using your secret key\n- convert the resulting value to a lowercase ASCII hex string\n- pass the string as an extra `signature` parameter to the API call\n    \n\nFor example, for the following `/transaction/status` request parameters in ASCII encoding:\n\n```\nproject = \"d7d86391b36b4543bc1cf87cbd2ee6c9\"\npayment_id = \"38013333\"\n\n ```\n\nthe 41 data bytes for HMAC calculation would be:\n\n```\n33 38 30 31 33 33 33 33 7c 64 37 64 38 36 33 39 31 62 33 36 62 34 35 34 33 62 63 31 63 66 38 37 63 62 64 32 65 65 36 63 39\n\n ```\n\n(corresponds to ASCII \"38013333|d7d86391b36b4543bc1cf87cbd2ee6c9\" and not \"d7d86391b36b4543bc1cf87cbd2ee6c9|38013333\" because \"38013333\" is lexicographically smaller)\n\nThe secret key is provided as a hexadecimal string, so \"c8a4e2cc008ae5cc32de78c498b1ac53b921360d611373900aead96c410b5de0'\" corresponds to the following 32 octets:\n\n```\nc8 a4 e2 cc 00 8a e5 cc 32 de 78 c4 98 b1 ac 53 b9 21 36 0d 61 13 73 90 0a ea d9 6c 41 0b 5d e0\n\n ```\n\nWhen the above two octet strings are used in HMAC-SHA256 calculation, the following HMAC value should be produced:\n\n```\n0a 5e a9 ee 64 d6 de c3 cc ff d1 3c 4e 6e 03 89 2f 8b 3e 8a ba c5 f7 b3 af 18 f9 50 9d 77 ce 38\n\n ```\n\nThe parameters and the HMAC value are then serialized as a single JSON object:\n\n```\n{\n \"project\": \"d7d86391b36b4543bc1cf87cbd2ee6c9\",\n \"payment_id\": \"38013333\",\n \"signature\": \"0a5ea9ee64d6dec3ccffd13c4e6e03892f8b3e8abac5f7b3af18f9509d77ce38\"\n}\n\n ```\n\nSee code examples below.\n\n#### Node.js Example\n\n```\nconst crypto = require('crypto')\nconst createSignature = (request, keyHex) => {\n  const values = Object.values(request)\n  const hmacData = values.sort().join('|')\n  const hmacKey = Buffer.from(keyHex, 'hex')\n  const hmacObj = crypto.createHmac('sha256', hmacKey)\n  hmacObj.update(hmacData)\n  return hmacObj.digest('hex')\n}\nconst keyHex = 'c8a4e2cc008ae5cc32de78c498b1ac53b921360d611373900aead96c410b5de0'\nconst request = {\n  project: 'd7d86391b36b4543bc1cf87cbd2ee6c9',\n  payment_id: '38013333'\n}\nrequest.signature = createSignature(request, keyHex)\nconsole.log(JSON.stringify(request))\n\n ```\n\nOutput:\n\n```\n$ node hmac.js\n{\"project\":\"d7d86391b36b4543bc1cf87cbd2ee6c9\",\"payment_id\":\"38013333\",\"signature\":\"0a5ea9ee64d6dec3ccffd13c4e6e03892f8b3e8abac5f7b3af18f9509d77ce38\"}\n\n ```\n\n#### Python 3 example\n\n```\nimport hmac\ndef create_signature(params, keyHex):\n    params.sort()\n    join_params = '|'.join(params)\n    hash_params = bytearray()\n    hash_params.extend(join_params.encode())\n    hash_key =  bytearray.fromhex(keyHex)\n    sign = hmac.new(hash_key, hash_params, 'sha256')\n    return sign.hexdigest()\ndata = {\n   'project': \"d7d86391b36b4543bc1cf87cbd2ee6c9\",\n   'payment_id': \"38013333\"\n}\nsecret = 'c8a4e2cc008ae5cc32de78c498b1ac53b921360d611373900aead96c410b5de0'\ndata['signature'] = create_signature(list(data.values()), secret)\nprint(data)\n\n ```\n\nOutput:\n\n```\n$ python hmac.py\n{'project': 'd7d86391b36b4543bc1cf87cbd2ee6c9', 'payment_id': '38013333', 'signature': '2a15c222c7e4dbd23e14c915987eb34c908ab13e15d00a8e9fba82babf8bbada'}\n\n ```\n\n#### Go example\n\n```\npackage main\nimport (\n    \"crypto/hmac\"\n    \"crypto/sha256\"\n    \"encoding/hex\"\n    \"encoding/json\"\n    \"fmt\"\n    \"strings\"\n    \"sort\"\n)\nfunc createSignature(request map[string]string, keyHex string) string {\n    values := make([]string, 0, len(request))\n    for _, value := range request {\n        values = append(values, value)\n    }\n    sort.Strings(values)\n    hmacKey, _ := hex.DecodeString(keyHex)\n    hmacObj := hmac.New(sha256.New, []byte(hmacKey))\n    hmacData := strings.Join(values, \"|\")\n    hmacObj.Write([]byte(hmacData))\n    return hex.EncodeToString(hmacObj.Sum(nil))\n}\nfunc main() {\n    const keyHex = \"c8a4e2cc008ae5cc32de78c498b1ac53b921360d611373900aead96c410b5de0\"\n    request := map[string]string{\n        \"project_id\": \"d7d86391b36b4543bc1cf87cbd2ee6c9\",\n        \"payment_id\": \"38013333\",\n    }\n    request[\"signature\"] = createSignature(request, keyHex)\n    jsonString, _ := json.Marshal(request)\n    fmt.Println(string(jsonString))\n}\n\n ```\n\nOutput:\n\n```\n$ go run hmac.go\n{\"payment_id\":\"38013333\",\"project_id\":\"d7d86391b36b4543bc1cf87cbd2ee6c9\",\"signature\":\"0a5ea9ee64d6dec3ccffd13c4e6e03892f8b3e8abac5f7b3af18f9509d77ce38\"}\n\n ```\n\n#### Java example\n\n```\nimport javax.crypto.Mac;\nimport javax.crypto.spec.SecretKeySpec;\nimport java.nio.charset.StandardCharsets;\nimport java.security.InvalidKeyException;\nimport java.security.NoSuchAlgorithmException;\nimport java.util.*;\npublic class customHmac {\n    private static final String HMAC_SHA256 = \"HmacSHA256\";\n    private static String toHexString(byte[] bytes) {\n        Formatter formatter = new Formatter();\n        for (byte b : bytes) {\n            formatter.format(\"\u0002x\", b);\n        }\n        return formatter.toString();\n    }\n    public static byte[] hexStringToByteArray(String s) {\n        int len = s.length();\n        byte[] data = new byte[len / 2];\n        for (int i = 0; i < len; i += 2) {\n            data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)\n                    + Character.digit(s.charAt(i + 1), 16));\n        }\n        return data;\n    }\n    public static String createSignature(Collection params, String keyHex) {\n        Mac sha256Hmac;\n        String result;\n        String joined;\n        try {\n            Collections.sort(new ArrayList(params));\n            joined = String.join(\"|\", params);\n            final byte[] byteKey = hexStringToByteArray(keyHex);\n            sha256Hmac = Mac.getInstance(HMAC_SHA256);\n            SecretKeySpec keySpec = new SecretKeySpec(byteKey, HMAC_SHA256);\n            sha256Hmac.init(keySpec);\n            byte[] macData = sha256Hmac.doFinal(joined.getBytes(StandardCharsets.UTF_8));\n            result = toHexString(macData);\n        } catch (InvalidKeyException | NoSuchAlgorithmException e) {\n            e.printStackTrace();\n            return null;\n        }\n        return result;\n    }\n    public static void main(String[] args) {\n        final String keyHex = \"c8a4e2cc008ae5cc32de78c498b1ac53b921360d611373900aead96c410b5de0\";\n        Mac sha512Hmac;\n        Map request = new HashMap();\n        request.put(\"project\", \"d7d86391b36b4543bc1cf87cbd2ee6c9\");\n        request.put(\"payment_id\", \"38013333\");\n                String signature = createSignature(request.values(), keyHex);\n        if (signature != null) {\n            request.put(\"signature\", signature);\n            System.out.println(request);\n        }\n        else {\n            System.out.println(\"Failed create signature\");\n        }\n    }\n}\n\n ```\n\nOutput:\n\n```\n$ javac customHmac.java\n$ java customHmac\n{signature=0a5ea9ee64d6dec3ccffd13c4e6e03892f8b3e8abac5f7b3af18f9509d77ce38, payment_id=38013333, project=d7d86391b36b4543bc1cf87cbd2ee6c9}\n\n ```\n\n#### PHP (7.4) example\n\n```\nfunction create_signature($params, $keyHex)\n{\n  $values = array_values($params);\n  sort($values, SORT_STRING);\n  $join_params = implode(\"|\", $values);\n  $sign = hash_hmac('sha256',$join_params, hex2bin($keyHex), true);\n  return bin2hex($sign);\n};\n$data = array(\n   'project' => \"d7d86391b36b4543bc1cf87cbd2ee6c9\",\n   'payment_id' => \"38013333\"\n);\n$secret = 'c8a4e2cc008ae5cc32de78c498b1ac53b921360d611373900aead96c410b5de0';\n$data['signature'] = create_signature($data, $secret);\nvar_dump($data);\n?>\n\n ```\n\nOutput:\n\n```\n$ php customHmac.php\narray(3) {\n  [\"project\"]=>\n  string(32) \"d7d86391b36b4543bc1cf87cbd2ee6c9\"\n  [\"payment_id\"]=>\n  string(8) \"38013333\"\n  [\"signature\"]=>\n  string(64) \"0a5ea9ee64d6dec3ccffd13c4e6e03892f8b3e8abac5f7b3af18f9509d77ce38\"\n}\n\n ```\n\n## Payment process\n\nThis is a host2host-style integration. The payment form is provided by the Merchant.\n\n1. The Merchant passes cardholder data to the `/card/getToken` endpoint and receives a temporary card token, valid for 20 minutes.\n2. The Merchant passes the token to the `/card/process` endpoint and receives a JSON reply object with `success` and other fields.\n3. If you recieved `message` and `code` it means the transaction failed, and the fields indicate a detailed error condition.\n4. If `success` is `true` and returned `acs` object contains the `url` field, a GET redirection to that URL is performed, typically by returning a 3xx response header and setting the `Location` HTTP header.\n    \n\nAfter this point, the Merchant can either poll the transaction status or wait for an HTTP callback until the transaction reaches one of the final success or final failure statuses.\n\n## Best Practices for Error Handling to Prevent Financial Losses\n\n### Impact on Payout Cascading Implementation\n\nThe main purpose of this guide is to warn payout cascade implementors of possible financial losses due to their fault.\n\nThe affected scenario is as follows:\n\n- A Merchant sends a payout API request\n- A failure occurs\n- The failure is incorrectly interpreted as a failed transaction\n- The transaction is repeated using the next payment gateway in the cascade.\n- Both transactions succeed\n- The end user receives double amount and he is not willing to voluntarily return the extra\n- A financial loss occurs\n    \n\n### Guidelines\n\nFailure to adhere to these guidelines may lead to potential financial losses, which cannot be considered for compensation.\n\n1. **Payouts**: When encountering uncertain situations or cases not explicitly described in the documentation, the financial status of payouts must be set to **success**.\n2. **Payments**: Dually, for uncertain situations or cases not explicitly described, the financial status of payments must be set to **failure**.\n3. The status of a payout or payment transaction should only be changed under the following conditions:\n    1. Initial setting of the status to the safe value (success for payouts and failure for payments).\n    2. Receipt of the initial status during transaction creation.\n    3. Receipt of the `transaction_status` or `payout_status`\n\n### Important Considerations\n\n- A safe status (failure for payments, success for payouts, see above) must be assigned **before** an API request is attempted, to avoid financial losses.\n- In the event of a communication error or failure to receive a status value during transaction creation, the transaction status must **remain unchanged** to avoid financial losses.\n- Similarly, if there is a communication error or failure to receive a status value during a transaction status request, the transaction status must **remain unchanged** to avoid financial losses.\n- If callbacks are not received or lack the necessary parameter value, the transaction status should **remain unchanged** to avoid financial losses.\n- In case of undocumented error messages, or error messages explicitly asking to contact technical support, the transaction must be marked as requiring manual review. Financial status of such transactions is unknown, so these transactions must not be retried using another provider to avoid financial losses.\n    \n\n## Callback\n\nIf a transaction doesn't have a final status upon creation, Merchant can track its status changes by receiving asynchronous callbacks from the API.\n\nThe callback URL is configured statically when credentials are requested, and can be re-configured at any time by contacting technical support.\n\nIf Merchant decides not to actually use the callbacks, for example, by relying on polling, a dummy callback handler returning 200 HTTP Status Code on POST requests must be provided.\n\nThe callback is a POST request with a HMAC-authenticated JSON request body, just the same way as the requests to the API are formatted. The Merchant's `secret` is used as the HMAC secret.\n\nThere can be different types of callbacks: payment, payout, refund. While payment callback always persists, payout and refund callbacks are not always provided and depend on merchant configuration. However the request body of the callback is always the same as response body of the corresponding status requests.\n\nPayment callback request body contains the following fields:\n\n```\n{\n  \"success\": true,\n  \"payment_id\": \"321\",\n  \"order_id\": \"123\",\n  \"currency\": \"USD\",\n  \"create_date\": \"2021-01-20 16:51:58\",\n  \"result_date\": \"2021-01-20 16:57:49\",\n  \"card_pan\": \"444444******1234\",\n  \"transaction_status\": \"completed\",\n  \"status_code\": null,\n  \"status_description\": null,\n  \"amount\": \"3.77\",\n  \"amount_gross\": \"4.00\",\n  \"transactions\": [],\n  \"signature\": \"7f41726ca604797668dc2b73223e9aeebffcea29a68bfbb0fa876d4b5eb5a8c3\"\n}\n\n ```\n\n#### How to:\n\nThe above signature was created with the key - c8a4e2cc008ae5cc32de78c498b1ac53b921360d611373900aead96c410b5de0\n\n- exclude fields (if exists) with type 'object' from the values array (null, \\[\\])\n- boolean type convert to string 'true'\n    \n\nfinal string - 123|2021-01-20 16:51:58|2021-01-20 16:57:49|3.77|321|4.00|444444**1234|USD|completed|true\n\n### Important fields:\n\n- transaction_status - final transaction status. Look status table for reference.\n- order_id - order or payment id on your side\n- payment_id - transaction id on our side\n- amount - amount added to merchant balance\n- amount_gross - amount charged from a client\n- currency - alfa currency code (for example USD)\n- transactions - list of potential refund operations of the currrent transaction\n    \n\n## Documentation notes\n\nParameters with **bold** font are required parameters. Parameters with _cursive_ are optional or have additional notes to that specific request.\n\n## Host\n\n> api.example.com \n  \n\n## Headers\n\n> Content-Type: application/json \n  \n\n## Authentication\n\nRequest and callback parameters are signed by [HMAC](https://en.wikipedia.org/wiki/HMAC) to make sure the values can't be changed.\n\n## Errors\n\n| Message | Code | HTTP status code |\n| --- | --- | --- |\n| Transaction cannot be processed. Too many executed transactions. Try again in 12 hours | 104 | 401 |\n| You've reached the limit of sum allowed per day. Try tomorrow, please. | 334 | 401 |\n| Project's ID is missing. | 400001 | 403 |\n| Amount/price is required. | 400002 | 401 |\n| Signature is missing. | 400003 | 401 |\n| Customer not found. | 400004 | 403 |\n| Signature is invalid. | 400005 | 403 |\n| Payment ID or Order ID is required. | 400006 | 401 |\n| Description is required. | 400007 | 401 |\n| IP is required. | 400008 | 401 |\n| Token is required. | 400009 | 401 |\n| CC number is required | 400010 | 401 |\n| Expiration month is required. | 400011 | 401 |\n| Expiration year is required. | 400012 | 401 |\n| Security code is required. | 400013 | 401 |\n| Payment ID is required. | 400015 | 401 |\n| Refund ID is required. | 400016 | 401 |\n| Payout amount is required. | 400017 | 401 |\n| Destination card is required. | 400018 | 401 |\n| Payout ID or Order ID is required. | 400019 | 401 |\n| Start Date (YYYY-MM-DD HH:MM:SS) is required. | 400020 | 401 |\n| End Date (YYYY-MM-DD HH:MM:SS) is required. | 400021 | 401 |\n| User's email is missing. | 400023 | 401 |\n| Currency is missing. | 400025 | 401 |\n| Payout ID is required. | 400029 | 401 |\n| Phone number is required. | 400031 | 401 |\n| Token is invalid or expired. | 400036 | 401 |\n| Invalid price/amount format. Valid is fixedpoint string, ex: 123.2 | 400039 | 401 |\n| Order ID is missing | 400040 | 401 |\n| Invalid payment ID type. Must be a string. | 400043 | 401 |\n| Invalid order ID type. Must be a string. | 400044 | 401 |\n| result_url is missing. | 400045 | 401 |\n| birth_date is missing. ex 05.06.1987 | 400046 | 401 |\n| expiration_month is required. ex 06 | 400047 | 401 |\n| expiration_year is required. ex. 22 | 400048 | 401 |\n| birth_place is missing. ex Moscow | 400049 | 401 |\n| country_of_citizenship is missing. ex RU | 400050 | 401 |\n| country_of_residence is missing. ex RU | 400051 | 401 |\n| document_type is missing. ex passport or ID | 400052 | 401 |\n| document_issuer is missing. ex MFA of Russia | 400053 | 401 |\n| document_series is missing. ex P | 400054 | 401 |\n| document_number is missing. ex 23 23456891 | 400055 | 401 |\n| document_issued_at is missing. ex 05.06.2011 | 400056 | 401 |\n| document_valid_until is missing. ex 05.06.2029 | 400057 | 401 |\n| beneficiary_first_name is missing. ex Ivan | 400058 | 401 |\n| beneficiary_last_name is missing. ex Ivanov | 400059 | 401 |\n| phone is missing. ex 77777777777 | 400060 | 401 |\n| Pan is in blacklist | 400061 | 401 |\n| Pan is not in whitelist | 400062 | 401 |\n| Website is not in whitelist | 400063 | 401 |\n| IP does not match url | 400066 | 401 |\n| Amount is invalid | 400067 | 401 |\n| Card balance is exceeded | 400068 | 401 |\n| Order ID must be unique | 400069 | 401 |\n| Issuer declined the transaction | 400070 | 401 |\n| Card limit has been exceeded | 400071 | 401 |\n| Transaction has been declined by antufraud system | 400072 | 401 |\n| Transaction with this order ID does not exist | 400074 | 401 |\n| General processing error | 400075 | 401 |\n| Partial amount retrieve not allowed | 400076 | 401 |\n| Transaction declined by gateway | 400077 | 401 |\n| Credit card info is invalid | 400078 | 401 |\n| Credit card number is invalid | 400079 | 401 |\n| Credit card holder name is invalid | 400080 | 401 |\n| One or more request parameters are invalid | 400081 | 401 |\n| Payment session timeout error | 400082 | 401 |\n| Credit card is expired | 400084 | 401 |\n| Partial refund is not allowed | 400094 | 401 |\n| Multiple refunds are not supported | 400095 | 401 |\n| Partial charge is not allowed | 400096 | 401 |\n| Retrieve period has been expired | 400097 | 401 |\n| CVC code is invalid | 400098 | 401 |\n| Email provided is invalid | 400099 | 401 |\n| Credit card is inactive | 400100 | 401 |\n| Failed to get available payment gateways | 400101 | 400 |\n| Failed to get payment status | 400102 | 400 |\n| Failed to get initialize a payment | 400103 | 400 |\n| Failed to create a token | 400104 | 400 |\n| Failed to create refund | 400106 | 400 |\n| Failed to get refund status | 400107 | 400 |\n| Failed to create payout | 400108 | 400 |\n| Failed to get payout status | 400109 | 400 |\n| Failed to get refunds list | 400110 | 400 |\n| Failed to get transactions list | 400111 | 400 |\n| Failed to get payouts list | 400112 | 400 |\n| Failed to process a payment | 400115 | 400 |\n| Failed to reverse the transaction | 400120 | 400 |\n| Failed to process the refund | 400121 | 400 |\n| Failed to process callback | 400122 | 400 |\n| Endpoint not implemented | 400124 | 400 |\n| Failed to get balance. | 400126 | 400 |\n| Failed to get payout history. | 400127 | 400 |\n| Failed to execute cron job | 400131 | 400 |\n| Invalid request headers. | 400135 | 400 |\n| Failed to get rates | 400136 | 400 |\n| Operation is not supported for this card | 400300 | 401 |\n| Transaction has been declined by cardholder | 400301 | 401 |\n| Card PIN code error | 400302 | 401 |\n| Credit card is restricted | 400303 | 401 |\n| Credit card status is invalid | 400304 | 401 |\n| No transactions found for this order id | 400307 | 401 |\n| The number of payment attempts exceeded | 400311 | 401 |\n| New payment attempt already started | 400312 | 401 |\n| Specified currency is not supported | 400317 | 401 |\n| 3D-Secure authentication failed | 400319 | 401 |\n| 3D-Secure authentication has been canceled | 400320 | 401 |\n| 3D-Secure preprocess info is missing | 400321 | 401 |\n| Credit card is not involved in 3DS | 400322 | 401 |\n| Operation has been declined | 400325 | 401 |\n| Temporal failure, try later please | 400326 | 401 |\n| Credit card type is unsupported | 400327 | 401 |\n| return url has not been set | 400332 | 401 |\n| invalid credentials | 400333 | 401 |\n| You have reached maximum sum for operation | 400334 | 401 |\n| Unknown error. Contact technical support please | 400336 | 401 |\n| QIWI account number is required | 400337 | 401 |\n| Failure, try another card, please | 400338, 400339 | 401 |\n| This currency is not supported | 400340 | 401 |\n| Start Date (YYYY-MM-DD) or (YYYY-MM-DD HH:MM:SS) is required | 400341 | 401 |\n| End Date (YYYY-MM-DD) or (YYYY-MM-DD HH:MM:SS) is required | 400342 | 401 |\n| Include failed should be boolean | 400343 | 401 |\n| Range is not valid | 400344 | 401 |\n| Insufficient funds | 400345 | 401 |\n| Wrong sandbox card | 400346 | 401 |\n| Wrong sandbox card cvc | 400347 | 401 |\n| Unexpected sandbox message | 400348 | 401 |\n| Transaction with this payment id is not found | 400349 | 401 |\n| Transaction with this refund id is not found | 400350 | 401 |\n\n## Statuses\n\n| Status | Description |\n| --- | --- |\n| initiated | Transaction has been initiated successfully. |\n| completed | (final)Transaction has been completed successfully. |\n| canceled | (final)Transaction has been canceled. |\n| reject | (final)Transaction has been rejected by processing center. |\n| waiting_approval | Transaction is waiting to be approved. (3DS). |\n| processing | Transaction is processing. |\n| failed | (final)Transaction has been failed. |\n| refund_completed | (final)Transaction is reversed/refunded. |\n| payout_filled | Payout has been filled. |\n| payout_completed | (final)Payout has been completed. |\n| payout_failed | (final)Payout has been failed. |\n| waiting_payment | P2P transaction awaiting for payment. |\n| paid | (final)P2P transaction has been paid. |\n| in_review | Transaction is in review. |\n| dispute_opened | Dispute opened for P2P transaction. |\n| dispute_accepted | (final)Dispute has been accepted for P2P transaction. |\n| dispute_failed | (final)Dispute has been failed for P2P transaction. |","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"7415068","team":862691,"collectionId":"9345bab0-af51-4cd2-8691-7a5a03d226e9","publishedId":"TVCb4AZw","public":true,"publicUrl":"https://documenter-api.postman.tech/view/7415068/TVCb4AZw","privateUrl":"https://go.postman.co/documentation/7415068-9345bab0-af51-4cd2-8691-7a5a03d226e9","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.10.1","publishDate":"2020-08-28T02:47:09.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/bc22680fa0b7155f939c6796ae5bd6c8a434ffb96f864731d2eafc21db67a9b9","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/TVCb4AZw"}