{"info":{"_postman_id":"50330b5f-b2db-4477-bcaf-3bc87ab9e937","name":"Turbopay API","description":"<html><head></head><body><h1 id=\"introduction\"><strong>🚀 Introduction</strong></h1>\n<p>Welcome to TurboPay Merchant API Integration Guide where you’ll learn how to make integration of your website or application with the REST API of our payment gateway quick and easy. Our gateway will allow you to use different deposit and withdrawal payment methods, as well as other services and features to successfully collect payments from your customers, disburse payments to them, and manage your payment transparently and easily.</p>\n<h1 id=\"prerequisites\"><strong>⚙️ Prerequisites</strong></h1>\n<p>To complete successful integration, and testing and go live aside from the current Merchant API Integration Guide you would need:</p>\n<ol>\n<li><p>Test* merchant account integration credentials and setup details:</p>\n<ol>\n<li><p>Test merchant back office login and password</p>\n</li>\n<li><p>Information about available methods, currencies, base URL, and transaction limits<br> All of the above are indicated in the setup sheet, provided by our tech team.</p>\n</li>\n<li><p>Test API and Webhook keys for authentication of requests<br> These should be generated by the merchant in their back office.</p>\n</li>\n</ol>\n</li>\n<li><p>Integration group chat with our technical team<br> Will be created by our account management team.</p>\n</li>\n<li><p>Get your IPs whitelisted on our server<br> This is done by our tech team through the tech group chat.</p>\n</li>\n<li><p>Setup your server’s webhooks and redirect URL(s) for your merchant account:</p>\n<ol>\n<li><p>Status URL, where we send you webhooks about order statuses</p>\n</li>\n<li><p>Return URL, where your customer is redirected to after payment</p>\n</li>\n</ol>\n</li>\n</ol>\n<blockquote>\n<p>*A test merchant account allows you to test most of the features including receiving failed and success responses from the gateway without involving real money. They are meant for emulating transactions and responses by software and quality assurance engineers. To perform live transactions in a production mode for test purposes you may need to find a local wallet and/or account and perform these tests with a live merchant account. </p>\n</blockquote>\n<h1 id=\"integration-steps\"><strong>⚙️ Integration steps</strong></h1>\n<p>It is recommended to complete integration in the following steps:</p>\n<ol>\n<li><p>Get all the details mentioned in the <a href=\"#prerequisites\">Prerequisites</a> section</p>\n</li>\n<li><p>Complete integration with a test merchant account</p>\n</li>\n<li><p>Test integration with simulated transactions</p>\n</li>\n<li><p>Get live account credentials and connect them to your production server</p>\n</li>\n<li><p>Test integration to your live account</p>\n</li>\n<li><p>Have your live account fully switched to live mode*</p>\n</li>\n<li><p><a href=\"#a8b6df9a-9335-4d92-aa28-482c0c4de4f4\">Go live</a></p>\n</li>\n</ol>\n<p>Our account management, customer support, and technical teams will gladly assist you on every step of your integration and going live processes.</p>\n<h1 id=\"authentication\"><strong>🔐 Authentication</strong></h1>\n<p>Each API request that you make to our gateway must be authenticated. Authenticate them by including your API key in the Authorization header.</p>\n<p>You can generate your API key as well as the webhook key for validating webhooks directly from the back office.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Header param</strong></th>\n<th><strong>Value</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Authorization</td>\n<td>YOUR_API_KEY</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p>Secure your API keys - do not commit your API keys to git, do not store in Jira or other project management software, or use them in client-side JavaScript code. It can perform any action on your account without restriction. It should be kept confidential and only stored on your servers, preferably as an environment variable. </p>\n</blockquote>\n<p>API requests made without authentication will fail with the status code 401: Unauthorized. All API requests must be made over HTTPS. Do not set VERIFY_PEER to FALSE.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"🚀 Introduction","slug":"introduction"},{"content":"⚙️ Prerequisites","slug":"prerequisites"},{"content":"⚙️ Integration steps","slug":"integration-steps"},{"content":"🔐 Authentication","slug":"authentication"}],"owner":"47990315","collectionId":"50330b5f-b2db-4477-bcaf-3bc87ab9e937","publishedId":"2sB3HonygQ","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"228B22"},"publishDate":"2025-09-11T11:47:52.000Z"},"item":[{"name":"📥 Deposit (Hosted page)","item":[{"name":"Create Deposit Order","event":[{"listen":"test","script":{"id":"373cd0f8-11b0-4027-8f7e-e2abe3056208","exec":[""],"type":"text/javascript","packages":{}}}],"id":"996d6b87-7217-40ca-bf03-e116aae07508","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Authorization","value":"{{merchant_api_token}}","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"method\": \"upi\",\n    \"amount\": 2000,\n    \"currency\": \"INR\",\n    \"customer_email\": \"peter-pen@gmail.com\",\n    \"customer_phone\": \"+919876543210\",\n    \"customer_name\": \"Peter Pen\",\n    \"merchant_order_id\": \"0b087635-f4af-4df3-963f-b9dc3b465f9e\",\n    \"merchant_customer_id\": \"ee24d065-5d91-4397-8820-60cb98f6ba42\",\n    \"status_url\": \"https://webhook.site/cc6a5b7c-330b-4a2f-a90e-3cdc8cdaf8df\",\n    \"redirect_url\": \"https://merchant-website.com\",\n    \"traffic\": \"ftd\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.turbopay.com/api/deposit/new","urlObject":{"path":["deposit","new"],"host":["https://api.turbopay.com/api"],"query":[],"variable":[]}},"response":[{"id":"3c89f624-8146-41ef-9bc2-bd7b99a5ae9f","name":"201 UPI Created successfuly","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Authorization","value":"{{merchant_api_token}}","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"method\": \"upi\",\n    \"amount\": 2000,\n    \"currency\": \"INR\",\n    \"customer_email\": \"peter-pen@gmail.com\",\n    \"customer_phone\": \"+919876543210\",\n    \"customer_name\": \"Peter Pen\",\n    \"merchant_order_id\": \"5313a2d0-cd01-4669-a4c2-59b89b97b09a\",\n    \"merchant_customer_id\": \"4e8fcdb7-2546-4b0e-8766-a2a3b46cfe61\",\n    \"status_url\": \"https://webhook.site/cc6a5b7c-330b-4a2f-a90e-3cdc8cdaf8df\",\n    \"redirect_url\": \"https://merchant-website.com\",\n    \"traffic\": \"ftd\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.turbopay.com/api/deposit/new"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 01 Sep 2025 09:18:56 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"vary","value":"Origin"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=9bHXb6FIttaKIOYxQknZzTdqESDKs8fjh46fMpYYJs56Vn8X%2BPMNdqglauc1n2OIibzxsom7AnxrxJurhHU4Eln9LB8qesxtFTxurvXcFg%3D%3D\"}]}"},{"key":"CF-RAY","value":"9783aee08ebd41d6-LHR"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"form_url\": \"https://linestrack.com/wire?hash=f16f937b-dbac-48dc-b2b2-a7630e98e903\",\n    \"order_id\": \"e7d414e6-81b6-4dd9-a785-d19cb315c118\",\n    \"status\": \"new\"\n}"},{"id":"dfd96233-0a95-4f7b-a494-6df78726ff8b","name":"401 Wrong API Key","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Authorization","value":"","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"method\": \"upi\",\n    \"amount\": 200,\n    \"currency\": \"INR\",\n    \"customer_email\": \"peter-pen@gmail.com\",\n    \"customer_phone\": \"+919876543210\",\n    \"customer_name\": \"Peter Pen\",\n    \"merchant_order_id\": \"a07c1e32-e506-4f0e-a1d1-b61c6ab99aa7\",\n    \"merchant_customer_id\": \"328ccfb8-cdd9-4321-bdee-27d6c912b49e\",\n    \"status_url\": \"https://webhook.site/cc6a5b7c-330b-4a2f-a90e-3cdc8cdaf8df\",\n    \"redirect_url\": \"https://merchant-website.com\",\n    \"traffic\": \"ftd\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.turbopay.com/api/deposit/new"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 22 Jan 2025 10:40:06 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"vary","value":"Origin"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Report-To","value":"{\"endpoints\":[{\"url\":\"https:\\/\\/a.nel.cloudflare.com\\/report\\/v4?s=FsllWSedNUnPxpOdfaBPF9cVLIrfPgVVQz4Y%2BDvwH7ziL%2BhvrF1c%2FKMi0032zhoTKv6Q1G2eKdNrmwWzmbuHnSXun3tJxU6Ckc2nNgpQgYcTujMwH3VIyZDozFhapKdl%2B6%2B3A6cd\"}],\"group\":\"cf-nel\",\"max_age\":604800}"},{"key":"NEL","value":"{\"success_fraction\":0,\"report_to\":\"cf-nel\",\"max_age\":604800}"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"905eec8528ef3607-MAN"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"},{"key":"server-timing","value":"cfL4;desc=\"?proto=TCP&rtt=19958&min_rtt=16855&rtt_var=10899&sent=46&recv=45&lost=0&retrans=1&sent_bytes=4307&recv_bytes=2273&delivery_rate=164181&cwnd=253&unsent_bytes=0&cid=447e84a3da709309&ts=41315&x=0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Unauthorized\"\n}"}],"_postman_id":"996d6b87-7217-40ca-bf03-e116aae07508"}],"id":"9fa9115c-ac4b-4f52-a900-a9dde754c94a","description":"<p>A deposit process facilitates transferring funds securely and efficiently. This requires creating an order, showing a payment form, and updating order status in your system. Each step ensures accurate processing and status tracking, safeguarding the integrity of the deposit transaction.</p>\n<h3 id=\"steps-to-make-a-deposit\">Steps to Make a Deposit</h3>\n<h4 id=\"step-1-create-an-order\"><strong>Step 1: Create an Order</strong></h4>\n<ul>\n<li><p><strong>Description</strong>: Initiate the deposit by running <strong>Create Deposit Order</strong> endpoint using the API. To use UPI (Unified Payments Interface) as the payment method, specify <code>upi</code>. For bank transfers, specify <code>bank_transfer</code>.</p>\n<ul>\n<li><p><strong>UPI</strong> (Unified Payments Interface): A real-time payment system that enables instant money transfers between banks using a mobile number or a virtual payment address (VPA).</p>\n</li>\n<li><p><strong>Bank Transfers</strong>: A method of transferring funds directly between bank accounts. Supported methods may include IMPS (Immediate Payment Service), which enables instant, 24/7 bank-to-bank transfers within supported networks.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Action</strong>: Submit a request with the required details, ensuring the use of the correct API key for authorization.</p>\n</li>\n<li><p><strong>Response</strong>: A successful response includes an <code>order_id</code>, <code>form_url</code>, and the transaction <code>status</code>.</p>\n</li>\n<li><p><strong>Important</strong>: Store the <code>order_id</code> , <code>amount</code> and <code>status</code> securely for further processing.</p>\n</li>\n</ul>\n<p>Example of request body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"method\": \"upi\",\n    \"amount\": 200,\n    \"currency\": \"INR\",\n    \"customer_email\": \"peter-pen@gmail.com\",\n    \"customer_phone\": \"+919876543210\",\n    \"customer_name\": \"Peter Pen\",\n    \"merchant_order_id\": \"e8a5c596-ff82-4529-9b56-ecac6a061c91\",\n    \"merchant_customer_id\": \"995e2bae-dbcc-4549-88d0-73e8a7f74fc3\",\n    \"status_url\": \"https://webhook.site/cc6a5b7c-330b-4a2f-a90e-3cdc8cdaf8df\",\n    \"redirect_url\": \"https://merchant-website.com\",\n    \"traffic\": \"ftd\"\n}\n\n</code></pre>\n<p>Request parameters:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Example</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>method</code></td>\n<td>string</td>\n<td>yes</td>\n<td>One of the available payment methods, set up for your merchant account.</td>\n<td>UPI</td>\n</tr>\n<tr>\n<td><code>amount</code></td>\n<td>float</td>\n<td>yes</td>\n<td>Order amount in two decimal places, 500.00 implies 500 rupees and 00 paisa. For INR - only .00 paisa are accepted. Min and max amounts are indicated in the setup sheet.</td>\n<td>500.00</td>\n</tr>\n<tr>\n<td><code>currency</code></td>\n<td>string</td>\n<td>yes</td>\n<td>Order currency in alpha code in ISO 4217 format setup for your merchant account.</td>\n<td>INR</td>\n</tr>\n<tr>\n<td><code>traffic</code></td>\n<td>string</td>\n<td>yes</td>\n<td>Type of traffic. Only a set number of values are available - ftd, std. Please refer to your setup sheet.</td>\n<td>std</td>\n</tr>\n<tr>\n<td><code>customer_email</code></td>\n<td>string</td>\n<td>no</td>\n<td>Unique customer email of the standard format. Max length 100 characters.</td>\n<td><a href=\"https://mailto:name@mail.com\">name@mail.com</a></td>\n</tr>\n<tr>\n<td><code>customer_phone</code></td>\n<td>string</td>\n<td>no</td>\n<td>Unique customer local mobile number with country code starting from “+”. For India, it is +91 country code then 10 digits starting from 6, 7, 8, or 9.</td>\n<td>+919876543210</td>\n</tr>\n<tr>\n<td><code>customer_name</code></td>\n<td>string</td>\n<td>no</td>\n<td>Customer full name. A string of max length of 300 characters.</td>\n<td>Raj Singh</td>\n</tr>\n<tr>\n<td><code>merchant_order_id</code></td>\n<td>string</td>\n<td>yes</td>\n<td>Unique order or transaction ID in the merchant’s database. Duplicates are not accepted. Max length 100 characters.</td>\n<td>8ba06261-f034-47d0-bf05-8caa4b4da6d4</td>\n</tr>\n<tr>\n<td><code>merchant_customer_id</code></td>\n<td>string</td>\n<td>yes</td>\n<td>Unique customer ID in the merchant’s database. Max length 100 characters.</td>\n<td>27b69064-1be3-4974-8bfe-a9974875ff8a</td>\n</tr>\n<tr>\n<td><code>status_url</code></td>\n<td>string</td>\n<td>yes</td>\n<td>URL hosted by a merchant where we will send all transaction status callbacks. Max length 255 characters.</td>\n<td><a href=\"https://your-domain.com/status\">https://your-domain.com/status</a></td>\n</tr>\n<tr>\n<td><code>redirect_url</code></td>\n<td>string</td>\n<td>yes</td>\n<td>URL hosted by a merchant where the end customer is redirected after the completion of the deposit. This can be both dynamic payment success, fail, pending page, or a static home screen as well. Max length 255 characters.</td>\n<td><a href=\"https://your-domain.com/return\">https://your-domain.com/return</a></td>\n</tr>\n</tbody>\n</table>\n</div><p>Example of succesful response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"form_url\": \"https://base_url.com/deposit?hash=v7f0f71f-f896h-kk898f-ff6b0f34cbd0\",\n    \"order_id\": \"c2f0f71a-6f3f-4d65-be01-aa6b0f86cbe1\",\n    \"status\": \"new\"\n}\n\n</code></pre>\n<blockquote>\n<p>For security reasons, please keep <code>order_id</code> private and do not make it available neither to the public nor to end customers. </p>\n</blockquote>\n<p>Response parameters:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Example</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>form_url</code></td>\n<td>string</td>\n<td>VPA (UPI ID)</td>\n<td>username@bankname</td>\n</tr>\n<tr>\n<td><code>order_id</code></td>\n<td>string</td>\n<td>The ID that identifies the order in our system.</td>\n<td>c2f0f71a-6f3f-4d65-be01-aa6b0f86cbe1</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>Status of the order.</td>\n<td>new</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Step 2: Show Payment Form</strong></p>\n<ul>\n<li><p><strong>Description</strong>: Redirect the customer to the payment form containing the transaction details.</p>\n</li>\n<li><p><strong>Action</strong>: All you need to do that is redirect your customer to the link returned in <code>form_url</code>, and we'll display our hosted payment page for them to complete the payment. You can show form by redirecting on our form page or you can show this form using <strong>iframe</strong>.</p>\n</li>\n<li><p><strong>Example</strong>: Use the <code>form_url</code> to open deposit form:<br />  <strong><code>https://base_url.com/deposit?hash=v7f0f71f-f896h-kk898f-ff6b0f34cbd0</code></strong></p>\n</li>\n</ul>\n<p><strong>Iframe integration</strong></p>\n<p>To integrate our desktop and mobile-friendly hosted payment page directly into your website using an iframe, simply include the following tag on the relevant webpage:</p>\n<p>insert <code>iframe</code> tag with folowing params</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code> :src=\"&lt;form_url&gt;\"\n allow=\"clipboard-write\"\n height=\"800\"\n width=\"100%\"\n frameborder=\"0\"\n\n</code></pre><p>The iframe triggers a close event when the close or return button is pressed. You can handle this event to close the iframe using the following approach:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-javascript\">const listener = event =&gt; {\n  if (event.data === 'close') {\n    Implement here logic to close the iframe.\n  }\n}\n if (window.addEventListener) {\n    window.addEventListener(\"message\", listener);\n  } else {\n    window.attachEvent(\"onmessage\", listener);\n  }\n\n</code></pre>\n<h4 id=\"step-3-monitor-and-handle-order-status-changes\"><strong>Step 3: Monitor and Handle Order Status Changes</strong></h4>\n<ul>\n<li><p><strong>Description</strong>: Throughout the deposit process, an order transitions through multiple statuses such as <code>new</code>, <code>pending</code>, <code>success</code>, <code>failed</code>, <code>cancelled</code>, <code>refunded</code> or <code>expired</code>. Each status indicates the current state of the order.</p>\n</li>\n<li><p><strong>Action</strong>: Use <a href=\"#a8b6df9a-9335-4d92-aa28-482c0c4de4f4\">webhooks</a> or <a href=\"#481bd153-ca88-4d74-a554-eff886ec8b08\">periodic API calls</a> to monitor order status updates. Handle each status appropriately in your system:</p>\n<ul>\n<li><p><strong>Success</strong>: Mark the order as successful and proceed with delivering goods or services.</p>\n</li>\n<li><p><strong>Failed</strong>: Mark the order as unsuccessful and inform the customer.</p>\n</li>\n<li><p><strong>Cancelled or Expired</strong>: Wait for possible transitions to <code>failed</code> or <code>success</code> before finalizing the order status.</p>\n</li>\n<li><p>Note that <code>success</code> status is final for deposit order and transition from <code>failed</code> to <code>success</code> is allowed.</p>\n</li>\n</ul>\n</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>new</code></td>\n<td>This status is assigned to any new order initially</td>\n</tr>\n<tr>\n<td><code>cancelled</code></td>\n<td>Order gets this status in case the customer explicitly cancels the order by clicking the respective button on a hosted payment page</td>\n</tr>\n<tr>\n<td><code>expired</code></td>\n<td>Order gets this status in case we cannot confirm the order within the expiration time applicable to this particular flow and/or method</td>\n</tr>\n<tr>\n<td><code>pending</code></td>\n<td>Order gets this status in certain cases, for example when the customer confirms payment on the hosted payment page by clicking/tapping the respective button</td>\n</tr>\n<tr>\n<td><code>success</code></td>\n<td>This is the <strong>Final</strong> status of the successful deposit order. Once received you can mark the respective order/transaction as successful in your system and proceed to delivery of goods, services, or digital credit</td>\n</tr>\n<tr>\n<td><code>failed</code></td>\n<td>Once received you can mark the respective order/transaction as unsuccessful in your system.</td>\n</tr>\n<tr>\n<td><code>refunded</code></td>\n<td>This is the <strong>Final</strong> status of an order that was successfully refunded to the customer in case of deposits, and money was not sent in case of withdrawals. It indicates that the payment amount has been returned to the original payment method. Once received, you can mark the respective order/transaction as refunded in your system. Once an order reaches this status, no further payment actions can be performed on it.</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong>Final</strong> status normally means that it cannot be changed anymore. However, in certain rare cases depending on the payment method and flow, we can change the order status from failed to success, which will be clearly communicated to you each time. </p>\n</blockquote>\n<p>Each change of the order status will trigger a webhook to your designated status_url with the respective order_id and status. Please refer to the <a href=\"#fcf995e0-ae08-41f7-a3a6-21d628092802\">Webhooks</a> and <a href=\"#c7c99060-a145-4e42-abc5-1ec6b2e3f54b\">Order statuses transitions</a> parts for more information.</p>\n<p>Make sure to respond to status updates dynamically and adapt your flow according to the allowed status transitions.</p>\n<blockquote>\n<p>Please do not fail orders on your side in cases of <code>cancelled</code> or <code>expired</code> status webhooks, unless you can accept further transition to <code>success</code> status.</p>\n</blockquote>\n","_postman_id":"9fa9115c-ac4b-4f52-a900-a9dde754c94a"},{"name":"📥 Deposit (host-to-host)","item":[{"name":"Create Deposit Order","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"id":"6dd97f6a-0d2c-40bb-b1a4-7ed0138dfec0"}}],"id":"16c3d517-33ef-4ace-81bb-97f217b17096","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Authorization","value":"{{merchant_api_token}}","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"method\": \"upi\",\n    \"amount\": 2000,\n    \"currency\": \"INR\",\n    \"customer_email\": \"peter-pen@gmail.com\",\n    \"customer_phone\": \"+919876543210\",\n    \"customer_name\": \"Peter Pen\",\n    \"merchant_order_id\": \"82ddd757-fc1e-4b73-8dcc-1a9294ff9797\",\n    \"merchant_customer_id\": \"cfeb6282-e23d-431e-a548-97606104bc69\",\n    \"status_url\": \"https://webhook.site/cc6a5b7c-330b-4a2f-a90e-3cdc8cdaf8df\",\n    \"redirect_url\": \"https://merchant-website.com\",\n    \"traffic\": \"ftd\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.turbopay.com/api/s2s/deposit/new","urlObject":{"path":["s2s","deposit","new"],"host":["https://api.turbopay.com/api"],"query":[],"variable":[]}},"response":[{"id":"d1649930-be5e-4bc6-9ecf-c504ae66cfd8","name":"201 UPI Success","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Authorization","value":"{{merchant_api_token}}","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"method\": \"upi\",\n    \"amount\": 226,\n    \"currency\": \"INR\",\n    \"customer_email\": \"peter-pen@gmail.com\",\n    \"customer_phone\": \"+919876543210\",\n    \"customer_name\": \"Peter Pen\",\n    \"merchant_order_id\": \"3b17c84d-8b08-4c00-a105-3a8d18d6cbf8\",\n    \"merchant_customer_id\": \"8f66f8b8-46f7-4b5b-a099-f840bebdfb32\",\n    \"status_url\": \"https://webhook.site/cc6a5b7c-330b-4a2f-a90e-3cdc8cdaf8df\",\n    \"redirect_url\": \"https://merchant-website.com\",\n    \"traffic\": \"ftd\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.turbopay.com/api/s2s/deposit/new"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 28 Apr 2026 09:21:37 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"vary","value":"Origin"},{"key":"x-envoy-upstream-service-time","value":"678"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=mEkrEk8IOW7uxXWiV7i2mLfrXlGWYmZkbEgfwAYIxnCgaNC%2B9nrq7%2FNQiJMse5R%2BpBFjRQbDr2SMLCftenGN0%2FdAkGsTUK9caTLybqImtJ%2F0FVnZz3jVpLAe6zPnS%2B0t4Pnlag%3D%3D\"}]}"},{"key":"CF-RAY","value":"9f34ff6a293fd67f-IAD"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"wallet_address\": \"test@test\",\n    \"wallet_name\": \"[TEST] - TEST - TEST-OSTIN - FTD\",\n    \"transaction_note\": \"ZJaoS\",\n    \"order_expiration_seconds\": \"600\",\n    \"order_id\": \"d19da091-098d-49a6-b401-909bcf558a4f\",\n    \"status\": \"new\",\n    \"qr\": \"iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAIAAACx0UUtAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFj0lEQVR4nO3dy24jNxRF0TjI//+yM8moELDB5qO22mtNVSqVpQPCFyQvv76/v/+CsL/ffgD4BRmlTkapk1HqZJQ6GaVORqmTUepklDoZpU5GqZNR6mSUOhmlTkapk1HqZJQ6GaVORqn7Z+XNX19fu55jbLzpavwYj/dOPfPGzV7XPvfxQStf3UYrf5FxlDoZpU5GqZNR6pZqpodrFcbKf/rXel6cq+TOeatGHDOOUiej1MkodTJK3c6a6eHczMrUxSu1y7lXx6bmis55a07uwThKnYxSJ6PUySh1B2uma1aqonMTPG8txhu/+omt5Y2j1MkodTJKnYxS95E108YtO1MV1bWtUVN/4NR01ycyjlIno9TJKHUySt3Bmuncf+sb+xpMVUUrJdRU6TZ2bZlfpN4yjlIno9TJKHUySt3OmulaI4Nz0zDnJpau7ZTauI8qwjhKnYxSJ6PUySh1X5G5hHNWFvKtLHvbWH9sLJI+8ec2jlIno9TJKHUySt3O85muzZ1MPdXUxVNTVmPN+a0pG8vNFcZR6mSUOhmlTkapO7g2b2W7z8YpnHM9vzcWOiufO7YyC7Vxms2ZtvzJZJQ6GaVORqlbWpu38f/ic6cojW+14hOP1j33G42pmfiTySh1MkqdjFJ3bz/TSilzbk/SlJXibGNj8mY3cWvz+LlklDoZpU5Gqav0zds4z7Ri5VbXprs2HvW08SHP/UbGUepklDoZpU5GqdvZA+LhXFuHlU4NkWZ3489965jaa1/OFOModTJKnYxSJ6PULdVMb7VXmLrV+OKHc7u73qogpzifCX6HjFIno9TJKHUHe40/rCz0mvLW0bpTr56bK2qeC7XCOEqdjFIno9TJKHU79zONXStlms3Fz+2UikyznWMcpU5GqZNR6mSUuoN98851ipt679Stpmxso3dtzmZjnXdtD5ZxlDoZpU5GqZNR6ip988a3utZ7+1xj8o2vPkzVLhv3UU29usI4Sp2MUiej1Mkodff2M43fu3Krc0XSSv1xrsnFw1sdwa8t5DOOUiej1MkodTJK3b15pqk+chvX9Y0vvraBaWVb1ZS3Vv2d2yllHKVORqmTUepklLqdNdPGE4mmLj63gm7qMcYXTzm3Nm/jV3etqYdxlDoZpU5GqZNR6nb2gNi4r+hcwfFWZ7xrC/nGmscQjxlHqZNR6mSUOhmlbqlmOrd07doKupWnGntrjdxYs6AcM45SJ6PUySh1Mkrda/uZxq9unKUY29i/bvzeSMOIlYtXfsEVxlHqZJQ6GaVORqlbqpmubeh5q3HcuXmXj9hINHatrjWOUiej1MkodTJKXWVt3vjO4/eeO6Z2yrlef+c0u1o8GEepk1HqZJQ6GaVu5zzTxnmXjYfYrhy59LBxw9a5XVbXFgFe26FlHKVORqmTUepklLqDZ9qeO2TorYNZz81+nZt2WlkiuLGwW2EcpU5GqZNR6mSUup29xq+5Nhu0cbpr7Fyv8Wut/+xn4ueSUepklDoZpW7nfqZzrtUuY5FW3Oeaa2wsN8cXTzGOUiej1MkodTJK3c5e4+eOx5363I0zKysXn6shxreKrAnceGfjKHUySp2MUiej1O2smR7O/fN+bqfUw7kGClM2PvO13ncbvw3jKHUySp2MUiej1B2smc45V2Bda2NxbYvSxrWX1z73wThKnYxSJ6PUySh1H1kzXZvRufYY58qRjScwmWeC/yej1MkodTJK3cGa6a29Mhs7oK+8d2PRcG7H0srhVeaZ4D8ySp2MUiej1O2sma610VuZDjm3gWnqg1Y+d+q9G+u8t0pG4yh1MkqdjFIno9R95PlM/CjGUepklDoZpU5GqZNR6mSUOhmlTkapk1HqZJQ6GaVORqmTUepklDoZpU5GqZNR6mSUOhml7l8Al9EUyCJ8bAAAAABJRU5ErkJggg==\",\n    \"deep_links\": {\n        \"phonepe\": \"phonepe://native?data=eyJjb250YWN0Ijp7ImNic05hbWUiOiIiLCJuaWNrTmFtZSI6IiIsInR5cGUiOiJWUEEiLCJ2cGEiOiJ0ZXN0QHRlc3QifSwicDJwUGF5bWVudENoZWNrb3V0UGFyYW1zIjp7ImlzQnlEZWZhdWx0S25vd25Db250YWN0Ijp0cnVlLCJlbmFibGVTcGVlY2hUb1RleHQiOmZhbHNlLCJhbGxvd0Ftb3VudEVkaXQiOmZhbHNlLCJzaG93UXJDb2RlT3B0aW9uIjpmYWxzZSwiZGlzYWJsZVZpZXdIaXN0b3J5Ijp0cnVlLCJzaG91bGRTaG93VW5zYXZlZENvbnRhY3RCYW5uZXIiOmZhbHNlLCJpc1JlY3VycmluZyI6ZmFsc2UsImNoZWNrb3V0VHlwZSI6IkRFRkFVTFQiLCJ0cmFuc2FjdGlvbkNvbnRleHQiOiJwMnAiLCJkaXNhYmxlTm90ZXNFZGl0Ijp0cnVlLCJzaG93S2V5Ym9hcmQiOmZhbHNlLCJjdXJyZW5jeSI6IklOUiIsInNob3VsZFNob3dNYXNrZWROdW1iZXIiOnRydWUsIm5vdGUiOiJaSmFvUyIsImluaXRpYWxBbW91bnQiOjIyNjAwfX0%3D&id=p2ppayment\",\n        \"paytm\": \"paytmmp://cash_wallet?pa=test%40test&pn=Test%20Merchant%20STR&tn=ZJaoS&am=226&cu=INR&featuretype=money_transfer\"\n    }\n}"},{"id":"4fa15fce-7650-4d1a-aacd-2d8c7a4322ca","name":"422 Invalid request","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Authorization","value":"{{merchant_api_token}}","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"method\": \"bank_transfer\",\n    \"amount\": 2000,\n    \"currency\": \"INR\",\n    \"customer_email\": \"peter-pen@gmail.com\",\n    \"customer_phone\": \"+919876543210\",\n    \"customer_name\": \"Peter Pen\",\n    \"merchant_order_id\": \"fd850e70-ef0f-4f3a-8f6d-bcac96812e4a\",\n    \"merchant_customer_id\": \"77c2679e-255f-4936-ad47-64c8b18b2679\",\n    \"status_url\": \"https://webhook.site/cc6a5b7c-330b-4a2f-a90e-3cdc8cdaf8df\",\n    \"redirect_url\": \"https://merchant-website.com\",\n    \"traffic\": \"ftd\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.turbopay.com/api/s2s/deposit/new"},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 25 Jun 2025 14:16:14 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Vary","value":"Origin"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=ABPg%2FtofZ5JAP21nfMCnjzaHzridnGa%2Fv2juFxvg8nTaKRjFF11jr6NxrRme1MMcOgbySG1dv%2F9aZTlBo0ptx0fjzcwOeivpdCsGjTCv79%2FRmlvMbLHqCcc%3D\"}]}"},{"key":"CF-RAY","value":"955514d898a5f44b-MAN"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"invalid request\",\n    \"errors\": {\n        \"account\": [\n            \"Mid is not configured for method \\\"bank_transfer\\\"\"\n        ]\n    }\n}"},{"id":"5a9f4310-33eb-4fe7-94f0-ed894dc652d5","name":"401 Wrong API Key","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Authorization","value":"{{merchant_api_token}}","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"method\": \"bank_transfer\",\n    \"amount\": 2000,\n    \"currency\": \"INR\",\n    \"customer_email\": \"peter-pen@gmail.com\",\n    \"customer_phone\": \"+919876543210\",\n    \"customer_name\": \"Peter Pen\",\n    \"merchant_order_id\": \"b6e7dc45-a336-477f-b707-322087368e5b\",\n    \"merchant_customer_id\": \"a207b3de-053f-411f-9156-995c3572526e\",\n    \"status_url\": \"https://webhook.site/cc6a5b7c-330b-4a2f-a90e-3cdc8cdaf8df\",\n    \"redirect_url\": \"https://merchant-website.com\",\n    \"traffic\": \"std\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.turbopay.com/api/s2s/deposit/new"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 25 Jun 2025 14:19:23 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Vary","value":"Origin"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=YqqOuAnsCHT261qm8dA%2BLbXYbuK588alWiUTGpdJoUl4dgCDjbm4CudkUHpLb1Agji8rCUanGWi1xOAHEZ4xydSa%2B%2BFi1hoyUZfDL8AM40fhSA20vTrw0yOsvw%3D%3D\"}]}"},{"key":"CF-RAY","value":"9555197cbe4fd85e-MAN"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Unauthorized\"\n}"}],"_postman_id":"16c3d517-33ef-4ace-81bb-97f217b17096"},{"name":"Confirm UTR","event":[{"listen":"test","script":{"id":"6dd97f6a-0d2c-40bb-b1a4-7ed0138dfec0","exec":[""],"type":"text/javascript","packages":{}}}],"id":"4603303f-748e-4944-bf51-2b2dc4a17950","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Authorization","value":"{{merchant_api_token}}","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"order_id\": \"e010d12b-570b-417e-a781-c8f4261dcd27\",\n    \"customer_transaction_id\": \"409876543210\"\n}\n","options":{"raw":{"language":"json"}}},"url":"https://api.turbopay.com/api/s2s/deposit/confirm","urlObject":{"path":["s2s","deposit","confirm"],"host":["https://api.turbopay.com/api"],"query":[],"variable":[]}},"response":[{"id":"c7caf0e5-4cf2-4630-a34f-b61d6cb6b2a2","name":"200 Success - order confirmed","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Authorization","value":"{{merchant_api_token}}","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"order_id\": \"3a54ba9d-cf38-4dcb-8478-51afdb77d96e\",\n    \"customer_transaction_id\": \"110000000000\"\n}\n","options":{"raw":{"language":"json"}}},"url":"https://api.turbopay.com/api/s2s/deposit/confirm"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 01 Sep 2025 10:09:38 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"vary","value":"Origin"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=v2J3x5iT4D%2FnbM%2F98jghqQHF2jh5SKjdjIAym4xWmH%2B5EVDZqMOsN9T%2F4%2F0vuqJogmlkK63%2Fu63GuhTpclSLL18jzKlmuOKyVvN3eIG6yw%3D%3D\"}]}"},{"key":"Content-Encoding","value":"br"},{"key":"CF-RAY","value":"9783f9207d9fb54c-LHR"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"pending\"\n}"},{"id":"fe0edc3d-1c09-42fc-825a-17a9378d3d51","name":"422 Wrong UTR - already taken","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Authorization","value":"{{merchant_api_token}}","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"order_id\": \"e010d12b-570b-417e-a781-c8f4261dcd27\",\n    \"customer_transaction_id\": \"409876543210\"\n}\n","options":{"raw":{"language":"json"}}},"url":"https://api.turbopay.com/api/s2s/deposit/confirm"},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 01 Sep 2025 09:52:27 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"vary","value":"Origin"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=FcJ6kWaQQpkYOvpF42ByJN6jy0TYP%2BCmGpVermyDPeaPns5PFaTTAPsvPqf06ODICmvu%2BXe%2FxDYvIRaBenjIMOVOMul7eV8GzDDni9kl4A%3D%3D\"}]}"},{"key":"CF-RAY","value":"9783dffb0de0cd1c-LHR"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The selected order id is invalid. (and 1 more error)\",\n    \"errors\": {\n        \"order_id\": [\n            \"The selected order id is invalid.\"\n        ],\n        \"customer_transaction_id\": [\n            \"The customer transaction id has already been taken.\"\n        ]\n    }\n}"}],"_postman_id":"4603303f-748e-4944-bf51-2b2dc4a17950"}],"id":"7c577958-d081-4fe8-9be0-3c5ea253c5db","description":"<p>The Host-to-Host Deposit endpoint allows you to create orders and confirm them by collecting UTR on your own payment page without leaving your website by the end user.</p>\n<h3 id=\"steps-to-make-a-deposit\">Steps to Make a Deposit</h3>\n<h4 id=\"step-1-create-an-order\"><strong>Step 1: Create an Order</strong></h4>\n<ul>\n<li><p><strong>Description</strong>: Initiate the deposit by running <strong>Create Deposit Order</strong> endpoint using the API. Include payment details such as wallet address, wallet name, and a transaction note. To use UPI (Unified Payments Interface) as the payment method, specify <code>upi</code>. For bank transfers, specify <code>bank_transfer</code>.</p>\n<ul>\n<li><p><strong>UPI</strong> (Unified Payments Interface): A real-time payment system that enables instant money transfers between banks using a mobile number or a virtual payment address (VPA).</p>\n</li>\n<li><p><strong>Bank Transfers</strong>: A method of transferring funds directly between bank accounts. Supported methods may include IMPS (Immediate Payment Service), which enables instant, 24/7 bank-to-bank transfers within supported networks.</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Action</strong>: Submit a request with the required details, ensuring the use of the correct API key for authorization.</p>\n</li>\n<li><p><strong>Response:</strong> A successful request returns an HTTP <strong>201 Created</strong> status along with a JSON payload containing the <strong>order details</strong>.</p>\n</li>\n<li><p><strong>Important</strong>: Store the <code>order_id</code> , <code>amount</code> and <code>status</code> securely for further processing.</p>\n</li>\n</ul>\n<p>Example of request body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"method\": \"upi\",\n    \"amount\": 200,\n    \"currency\": \"INR\",\n    \"customer_email\": \"peter-pen@gmail.com\",\n    \"customer_phone\": \"+919876543210\",\n    \"customer_name\": \"Peter Pen\",\n    \"merchant_order_id\": \"e8a5c596-ff82-4529-9b56-ecac6a061c91\",\n    \"merchant_customer_id\": \"995e2bae-dbcc-4549-88d0-73e8a7f74fc3\",\n    \"status_url\": \"https://webhook.site/cc6a5b7c-330b-4a2f-a90e-3cdc8cdaf8df\",\n    \"redirect_url\": \"https://merchant-website.com\",\n    \"traffic\": \"ftd\"\n}\n\n</code></pre>\n<p>Request parameters:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Example</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>method</code></td>\n<td>string</td>\n<td>yes</td>\n<td>One of the available payment methods, set up for your merchant account.</td>\n<td>UPI</td>\n</tr>\n<tr>\n<td><code>amount</code></td>\n<td>float</td>\n<td>yes</td>\n<td>Order amount in two decimal places, 500.00 implies 500 rupees and 00 paisa. For INR - only .00 paisa are accepted. Min and max amounts are indicated in the setup sheet.</td>\n<td>500.00</td>\n</tr>\n<tr>\n<td><code>currency</code></td>\n<td>string</td>\n<td>yes</td>\n<td>Order currency in alpha code in ISO 4217 format setup for your merchant account.</td>\n<td>INR</td>\n</tr>\n<tr>\n<td><code>traffic</code></td>\n<td>string</td>\n<td>yes</td>\n<td>Type of traffic. Only a set number of values are available - ftd, std. Please refer to your setup sheet.</td>\n<td>std</td>\n</tr>\n<tr>\n<td><code>customer_email</code></td>\n<td>string</td>\n<td>no</td>\n<td>Unique customer email of the standard format. Max length 100 characters.</td>\n<td><a href=\"https://mailto:name@mail.com\">name@mail.com</a></td>\n</tr>\n<tr>\n<td><code>customer_phone</code></td>\n<td>string</td>\n<td>no</td>\n<td>Unique customer local mobile number with country code starting from “+”. For India, it is +91 country code then 10 digits starting from 6, 7, 8, or 9.</td>\n<td>+919876543210</td>\n</tr>\n<tr>\n<td><code>customer_name</code></td>\n<td>string</td>\n<td>no</td>\n<td>Customer full name. A string of max length of 300 characters.</td>\n<td>Raj Singh</td>\n</tr>\n<tr>\n<td><code>merchant_order_id</code></td>\n<td>string</td>\n<td>yes</td>\n<td>Unique order or transaction ID in the merchant’s database. Duplicates are not accepted. Max length 100 characters.</td>\n<td>8ba06261-f034-47d0-bf05-8caa4b4da6d4</td>\n</tr>\n<tr>\n<td><code>merchant_customer_id</code></td>\n<td>string</td>\n<td>yes</td>\n<td>Unique customer ID in the merchant’s database. Max length 100 characters.</td>\n<td>27b69064-1be3-4974-8bfe-a9974875ff8a</td>\n</tr>\n<tr>\n<td><code>status_url</code></td>\n<td>string</td>\n<td>yes</td>\n<td>URL hosted by a merchant where we will send all transaction status callbacks. Max length 255 characters.</td>\n<td><a href=\"https://your-domain.com/status\">https://your-domain.com/status</a></td>\n</tr>\n<tr>\n<td><code>redirect_url</code></td>\n<td>string</td>\n<td>yes</td>\n<td>URL hosted by a merchant where the end customer is redirected after the completion of the deposit. This can be both dynamic payment success, fail, pending page, or a static home screen as well. Max length 255 characters.</td>\n<td><a href=\"https://your-domain.com/return\">https://your-domain.com/return</a></td>\n</tr>\n</tbody>\n</table>\n</div><p>Example of succesful response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"wallet_address\": \"username@bankname\",\n    \"wallet_name\": \"Company Name\",\n    \"order_expiration_seconds\": \"600\",\n    \"transaction_note\": \"A1b2c\",\n    \"order_id\": \"c2f0f71a-6f3f-4d65-be01-aa6b0f86cbe1\",\n    \"status\": \"new\"\n}\n\n</code></pre>\n<blockquote>\n<p>For security reasons, please keep <code>order_id</code> private and do not make it available neither to the public nor to end customers. </p>\n</blockquote>\n<p>Response parameters:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Example</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong><code>wallet_address</code></strong></td>\n<td><strong>string</strong></td>\n<td>VPA (UPI ID)</td>\n<td>username@bankname</td>\n</tr>\n<tr>\n<td><strong><code>wallet_name</code></strong></td>\n<td><strong>string</strong></td>\n<td>Merchant of record name</td>\n<td>Company Name</td>\n</tr>\n<tr>\n<td><strong><code>order_expiration_seconds</code></strong></td>\n<td><strong>string</strong></td>\n<td>Order expiration timeout - time required to send UTR before order would transition to Expire status. Normally, 10 minutes (600 seconds).</td>\n<td>600</td>\n</tr>\n<tr>\n<td><strong><code>transaction_note</code></strong></td>\n<td><strong>string</strong></td>\n<td>Transaction note providing a  <br />short description of the  <br />transaction.</td>\n<td>A1b2c</td>\n</tr>\n<tr>\n<td><strong><code>order_id</code></strong></td>\n<td><strong>string</strong></td>\n<td>The ID that identifies the order in our system.</td>\n<td>c2f0f71a-6f3f-4d65-be01-aa6b0f86cbe1</td>\n</tr>\n<tr>\n<td><strong><code>status</code></strong></td>\n<td><strong>string</strong></td>\n<td>Status of the order.</td>\n<td>new</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p>We recommend that you immediately store order_id, amount, and status parameters at your end. </p>\n</blockquote>\n<h4 id=\"step-2-show-payment-form\"><strong>Step 2: Show Payment Form</strong></h4>\n<ul>\n<li><p><strong>Description:</strong> Present the customer with your <strong>own payment form</strong> that displays the <strong>Virtual Payment Address (VPA / UPI ID)</strong> and other transaction details provided in the deposit order response.</p>\n</li>\n<li><p><strong>Action:</strong> Collect the <strong>UTR (Unique Transaction Reference)</strong> from the customer once the deposit is completed. This must be done <strong>within the expiration time</strong> specified in <code>order_expiration_seconds</code>.</p>\n</li>\n</ul>\n<h4 id=\"step-3-confirm-utr\"><strong>Step 3: Confirm UTR</strong></h4>\n<ul>\n<li><p><strong>Description:</strong> Once the customer has completed the UPI payment and provided the <strong>UTR (Unique Transaction Reference)</strong>, you need to confirm the transaction by submitting the UTR to our system. This step ensures the order can be verified and moved to a final status.</p>\n</li>\n<li><p><strong>Action:</strong> Send a <strong>POST</strong> request to the confirmation endpoint using the <code>order_id</code> received in the deposit order response. Include the UTR in the <code>customer_transaction_id</code> field of the request body.</p>\n</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">POST https://api.turbopay.com/api/s2s/deposit/confirm\nContent-Type: application/json\n\n</code></pre>\n<p>Request Body Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"order_id\": \"abc12345\",\n  \"customer_transaction_id\": \"1234567890\"\n}\n\n</code></pre>\n<p><strong>Response:</strong><br />A <strong>HTTP 200 OK</strong> response indicates successful acceptance of the UTR. As a result, the order status will be updated to either <code>success</code> or <code>pending</code>.</p>\n<p><strong>Response example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\"\n}\n\n</code></pre>\n<p>It is strongly recommended to save the order status and adjust respective order/transaction status in your system to deliver goods, services, airtime, wallet top-up, or digital credit.</p>\n<p>At the same time you would receive a <strong>separate webhook</strong> with order status.</p>\n<p>In case of an expired status or other issue you would receive 422 response with respective error message.</p>\n<p><strong>Response example (422):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"The customer transaction id has already been taken.\",\n    \"errors\": {\n        \"customer_transaction_id\": [\n            \"The customer transaction id has already been taken.\"\n        ]\n    }\n}\n\n</code></pre>\n<p>Please refer to the <a href=\"#c7c99060-a145-4e42-abc5-1ec6b2e3f54b\">Order statuses transitions</a> parts for more information.</p>\n","_postman_id":"7c577958-d081-4fe8-9be0-3c5ea253c5db"},{"name":"📤 Withdraw","item":[{"name":"Create Withdraw Order","id":"8d40712f-c25e-46f1-b715-186d7a8fa6cb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Authorization","value":"{{merchant_api_token}}"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"method\": \"bank_transfer\",\n    \"amount\": 11.0,\n    \"currency\": \"INR\",\n    \"merchant_order_id\": \"0d37d396-ab6b-4daf-94c4-aca08c2c50df\",\n    \"merchant_customer_id\": \"44e81f82-5b4d-4815-935a-bc03f56526bc\",\n    \"customer_destination_account\": \"05010041281109\",\n    \"bank_code\": \"HDFC0000240\",\n    \"account_name\": \"Peter Pen\",\n    \"customer_name\": \"Peter Pen\",\n    \"customer_email\": \"peter-pen@gmail.com\",\n    \"customer_phone\": \"+919811000088\",\n    \"status_url\": \"https://webhook.site/96543a6e-31c6-4fc7-b8d4-21c9058ce5d5\",\n    \"traffic\": \"std\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.turbopay.com/api/withdraw/new","urlObject":{"path":["withdraw","new"],"host":["https://api.turbopay.com/api"],"query":[],"variable":[]}},"response":[{"id":"55665f18-d3a1-47a5-a7fc-055274652692","name":"201 Success","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Authorization","value":""},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"method\": \"bank_transfer\",\n    \"amount\": 500.00,\n    \"currency\": \"INR\",\n    \"traffic\": \"std\",\n    \"customer_email\": \"name@mail.com\",\n    \"customer_phone\": \"+919876543210\",\n    \"customer_name\": \"Raj Singh\",\n    \"merchant_order_id\": \"30bfbb2b-f74a-4330-b419-327d1f4d50f9\",\n    \"merchant_customer_id\": \"79c56284-e27f-4fd0-bb77-61b4a9881cc7\",\n    \"customer_bank_account\": \"065432123456789\",\n    \"bank_code\": \"HDFC0000053\",\n    \"status_url\": \"https://merchant.com/status\"\n}\n","options":{"raw":{"language":"json"}}},"url":"https://api.turbopay.com/api/withdraw/new"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 25 Jun 2025 14:23:43 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Vary","value":"Origin"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=KKAgYz9chVOeaSL7ziOKCi1n1tCHZKLkFbFmRP%2FIFSWm6oz6M8JkYQcAy6FfFleU9JxmlQsli1yU0IR8sszU9YSmrMLjxhlb1DMzBeejlVMSr0D9EsBqK8OUEg%3D%3D\"}]}"},{"key":"CF-RAY","value":"95551fbff88e54d5-MAN"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"order_id\": \"291fe219-af94-4512-8ea5-9efd56bf84c3\",\n    \"status\": \"new\"\n}"},{"id":"a992ae72-5682-4f79-8451-4a64afe16a67","name":"422 Error Invalid request","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Authorization","value":"{{merchant_api_token}}"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"method\": \"bank_transfer\",\n    \"amount\": 11.0,\n    \"currency\": \"INR\",\n    \"merchant_order_id\": \"ba7daff8-1ba3-49da-a06f-0344be9a1bb3\",\n    \"merchant_customer_id\": \"1bc8c588-c04d-42ac-9281-04268e3b42b0\",\n    \"customer_destination_account\": \"05010041281109\",\n    \"bank_code\": \"HDFC0000240\",\n    \"account_name\": \"Peter Pen\",\n    \"customer_name\": \"Peter Pen\",\n    \"customer_email\": \"peter-pen@gmail.com\",\n    \"customer_phone\": \"+919811000088\",\n    \"status_url\": \"https://webhook.site/96543a6e-31c6-4fc7-b8d4-21c9058ce5d5\",\n    \"traffic\": \"std\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.turbopay.com/api/withdraw/new"},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 25 Jun 2025 14:20:14 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Vary","value":"Origin"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=4ECmfOC3gHWRzJF4qL6DOJv6mVKKleW6DI0pXBtZA2Akq4GLpAzVHZof39Wr4FPH8zYZ9xVs%2FODeLrNHkR5yOa%2F40Mjgh%2FEyxeVBcpRzE75p%2BFAwEXEgcUSysQ%3D%3D\"}]}"},{"key":"CF-RAY","value":"95551ab60e3ad85e-MAN"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The customer bank account field is required.\",\n    \"errors\": {\n        \"customer_bank_account\": [\n            \"The customer bank account field is required.\"\n        ]\n    }\n}"},{"id":"fb768624-9c51-435a-8ec3-1aade14dd25a","name":"422 Order already taken","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Authorization","value":"{{merchant_api_token}}"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"method\": \"bank_transfer\",\n    \"amount\": 500.00,\n    \"currency\": \"INR\",\n    \"traffic\": \"std\",\n    \"customer_email\": \"name@mail.com\",\n    \"customer_phone\": \"+919876543210\",\n    \"customer_name\": \"Raj Singh\",\n    \"merchant_order_id\": \"30bfbb2b-f74a-4330-b419-327d1f4d50f8\",\n    \"merchant_customer_id\": \"79c56284-e27f-4fd0-bb77-61b4a9881cc7\",\n    \"customer_bank_account\": \"065432123456789\",\n    \"bank_code\": \"HDFC0000053\",\n    \"status_url\": \"https://merchant.com/status\"\n}\n","options":{"raw":{"language":"json"}}},"url":"https://api.turbopay.com/api/withdraw/new"},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 25 Jun 2025 14:22:22 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Vary","value":"Origin"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=%2FUPj19ktwNCdqrX1aXR2665aYuzQRQ1nkKOw9fOrohWS3qszV1eI0ZRRMJZj9kvFkCzJyI4u%2Fw8Aql4PMCE%2BHAV7bl%2FutspgY%2FeqT2Ufrlj3sM2IQHrr%2FeU%3D\"}]}"},{"key":"CF-RAY","value":"95551dda08c0a935-MAN"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The merchant order id has already been taken.\",\n    \"errors\": {\n        \"merchant_order_id\": [\n            \"The merchant order id has already been taken.\"\n        ]\n    }\n}"}],"_postman_id":"8d40712f-c25e-46f1-b715-186d7a8fa6cb"}],"id":"94c485e2-d5be-4958-8276-14b6ea923a99","description":"<p>The <strong>Withdraw</strong> enables you to create a transaction to process payouts to your customers. Each request must be authenticated using your API key, following the same method as with deposit transactions.</p>\n<h3 id=\"steps-to-make-a-withdraw\">Steps to Make a Withdraw</h3>\n<h4 id=\"step-1-create-a-withdrawal-order\">Step 1: Create a Withdrawal Order</h4>\n<p><strong>Description:</strong> Initiate the payout by calling the Create Withdrawal Order endpoint using the API. Include payment details such as the payment method, customer information, and the bank account details of the beneficiary.<br /><strong>Action:</strong> Submit a <code>POST</code> request with the required details (e.g., <code>amount</code>, <code>currency</code>, <code>customer_bank_account</code>, etc.), ensuring the use of your API key for authorization.<br /><strong>Response:</strong> A successful response includes an <code>order_id</code> and the initial transaction status (<code>new</code>).<br /><strong>Important:</strong> Securely store the <code>order_id</code>, <code>amount</code>, and <code>status</code> for future status updates and transaction reconciliation.</p>\n<p>Example of request body:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"method\": \"bank_transfer\",\n    \"amount\": 500.00,\n    \"currency\": \"INR\",\n    \"traffic\": \"std\",\n    \"customer_email\": \"name@mail.com\",\n    \"customer_phone\": \"+919876543210\",\n    \"customer_name\": \"Raj Singh\",\n    \"merchant_order_id\": \"30bfbb2b-f74a-4330-b419-327d1f4d50f8\",\n    \"merchant_customer_id\": \"79c56284-e27f-4fd0-bb77-61b4a9881cc7\",\n    \"customer_bank_account\": \"065432123456789\",\n    \"bank_code\": \"HDFC0000053\",\n    \"status_url\": \"https://merchant.com/status\"\n}\n\n</code></pre>\n<p>Request parameters:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>ame</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Example</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>method</code></td>\n<td>string</td>\n<td>yes</td>\n<td>One of the available payment methods, set up for your merchant account.</td>\n<td>UPI</td>\n</tr>\n<tr>\n<td><code>amount</code></td>\n<td>float</td>\n<td>yes</td>\n<td>Order amount in two decimal places, 500.00 implies 500 rupees and 00 paisa. For INR - only .00 paisa are accepted. Min and max amounts are indicated in the setup sheet.</td>\n<td>500.00</td>\n</tr>\n<tr>\n<td><code>currency</code></td>\n<td>string</td>\n<td>yes</td>\n<td>Order currency in alpha code in ISO 4217 format setup for your merchant account.</td>\n<td>INR</td>\n</tr>\n<tr>\n<td><code>traffic</code></td>\n<td>string</td>\n<td>yes</td>\n<td>Type of traffic. Only a set number of values are available - ftd, std. Please refer to your setup sheet.</td>\n<td>std</td>\n</tr>\n<tr>\n<td><code>customer_email</code></td>\n<td>string</td>\n<td>no</td>\n<td>Unique customer email of the standard format. Max length 100 characters.</td>\n<td><a href=\"https://mailto:name@mail.com\">name@mail.com</a></td>\n</tr>\n<tr>\n<td><code>customer_phone</code></td>\n<td>string</td>\n<td>no</td>\n<td>Unique customer local mobile number with country code starting from “+”. For India, it is +91 country code then 10 digits starting from 6, 7, 8, or 9.</td>\n<td>+919876543210</td>\n</tr>\n<tr>\n<td><code>customer_name</code></td>\n<td>string</td>\n<td>no</td>\n<td>Customer full name. A string of max length of 300 characters.</td>\n<td>Raj Singh</td>\n</tr>\n<tr>\n<td><code>merchant_order_id</code></td>\n<td>string</td>\n<td>yes</td>\n<td>Unique order or transaction ID in the merchant’s database. Duplicates are not accepted. Max length 100 characters.</td>\n<td>8ba06261-f034-47d0-bf05-8caa4b4da6d4</td>\n</tr>\n<tr>\n<td><code>merchant_customer_id</code></td>\n<td>string</td>\n<td>yes</td>\n<td>Unique customer ID in the merchant’s database. Max length 100 characters.</td>\n<td>27b69064-1be3-4974-8bfe-a9974875ff8a</td>\n</tr>\n<tr>\n<td><code>customer_bank_account</code></td>\n<td>integer</td>\n<td>yes</td>\n<td><strong>A valid beneficiary bank account number. Between 9 and 18 characters. Can have a leading 0, which should be passed on.</strong></td>\n<td>065432123456789</td>\n</tr>\n<tr>\n<td><code>bank_code</code></td>\n<td>string</td>\n<td>yes</td>\n<td>A valid beneficiary bank code. For bank_transfer in INR, it is IFSC code - a unique identifier of a bank branch, which has to be 11 characters.</td>\n<td>HDFC0000053</td>\n</tr>\n<tr>\n<td><code>status_url</code></td>\n<td>string</td>\n<td>yes</td>\n<td>URL hosted by a merchant where we will send all transaction status callbacks. Max length 255 characters.</td>\n<td><a href=\"https://your-domain.com/status\">https://your-domain.com/status</a></td>\n</tr>\n</tbody>\n</table>\n</div><p>Example of succesful response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"order_id\": \"c2f0f71a-6f3f-4d65-be01-aa6b0f86cbe2\",\n    \"status\": \"new\"\n}\n\n</code></pre>\n<blockquote>\n<p>For security reasons, please keep <code>order_id</code> private and do not make it available neither to the public nor to end customers. </p>\n</blockquote>\n<p>Response parameters:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Name</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Example</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>order_id</code></td>\n<td>string</td>\n<td>The ID that identifies the order in our system.</td>\n<td>c2f0f71a-6f3f-4d65-be01-aa6b0f86cbe1</td>\n</tr>\n<tr>\n<td><code>status</code></td>\n<td>string</td>\n<td>Status of the order.</td>\n<td>new</td>\n</tr>\n</tbody>\n</table>\n</div><p>In case of an error in the request data, our server will respond with a respective <a href=\"#790fd1c0-bc6e-4e05-ae5a-f366c853a996\">Response code</a> and message.</p>\n<h4 id=\"step-2-monitor-the-order-status\">Step 2: Monitor the Order Status</h4>\n<p><strong>Description:</strong> Track the withdrawal order’s progress as it transitions through statuses (<code>new</code>, <code>pending</code>, <code>success</code>, <code>failed</code>). Each status update is sent to the merchant-hosted <code>status_url</code> provided during order creation.<br /><strong>Action:</strong> Use the <code>order_id</code> to monitor the transaction status via webhook callbacks or API queries. Ensure you handle status changes appropriately in your system.<br /><strong>Response:</strong> The final status will be either <code>success</code> or <code>failed</code>. Updates will include the <code>order_id</code> and the current status.<br /><strong>Important:</strong> Handle the final status (<code>success</code> or <code>failed</code>) carefully, and consider rare cases where a <code>success</code> status may transition to <code>failed</code>.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Status</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>new</code></td>\n<td>This status is assigned to any new order initially</td>\n</tr>\n<tr>\n<td><code>pending</code></td>\n<td>Order gets this status in certain cases, for example when the customer confirms payment on the hosted payment page by clicking/tapping the respective button</td>\n</tr>\n<tr>\n<td><code>success</code></td>\n<td>This is the <strong>Final</strong> status of the successful withdrawal order. Once received you can mark the respective order/transaction as successful in your system.</td>\n</tr>\n<tr>\n<td><code>failed</code></td>\n<td>This is the <strong>Final</strong> status of the failed withdrawal order. Once received you can mark the respective order/transaction as unsuccessful in your system.</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p>Final status normally means that it cannot be changed anymore. However, in certain rare cases depending on the payment method and flow, we can change the order status from success to failed, which will be clearly communicated to you each time. </p>\n</blockquote>\n<p>Each change of the order status will trigger a webhook to your designated status URL with the respective order_id and status. Please refer to the <a href=\"#fcf995e0-ae08-41f7-a3a6-21d628092802\">Webhooks</a> part for more information.</p>\n","_postman_id":"94c485e2-d5be-4958-8276-14b6ea923a99"},{"name":"Balance","item":[{"name":"Balance check","id":"37b9ec46-2044-416a-b46f-e8f77906dcc6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"{{merchant_api_token}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":"https://api.turbopay.com/api/balance?currency=","urlObject":{"path":["balance"],"host":["https://api.turbopay.com/api"],"query":[{"key":"currency","value":""}],"variable":[]}},"response":[{"id":"72044bce-ab93-4995-9d99-ce4e506c3aa8","name":"200 Success","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"https://api.turbopay.com/api/balance?currency=","host":["https://api.turbopay.com/api"],"path":["balance"],"query":[{"key":"currency","value":""}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 25 Jun 2025 14:26:56 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Vary","value":"Origin"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Ulhi%2F9AHv%2FQtwpUDxb6VOYwNwXL4fWYHtiDkVHbp6uK%2BKK%2FBeJT6zUbfuQXPDjqYUC6KtNj01arw4PYqX7eFs2VRKEDDKNqyaPe1kYkVal%2F5%2BMxkP7dIOGvcrA%3D%3D\"}]}"},{"key":"Content-Encoding","value":"br"},{"key":"CF-RAY","value":"955524861a7bccb2-MAN"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"account_id\": \"alisa-test\",\n    \"currency\": \"INR\",\n    \"available_balance\": \"-2.2800\",\n    \"total_balance\": \"-2.2800\"\n}"},{"id":"7d7a6254-8e85-4442-98f8-3d4405140e2d","name":"401 Unauthorized","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"{{merchant_api_token}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"https://api.turbopay.com/api/balance?currency=","host":["https://api.turbopay.com/api"],"path":["balance"],"query":[{"key":"currency","value":""}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 25 Jun 2025 14:27:46 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Vary","value":"Origin"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=ZO7b2gBzW0DMIOw3VeG2pZ%2B7aOg9Pn7AF%2FdDRdHwP62K1C59socmWhi%2BWzq3Mdbo6bKz%2BOkH%2FOZAdJrQ%2BgMM8iL32iTlkqRD3iatH66AMsNktnLregyze9RV8Q%3D%3D\"}]}"},{"key":"CF-RAY","value":"955525c79875ccb2-MAN"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Unauthorized\"\n}"}],"_postman_id":"37b9ec46-2044-416a-b46f-e8f77906dcc6"}],"id":"58f5e838-b115-4fea-a0a4-e264b510cff3","description":"<p>The <strong>Balance</strong> endpoint provides access to both your total and available balance. Please remember to authenticate each request with the API key in the same way as Deposits.</p>\n<blockquote>\n<p>The default balance endpoint returns INR currency if not specified. To specify currency, use the param  in the request.</p>\n</blockquote>\n","_postman_id":"58f5e838-b115-4fea-a0a4-e264b510cff3"},{"name":"🪝Webhooks","item":[],"id":"1a91eb14-42ca-4d0f-b658-63dbe62b02ff","description":"<p>You should provide a webhook URL (called <code>status_url</code>) with each deposit or withdrawal request you make. This will ensure that we send a webhook with order status to the most up-to-date and correct address.</p>\n<p>Due to the specific nature of some of our payment methods and flows, each order can change its status and amount within time and may not possess final status (<code>success</code> or <code>failed</code>) immediately. Thus maintaining a webhook URL is vital to efficiently process payments for your customers. We recommend that you save and update your records with all the information received.</p>\n<p>A webhook URL is simply a <strong>POST endpoint</strong> that our server sends updates to.</p>\n<p>The URL needs to parse a JSON request and return a <strong>200 OK</strong> in the HTTP header.</p>\n<hr />\n<h3 id=\"deposit-webhook-example\">Deposit Webhook Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"order_id\": \"849655cf-ceba-49bc-951a-cbfbf8d63274\",\n  \"merchant_order_id\": \"O_XVajPtgGFk173LluM5oKb\",\n  \"status\": \"success\",\n  \"reason\": \"some reason\",\n  \"amount\": \"200.00\",\n  \"utr\": \"409876543210\",\n  \"target_upi_id\": \"deposit@test\",\n  \"merchant_customer_id\": \"aaaaaaa99-1290-3e9f-a08e-c03aedc68b35\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"withdrawal-webhook-example\">Withdrawal Webhook Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"order_id\": \"c2f0f71a-6f3f-4d65-be01-aa6b0f86cbe2\",\n  \"merchant_order_id\": \"ABC00001\",\n  \"status\": \"failed\",\n  \"reason\": \"some reason\",\n  \"amount\": \"300\",\n  \"utr\": \"409876543210\",\n  \"error_code\": \"ERR_001\",\n  \"error_message\": \"Payout service under maintenance. Try again later.\"\n}\n\n</code></pre>\n<p>⚠️ <strong>Note:</strong></p>\n<ul>\n<li><p>Fields <code>error_code</code> and <code>error_message</code> are present <strong>only if</strong> <code>\"status\": \"failed\"</code>.</p>\n</li>\n<li><p>If <code>\"status\": \"success\"</code>, these fields will not be included.</p>\n</li>\n</ul>\n<h3 id=\"additional-details\">Additional Details</h3>\n<ul>\n<li><p><strong>utr</strong> → Unique transaction reference received from the bank.</p>\n</li>\n<li><p><strong>reason</strong> → Short description of a failed order reason.</p>\n</li>\n<li><p><strong>merchant_order_id</strong> → The order/transaction reference of the merchant provided during the initial create order request.</p>\n</li>\n</ul>\n<p>The system will automatically retry sending the webhook <strong>3 times</strong>.</p>\n<p>If delivery still fails, we recommend manually resend it from the Back Office and verify that your server is able to receive it.</p>\n<p><strong>Signature validation</strong></p>\n<p>Since your webhook URL is publicly available and sensitive data about order ID and its status is transmitted, you need to keep your webhook URL confidential and verify that events originate from our server and not from a bad actor.</p>\n<blockquote>\n<p><strong>We may not accept responsibility for non-validated webhooks. If you do not perform validation you’re accepting the risks of malicious order statuses.</strong> </p>\n</blockquote>\n<p>Events sent from KarmaPe carry the x-pay-signature header. The value of this header is an HMAC SHA256 signature of the event payload (JSON string) signed using your webhook key.</p>\n<blockquote>\n<p><strong>Verifying the header signature should be done before processing the event. As a reference you can use this sandbox:</strong> <a href=\"https://www.devglan.com/online-tools/hmac-sha256-online\">https://www.devglan.com/online-tools/hmac-sha256-online</a> </p>\n</blockquote>\n<p>Each change of the order status will trigger a webhook to your status URL with the respective <code>order_id</code>, <code>amount</code>, and <code>status</code>.</p>\n<p>Once we proceed to processing of an order, you will get a pending order status notification:</p>\n<p><strong>Example body (JSON string) :</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"order_id\":\"849655cf-ceba-49bc-951a-cbfbf8d63274\",\"merchant_order_id\":\"O_XVajPtgGFk173LluM5oKb\",\"status\":\"pending\",\"reason\":\"some reason\",\"amount\":\"200.00\",\"utr\":\"409876543210\",\"target_upi_id\":  \"deposit@test\", \"merchant_customer_id\":  \"aaaaaaa99-1290-3e9f-a08e-c03aedc68b35\"}\n\n</code></pre>\n<p>Once the payment is completed and we verify it, you will get a successful order status notification.</p>\n<p>You can also manually trigger a webhook for an order by using the “Resend callback” button in the back office.</p>\n<blockquote>\n<p>Depending on the payment method and flow an order can change not only its status but also the amount. Your system should be able to receive an order amount different from the amount initially requested and adjust the scope of service or product quantity respectively. You will notice that each order has a requested amount and an actual amount in our back office, but you would receive only one most actual amount in the webhook. In case your system does not accept different requested and actual amounts, please let us know about that during the integration process. </p>\n</blockquote>\n<blockquote>\n<p>If you offer digital value like airtime, wallet top-up, digital credit, etc, always confirm that you have not already delivered value for that transaction to avoid double fulfillments, especially, if you also use webhooks. </p>\n</blockquote>\n<p>It is recommended to store <code>order_id</code> in your system for reconciliation purposes.</p>\n","_postman_id":"1a91eb14-42ca-4d0f-b658-63dbe62b02ff"},{"name":"Order status check","item":[{"name":"Status check","id":"4a268438-b0b8-4726-b6d9-44a794dc0bdb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"{{merchant_api_token}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":"https://api.turbopay.com/api/order/status/{{order_id}}","urlObject":{"path":["order","status","{{order_id}}"],"host":["https://api.turbopay.com/api"],"query":[],"variable":[]}},"response":[{"id":"eeec40a9-da64-435f-86f5-e1f812d004ff","name":"200 Success order","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"{{merchant_api_token}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":"https://api.turbopay.com/api/order/status/{{order_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 25 Jun 2025 14:35:11 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Ratelimit-Limit","value":"60"},{"key":"X-Ratelimit-Remaining","value":"58"},{"key":"Vary","value":"Origin"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=OshPR%2F5%2B2ZjqnHIjil7XqTMo%2FYQusXHOxQahuNoyJ0MN0CDa0CUJDE3qJ0eJ5iB7u6uQ%2F%2F2vTZaNFbsZvdF5eEt0KUTM2vRot6HK7BsZUJhORzmKizsuFFo%3D\"}]}"},{"key":"Content-Encoding","value":"br"},{"key":"CF-RAY","value":"9555309b0f9ca0a1-MAN"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"order_id\": \"5fd7ec21-bfa1-4c12-b204-aebe13cf155f\",\n    \"merchant_order_id\": \"f1b5668a-cbdc-48e5-a858-c1b8e0cd29ea\",\n    \"status\": \"success\",\n    \"reason\": \"pending -> success\",\n    \"amount\": \"345.00\",\n    \"utr\": \"456789123457\"\n}"},{"id":"deed8314-e6d8-47b1-9a79-4026282dadb3","name":"200 Expired order","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":"https://api.turbopay.com/api/api/order/status/{{order_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 25 Jun 2025 14:32:32 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Ratelimit-Limit","value":"60"},{"key":"X-Ratelimit-Remaining","value":"59"},{"key":"Vary","value":"Origin"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=YwqGHHej9HXiWmdueUAPVKGUyikHCJ9rwZIpNM%2B8ZbgE8mO0CY3s1rDkxbCeRm5IqAs5ooGvjf1eVe2pFkOMEeP3WrOGWMQRmOHBpBR9mR9GQnW62QcHgfMZXw%3D%3D\"}]}"},{"key":"Content-Encoding","value":"br"},{"key":"CF-RAY","value":"95552cbc4f66b3fe-MAN"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"order_id\": \"75df4f3a-e1a7-4b0a-b3a8-8ce8405a7adb\",\n    \"merchant_order_id\": \"8a42590b-0390-4be4-ac8b-cbe0fa3193a8\",\n    \"status\": \"expired\",\n    \"reason\": \"new -> expired: Form expired\",\n    \"amount\": \"2000.00\",\n    \"utr\": null\n}"},{"id":"0dd97c53-8a0e-49d1-805b-025b3a0ea234","name":"200 Failed order","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"{{merchant_api_token}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":"https://api.turbopay.com/api/order/status/{{order_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 25 Jun 2025 14:33:22 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Ratelimit-Limit","value":"60"},{"key":"X-Ratelimit-Remaining","value":"58"},{"key":"Vary","value":"Origin"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=g2sVVS8CAE1P5lj610pF3eW20MjvtEsTvUmOkhn3xLkAFcLdJ8mSWl%2FiLIXBLVq0Vf1FtssaIAFxN8HlWrgeiY1DnTCtuVLD3NPkkEM5qJ1%2FVdXef4YU6EDLQA%3D%3D\"}]}"},{"key":"Content-Encoding","value":"br"},{"key":"CF-RAY","value":"95552df12f82b3fe-MAN"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"order_id\": \"066771d5-975f-4ede-8ec2-49bdd0de0738\",\n    \"merchant_order_id\": \"e9061341-14a8-4d2f-b594-a9d518dc87ec\",\n    \"status\": \"failed\",\n    \"reason\": \"new -> cancelled: By user\",\n    \"amount\": \"555.00\",\n    \"utr\": null\n}"},{"id":"7f20a320-9a18-4606-8494-b114387674c1","name":"200 New order","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"{{merchant_api_token}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":"https://api.turbopay.com/api/order/status/{{order_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 25 Jun 2025 14:34:22 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Ratelimit-Limit","value":"60"},{"key":"X-Ratelimit-Remaining","value":"59"},{"key":"Vary","value":"Origin"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=LM7IbRmUSJt9PQQGbHITNZThCfuY9dSYcCnEn13ar4q9RZjerQRKP%2ByBKmpcQfVPCPkCV6Kkab4L3b4STWGQkvlT70ZWBIcovCiOHxszuI2zV3hDlHIcja0%3D\"}]}"},{"key":"Content-Encoding","value":"br"},{"key":"CF-RAY","value":"95552f6cfe2da0a1-MAN"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"order_id\": \"da3a460b-7f04-4bf8-8e03-fd4fe398cc1f\",\n    \"merchant_order_id\": \"6dd41604-c662-486d-bcfe-889723e5693d\",\n    \"status\": \"new\",\n    \"reason\": \"\",\n    \"amount\": \"444.00\",\n    \"utr\": null\n}"},{"id":"e438b0e0-0a91-499f-8e31-c0fde5586aab","name":"200 Pending order","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"{{merchant_api_token}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":"https://api.turbopay.com/api/order/status/{{order_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 25 Jun 2025 14:36:06 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Ratelimit-Limit","value":"60"},{"key":"X-Ratelimit-Remaining","value":"59"},{"key":"Vary","value":"Origin"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=9ZTF8e3s5BmicQWtZOFhFty3ZQIdoo7i5OPnBYLbgHwKwwofix5hFOhEBZM%2BdXfXzlFWO6%2Fwj%2B9tcwEVjSkplRgWnekm%2FU5Cm1sASaUOR%2F%2FYuGqM%2BhgT%2BNM%3D\"}]}"},{"key":"Content-Encoding","value":"br"},{"key":"CF-RAY","value":"955531f48cc6a0a1-MAN"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"order_id\": \"da3a460b-7f04-4bf8-8e03-fd4fe398cc1f\",\n    \"merchant_order_id\": \"6dd41604-c662-486d-bcfe-889723e5693d\",\n    \"status\": \"pending\",\n    \"reason\": \"new -> pending: Order is pending\",\n    \"amount\": \"444.00\",\n    \"utr\": null\n}"},{"id":"6cc3e6d5-c405-43da-bd10-8b955e71baa2","name":"200 Chargeback order","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"{{merchant_api_token}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":"https://api.turbopay.com/api/order/status/{{order_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 25 Jun 2025 14:38:03 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Ratelimit-Limit","value":"60"},{"key":"X-Ratelimit-Remaining","value":"59"},{"key":"Vary","value":"Origin"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=BwYN5tZilD7dShTLmvvved9GeydZMGtt1DNLQtk5lPtnQFwdh%2Fpo892TO18YLI8%2F6Wih4yAwhZFGNR7glx30ewXejoqS53yPCX5%2FjWrwCJQQIQnREmNZeHYpXw%3D%3D\"}]}"},{"key":"Content-Encoding","value":"br"},{"key":"CF-RAY","value":"955534ce2f2accb4-MAN"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"order_id\": \"e2430e2c-dce6-4981-80bd-950304673226\",\n    \"merchant_order_id\": \"2cd17b79-5ea6-45c6-a1b6-4b63f0bea44e\",\n    \"status\": \"chargeback\",\n    \"reason\": \"test reason\",\n    \"amount\": \"300.00\",\n    \"utr\": null\n}"},{"id":"98e2cf14-eee7-42f9-a380-024471a75061","name":"401 Unauthorized","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"{{merchant_api_token}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":"https://api.turbopay.com/api/order/status/{{order_id}}"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 25 Jun 2025 14:38:42 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Vary","value":"Origin"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=ztBf9acg5%2BhFQoLjEgS5rbPnwdGvhHrdqmU9JPBs0nakZ%2FaIQzPVlqvgySN23z8YciMye3ukXt6IBpzj%2FK973pBJL8YkAhe4RzCxxsFzEWElmg5QVPUMjejYzA%3D%3D\"}]}"},{"key":"CF-RAY","value":"955535c6ea64ccb4-MAN"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Unauthorized\"\n}"},{"id":"c40ecc58-35f2-4470-afce-9dca6645513e","name":"404 Order not found","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"{{merchant_api_token}}","type":"text"},{"key":"Accept","value":"application/json","type":"text"}],"url":"https://api.turbopay.com/api/order/status/{{order_id}}"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 25 Jun 2025 14:39:36 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Server","value":"cloudflare"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Vary","value":"Origin"},{"key":"Cf-Cache-Status","value":"DYNAMIC"},{"key":"Nel","value":"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"},{"key":"Report-To","value":"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=W%2B1zz64u2CpajA9OFF4aeTHfUzTaH%2Bs7S3aVj4nTjPBdQ%2FOcvgrtUEKtHp99qRoOiCX%2FI7IQnbzpvR6pTVzEIeTjesvdhYMrh106TL%2B%2FZK3VsFvlVd%2BzdWH1ow%3D%3D\"}]}"},{"key":"Content-Encoding","value":"br"},{"key":"CF-RAY","value":"955537190bd3ccb4-MAN"},{"key":"alt-svc","value":"h3=\":443\"; ma=86400"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The route api/order/status/e2430e2c-dce6-4981-80bd-950304673 could not be found.\",\n    \"exception\": \"Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\NotFoundHttpException\",\n    \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Routing/AbstractRouteCollection.php\",\n    \"line\": 45,\n    \"trace\": [\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Routing/CompiledRouteCollection.php\",\n            \"line\": 144,\n            \"function\": \"handleMatchedRoute\",\n            \"class\": \"Illuminate\\\\Routing\\\\AbstractRouteCollection\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php\",\n            \"line\": 763,\n            \"function\": \"match\",\n            \"class\": \"Illuminate\\\\Routing\\\\CompiledRouteCollection\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php\",\n            \"line\": 750,\n            \"function\": \"findRoute\",\n            \"class\": \"Illuminate\\\\Routing\\\\Router\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Routing/Router.php\",\n            \"line\": 739,\n            \"function\": \"dispatchToRoute\",\n            \"class\": \"Illuminate\\\\Routing\\\\Router\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php\",\n            \"line\": 201,\n            \"function\": \"dispatch\",\n            \"class\": \"Illuminate\\\\Routing\\\\Router\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 170,\n            \"function\": \"{closure:Illuminate\\\\Foundation\\\\Http\\\\Kernel::dispatchToRouter():198}\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Kernel\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/FlushEventsMiddleware.php\",\n            \"line\": 13,\n            \"function\": \"{closure:Illuminate\\\\Pipeline\\\\Pipeline::prepareDestination():168}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 209,\n            \"function\": \"handle\",\n            \"class\": \"Sentry\\\\Laravel\\\\Http\\\\FlushEventsMiddleware\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php\",\n            \"line\": 45,\n            \"function\": \"{closure:{closure:Illuminate\\\\Pipeline\\\\Pipeline::carry():184}:185}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 209,\n            \"function\": \"handle\",\n            \"class\": \"Sentry\\\\Laravel\\\\Http\\\\SetRequestIpMiddleware\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php\",\n            \"line\": 31,\n            \"function\": \"{closure:{closure:Illuminate\\\\Pipeline\\\\Pipeline::carry():184}:185}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 209,\n            \"function\": \"handle\",\n            \"class\": \"Sentry\\\\Laravel\\\\Http\\\\SetRequestMiddleware\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/app/Http/Middleware/InjectJsonAcceptTypeHeader.php\",\n            \"line\": 14,\n            \"function\": \"{closure:{closure:Illuminate\\\\Pipeline\\\\Pipeline::carry():184}:185}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 209,\n            \"function\": \"handle\",\n            \"class\": \"App\\\\Http\\\\Middleware\\\\InjectJsonAcceptTypeHeader\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/app/Http/Middleware/XRequestId.php\",\n            \"line\": 17,\n            \"function\": \"{closure:{closure:Illuminate\\\\Pipeline\\\\Pipeline::carry():184}:185}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 209,\n            \"function\": \"handle\",\n            \"class\": \"App\\\\Http\\\\Middleware\\\\XRequestId\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/app/Http/Middleware/RequestHeaderXTimeZone.php\",\n            \"line\": 25,\n            \"function\": \"{closure:{closure:Illuminate\\\\Pipeline\\\\Pipeline::carry():184}:185}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 209,\n            \"function\": \"handle\",\n            \"class\": \"App\\\\Http\\\\Middleware\\\\RequestHeaderXTimeZone\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php\",\n            \"line\": 62,\n            \"function\": \"{closure:{closure:Illuminate\\\\Pipeline\\\\Pipeline::carry():184}:185}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/app/Http/Middleware/HandleCorsWithMids.php\",\n            \"line\": 22,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Http\\\\Middleware\\\\HandleCors\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 209,\n            \"function\": \"handle\",\n            \"class\": \"App\\\\Http\\\\Middleware\\\\HandleCorsWithMids\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php\",\n            \"line\": 21,\n            \"function\": \"{closure:{closure:Illuminate\\\\Pipeline\\\\Pipeline::carry():184}:185}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php\",\n            \"line\": 31,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\TransformsRequest\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 209,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\ConvertEmptyStringsToNull\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php\",\n            \"line\": 21,\n            \"function\": \"{closure:{closure:Illuminate\\\\Pipeline\\\\Pipeline::carry():184}:185}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php\",\n            \"line\": 51,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\TransformsRequest\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 209,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\TrimStrings\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php\",\n            \"line\": 27,\n            \"function\": \"{closure:{closure:Illuminate\\\\Pipeline\\\\Pipeline::carry():184}:185}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 209,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Http\\\\Middleware\\\\ValidatePostSize\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php\",\n            \"line\": 110,\n            \"function\": \"{closure:{closure:Illuminate\\\\Pipeline\\\\Pipeline::carry():184}:185}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 209,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\PreventRequestsDuringMaintenance\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php\",\n            \"line\": 62,\n            \"function\": \"{closure:{closure:Illuminate\\\\Pipeline\\\\Pipeline::carry():184}:185}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 209,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Http\\\\Middleware\\\\HandleCors\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php\",\n            \"line\": 58,\n            \"function\": \"{closure:{closure:Illuminate\\\\Pipeline\\\\Pipeline::carry():184}:185}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/app/Http/Middleware/TrustProxies.php\",\n            \"line\": 36,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Http\\\\Middleware\\\\TrustProxies\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 209,\n            \"function\": \"handle\",\n            \"class\": \"App\\\\Http\\\\Middleware\\\\TrustProxies\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php\",\n            \"line\": 22,\n            \"function\": \"{closure:{closure:Illuminate\\\\Pipeline\\\\Pipeline::carry():184}:185}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 209,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\InvokeDeferredCallbacks\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Middleware.php\",\n            \"line\": 79,\n            \"function\": \"{closure:{closure:Illuminate\\\\Pipeline\\\\Pipeline::carry():184}:185}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 209,\n            \"function\": \"handle\",\n            \"class\": \"Sentry\\\\Laravel\\\\Tracing\\\\Middleware\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 127,\n            \"function\": \"{closure:{closure:Illuminate\\\\Pipeline\\\\Pipeline::carry():184}:185}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php\",\n            \"line\": 176,\n            \"function\": \"then\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php\",\n            \"line\": 145,\n            \"function\": \"sendRequestThroughRouter\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Kernel\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/vendor/laravel/framework/src/Illuminate/Foundation/Application.php\",\n            \"line\": 1220,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Kernel\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/public/index.php\",\n            \"line\": 18,\n            \"function\": \"handleRequest\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Application\",\n            \"type\": \"->\"\n        }\n    ]\n}"}],"_postman_id":"4a268438-b0b8-4726-b6d9-44a794dc0bdb"}],"id":"8bda7a6e-1384-439b-a069-b09cf0371975","description":"<p>To get current order status and initiate a webhook to your server you can use Order status check endpoint. Please make sure that you use the standard authentication with your API key. Keep in mind that the primary method for receiving status updates is through webhooks; this endpoint should only be used in rare cases where the webhook was not received. Please note that this endpoint is rate-limited to 60 requests per minute.</p>\n<h4 id=\"by-order-id\">By Order ID</h4>\n<p><strong>Request:</strong> <strong><code>GET</code></strong> https://api.turbopay.com/api/order/status/{{order_id}}</p>\n<p>No JSON body is required. Parameter {{order_id}} implies KarmaPe order ID, not merchant’s.</p>\n<p><strong>Response</strong><br />In case of a successful result, you will receive a 200 response and JSON with order details:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"order_id\": \"c2f0f71a-6f3f-4d65-be01-aa6b0f86cbe2\",\n    \"merchant_order_id\": \"ABC00001\",\n    \"status\": \"success\",\n    \"reason\": \"some reason\",\n    \"amount\": \"300\",\n    \"utr\": \"409876543210\"\n}\n\n</code></pre>\n<p>Simultaneously a webhook with order status to your status URL will be initiated.</p>\n<p>In case of a failed result, you will receive a 4 response code and JSON with details:</p>\n<h4 id=\"by-merchant-order-id\"><strong>By Merchant Order ID</strong></h4>\n<p>Request: <strong><code>GET</code></strong> https://api.turbopay.com/api/merchantorder/status/{{merchant_order_id}}</p>\n<p>No JSON body is required. Parameter {{merchant_order_id}} implies the Merchant’s Order ID, not KarmaPe’s.</p>\n","_postman_id":"8bda7a6e-1384-439b-a069-b09cf0371975"},{"name":"Response codes","item":[],"id":"82cf251f-6d64-45eb-9a9e-10748c187c97","description":"<p>Our API is RESTful and as such, uses conventional HTTP response codes to indicate the success or failure of requests. Some of the most common response examples include:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Response code</th>\n<th>Error message</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong><code>200</code></strong></td>\n<td>n/a</td>\n<td>The request has been successful.</td>\n</tr>\n<tr>\n<td><code>201</code></td>\n<td>n/a</td>\n<td>The request has been fulfilled and a new resource has been created as a result.</td>\n</tr>\n<tr>\n<td><code>401</code></td>\n<td>Unauthorized</td>\n<td>Please use the correct API key and format to authorize your requests.</td>\n</tr>\n<tr>\n<td><code>403</code></td>\n<td>X.X.X.X is not white listed</td>\n<td>Please whitelist your IP. To accept requests the merchant’s IPs must be whitelisted through back office or tech support.</td>\n</tr>\n<tr>\n<td><code>404</code></td>\n<td>The route … could not be found</td>\n<td>The resource has not been found.</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>invalid request  <br />Method \\\"...\\\" is not valid</td>\n<td>The requested method is not valid or configured.</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>The … field is required.</td>\n<td>Your request does not contain the required parameter (field). Please double-check the request that is being sent.</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>invalid request  <br />No available wallets found for method: …</td>\n<td>The method is not fully configured for processing. Please raise an issue with the tech support.</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>The amount field must be an integer.</td>\n<td>Wrong amount format, please make sure that the requested amount is an integer without a decimal.</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>The amount field must be at least … .</td>\n<td>The minimum amount requirement for the method is not met. Please check with the setup sheet or the tech support.</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>The amount field must not be greater than … .</td>\n<td>The maximum amount requirement for the method is not met. Please check with the setup sheet or the tech support.</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>Currency \\\"...\\\" is not valid</td>\n<td>Please check that this currency is configured for the merchant.</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>The … field must not be greater than … characters</td>\n<td>The indicated parameter is longer than accepted.</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>The … field must be a valid … .</td>\n<td>The requested value is in the wrong format, please check API documentation for reference.</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>Customer transaction ID exists</td>\n<td>A duplicated customer transaction ID has been sent in the request. It must be unique for each order.</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>Order Declined</td>\n<td>Our system also includes a mechanism to block malicious users. For this purpose, you will have access to a dedicated group channel with our risk management team, where you will receive information about blocked users and can contact the team directly if needed.</td>\n</tr>\n<tr>\n<td><code>5xx</code></td>\n<td>Server error</td>\n<td>All 5xx response codes should be investigated through our tech support.</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"82cf251f-6d64-45eb-9a9e-10748c187c97"},{"name":"Order statuses transitions","item":[],"id":"6f8bbe42-b6e8-415f-8661-7e27a2210785","description":"<img src=\"https://content.pstmn.io/25c8c781-f47f-45c4-8cec-53c4068d6fd9/U2NyZWVuc2hvdCAyMDI1LTA2LTI0IGF0IDE2LjMxLjI4LnBuZw==\" width=\"616\" height=\"352\" />\n\n<p>KarmaPe gateway comes with an order status transition concept that allows a merchant to get information on the current state of a payment, i.e. if funds have been transferred or if a customer canceled the transaction etc.</p>\n<p>Based on the dedicated status that is always returned through our API, you may take appropriate actions, such as delivering the service, contacting the customer for clarification or similar.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Deposit orders</th>\n<th>Withdrawal orders</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>New:</strong>  <br />- New-&gt;Pending  <br />- New-&gt;Cancelled  <br />- New-&gt;Expired  <br />- New-&gt;Success  <br />- New-&gt;Failed  <br />  <br /><strong>Pending:</strong>  <br />- Pending-&gt;Success  <br />- Pending-&gt;Failed  <br />  <br /><strong>Expired:</strong>  <br />- Expired-&gt;Failed  <br />- Expired-&gt;Success  <br />  <br /><strong>Cancelled:</strong>  <br />- Cancelled-&gt;Failed  <br />- Cancelled-&gt;Success  <br />  <br /><strong>Failed:</strong>  <br />- Failed-&gt;Success  <br />- Success:</td>\n<td><strong>New:</strong>  <br />- New-&gt;Pending  <br />- New-&gt;Success  <br />- New-&gt;Failed  <br />  <br /><strong>Pending:</strong>  <br />- Pending-&gt;Success  <br />- Pending-&gt;Failed  <br />  <br /><strong>Success:</strong>  <br />- Success-&gt;Failed  <br />- Success-&gt;Refunded</td>\n</tr>\n</tbody>\n</table>\n</div>","_postman_id":"6f8bbe42-b6e8-415f-8661-7e27a2210785"},{"name":"✅ Go-live checklist","item":[],"id":"170e983c-64ac-465d-a267-d39d01373b2d","description":"<p>Please refer to this checklist to ensure a smooth launch of your live payment processing:</p>\n<ul>\n<li><p>Complete and test integration in live mode including edge cases:</p>\n<ul>\n<li><p>Deposit order creation</p>\n</li>\n<li><p>Withdrawal order creation</p>\n</li>\n<li><p>Incomplete data</p>\n</li>\n<li><p>Invalid data</p>\n</li>\n<li><p>Duplicate data</p>\n</li>\n</ul>\n</li>\n<li><p>Make sure your application handles all errors</p>\n</li>\n<li><p>Make sure you have proper logging of requests and responses</p>\n</li>\n<li><p>Make sure your status URL is publicly available</p>\n</li>\n<li><p>Make sure you send the status URL with each order</p>\n</li>\n<li><p>Make sure that you validate our webhook signature</p>\n</li>\n<li><p>Make sure you set respective order (transaction) status and amount on your side once new webhook is received from our server</p>\n</li>\n<li><p>Make sure that you deliver/deduct goods, services, or digital credit once receive a successful order status callback from our server</p>\n</li>\n<li><p>Make sure all your production server’s IPs are whitelisted on our side</p>\n</li>\n<li><p>Make sure all our production server’s IPs are whitelisted on your side (if required)</p>\n</li>\n<li><p>Make sure you have access to our back office and can track all orders and their statuses</p>\n</li>\n<li><p>Arrange the time and date of the start of processing with our tech team</p>\n</li>\n<li><p>Get the green light from our tech team that you can start live processing</p>\n</li>\n<li><p>Monitor first live customer transactions in both your and our system</p>\n</li>\n</ul>\n","_postman_id":"170e983c-64ac-465d-a267-d39d01373b2d"},{"name":"Chargeback","item":[],"id":"c8f4d5dc-8c2c-4f79-b449-a03adda4b90e","description":"<h1 id=\"technical-specification-chargebacks\">Technical Specification Chargeback's</h1>\n<h2 id=\"status-handling\">Status Handling</h2>\n<p>When a previously successful <strong>deposit transaction</strong> is identified as a <strong>chargeback</strong>, the order status is updated as follows:</p>\n<ul>\n<li><p><strong>Previous status:</strong> <code>success</code></p>\n</li>\n<li><p><strong>New status:</strong> <code>chargeback</code></p>\n</li>\n<li><p><strong>Reason value -</strong> here will be a specific reason for the chargeback</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"webhook-notification\">Webhook Notification</h2>\n<p>When the transaction status changes to <code>chargeback</code>, the merchant system receives a webhook notification.</p>\n<h3 id=\"payload-example\">Payload Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{\n  \"order_id\": \"849655cf-ceba-49bc-951a-cbfbf8d63274\",\n  \"merchant_order_id\": \"O_XVajPtgGFk173LluM5oKb\",\n  \"status\": \"chargeback\",\n  \"reason\": \"chargeback\", // ask support for proper resaon if needed\n  \"amount\": \"200.00\",\n  \"utr\": \"409876543210\",\n  \"target_upi_id\": \"deposit@test\",\n  \"merchant_customer_id\": \"aaaaaaa99-1290-3e9f-a08e-c03aedc68b35\",\n  \"claim_id\": \"&lt;cyber_complaint_id&gt;\"\n}\n\n</code></pre><hr />\n<h2 id=\"payload-fields-description\">Payload Fields Description</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field Name</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>order_id</td>\n<td>string</td>\n<td>Internal order identifier</td>\n</tr>\n<tr>\n<td>merchant_order_id</td>\n<td>string</td>\n<td>Merchant order identifier</td>\n</tr>\n<tr>\n<td>status</td>\n<td>string</td>\n<td>Current order status (<code>chargeback</code>)</td>\n</tr>\n<tr>\n<td>reason</td>\n<td>string</td>\n<td>Status change reason</td>\n</tr>\n<tr>\n<td>amount</td>\n<td>string</td>\n<td>Chargeback amount (equals original successful deposit amount)</td>\n</tr>\n<tr>\n<td>utr</td>\n<td>string</td>\n<td>Bank transaction reference (UTR)</td>\n</tr>\n<tr>\n<td>target_upi_id</td>\n<td>string</td>\n<td>Target UPI ID used for deposit</td>\n</tr>\n<tr>\n<td>merchant_customer_id</td>\n<td>string</td>\n<td>Merchant-side customer identifier</td>\n</tr>\n<tr>\n<td>claim_id</td>\n<td>string</td>\n<td>complaint reference ID</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"chargeback-processing-flow\">Chargeback Processing Flow</h2>\n<ol>\n<li><p>A complaint is detected for an account.</p>\n</li>\n<li><p>Related transaction is identified.</p>\n</li>\n<li><p>Transaction data is verified:</p>\n<ul>\n<li><p>UTR</p>\n</li>\n<li><p>Amount</p>\n</li>\n<li><p>Order ID</p>\n</li>\n<li><p>Merchant Customer ID</p>\n</li>\n</ul>\n</li>\n<li><p>Supporting documents (PDF + screenshot) are attached internally.</p>\n</li>\n<li><p>Order status is updated:</p>\n<ul>\n<li><code>success</code> → <code>chargeback</code></li>\n</ul>\n</li>\n<li><p>Webhook notification is sent to the merchant system.</p>\n</li>\n</ol>\n<hr />\n<h2 id=\"important-integration-notes\">Important Integration Notes</h2>\n<ul>\n<li><p>Chargeback events are delivered only via webhook.</p>\n</li>\n<li><p>Merchants should handle <code>chargeback</code> status as a final state.</p>\n</li>\n<li><p><code>claim_id</code> can be used for reconciliation and support communication.</p>\n</li>\n<li><p>Amount value always reflects the original credited deposit amount.</p>\n</li>\n</ul>\n","_postman_id":"c8f4d5dc-8c2c-4f79-b449-a03adda4b90e"}],"event":[{"listen":"prerequest","script":{"id":"6db57d7d-1994-407b-be9f-92a20dabfa92","type":"text/javascript","requests":{},"exec":[""]}},{"listen":"test","script":{"id":"e1f4401d-9566-456b-9269-7f3eb4981a1f","type":"text/javascript","requests":{},"exec":[""]}}],"variable":[{"key":"base_url","value":"https://api.turbopay.com/api"},{"key":"currency","value":""}]}