{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"3c0c1875-d61c-4102-b99b-be85896e3cc8","name":"Transact Bridge API Docs","description":"**Transact Bridge** APIs are REST JSON APIs. Our API accepts JSON requests and returns JSON responses, and uses standard HTTP response codes, authentication.\n\nYou can use our APIs in the sandbox (testing) and production (live) environments. We provide two different API URLs and tokens for sandbox and production.\n\nYou can use the API in sandbox mode, which doesn't affect your live data or interact with the banking networks. The API key you use to authenticate the request determines whether the request is in live mode or test mode.\n\nOur API doesn't support bulk updates. You can work on only one object per request.\n\nAll the APIs are authenticated and cannot be utilized without sending proper authentication headers.\n\n# Authorization\n\nSandbox mode secret keys have the prefix `tb_test_` and live mode secret keys have the prefix `tb_live_`.\n\nYour API keys carry many privileges, so be sure to keep them secure! Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.\n\n<h4>Environment</h4>\n\n| **Type** | **URL** |\n| --- | --- |\n| Production API endpoint | [https://api.transactbridge.com](https://api.transactbridge.com) |\n| Production Partner Panel | [https://reseller.transactbridge.com/login](https://reseller.transactbridge.com/login) |\n| Production Customer Panel | [https://reseller.transactbridge.com/customer/login](https://reseller.transactbridge.com/customer/login) |\n| Sandbox API endpoint | [https://sandbox-api.transactbridge.com](https://sandbox-api.transactbridge.com) |\n| Sandbox Partner Panel | [https://sandbox.transactbridge.com/login](https://sandbox.transactbridge.com/login) |\n| Sandbox Customer Panel | [https://sandbox.transactbridge.com/customer/login](https://sandbox.transactbridge.com/customer/login) |\n\nWe will provide the following credentials to the partner for accessing both APIs and the web panel once the email is provided by the partner. If the partner is creating an account directly on the sandbox environment, the partner would still need to email us so that we can configure the account for UAT purposes.\n\nPartners can use the panel to view all the transactions, subscriptions, sessions, and invoices, create new API keys, add team members, give permission to team members, whitelist server IPs for more security, configure callback URLs, etc.\n\n<h4>Signature Generation</h4>\n\nA signature is a mandatory header if using APIs. We are generating signatures using two details, the public **`API KEY`** and private **`SECRET KEY`**. There is a third **`PUBLISH KEY`** as well which is used for specific modules, but not requried for signature generation.\n\n**Sample Example**:  \nLet partner Api key: tb_test_q47Wqf04e1sIZu22kVwWBrDncigOkIPN\n\nLet partner Secret key: tb_test_CT5u9ZeNMBEL884g6gP3\n\n**Step 1**: Create a new string by concatenating the API key and secret key with a colon in between. In our sample, the string becomes \"tb_test_q47Wqf04e1sIZu22kVwWBrDncigOkIPN:tb_test_CT5u9ZeNMBEL884g6gP3\"\n\n**Step 2**: Create a signature using the above string using SHA-512 Algorithm. In our sample, the signature becomes 7ae85bcc8d0af6ceacd271da52d22d1fa091733b891ff133169ef959647f5d23232c6b6709150f1cbbabc5d2a815cb05b91448c3c3eabc9447343b689eba7606\n\nBelow are different examples for different languages\n\n``` javascript\nconst crypto = require('crypto');\nfunction generateChecksumString(str) {\n    return crypto.createHash('sha512').update(str).digest('hex');\n}\nlet signature = generateChecksumString(\"tb_test_q47Wqf04e1sIZu22kVwWBrDncigOkIPN:tb_test_CT5u9ZeNMBEL884g6gP3\")\nconsole.log(signature);\n// will print below signature\n// 7ae85bcc8d0af6ceacd271da52d22d1fa091733b891ff133169ef959647f5d23232c6b6709150f1cbbabc5d2a815cb05b91448c3c3eabc9447343b689eba7606\n\n ```\n\n``` php\n$shatest = (\"tb_test_q47Wqf04e1sIZu22kVwWBrDncigOkIPN:tb_test_CT5u9ZeNMBEL884g6gP3\");\n$sha512test = hash(\"sha512\",$shatest);\necho $sha512test;\n// will print below signature\n// 7ae85bcc8d0af6ceacd271da52d22d1fa091733b891ff133169ef959647f5d23232c6b6709150f1cbbabc5d2a815cb05b91448c3c3eabc9447343b689eba7606\n\n ```\n\n``` python\nimport hashlib\ntext = 'tb_test_q47Wqf04e1sIZu22kVwWBrDncigOkIPN:tb_test_CT5u9ZeNMBEL884g6gP3'\nm = hashlib.sha512(text.encode('UTF-8'))\nprint(m.hexdigest())\n# will print below signature\n# 7ae85bcc8d0af6ceacd271da52d22d1fa091733b891ff133169ef959647f5d23232c6b6709150f1cbbabc5d2a815cb05b91448c3c3eabc9447343b689eba7606\n\n ```\n\n``` ruby\n def generate_signature(api_key, secret_key)\n    require 'digest'\n    # Concatenate API key and secret key with colon\n    signature_string = \"#{api_key}:#{secret_key}\"\n    puts \"\\nSignature String:\"\n    puts signature_string\n    # Generate SHA-512 hash\n    signature = Digest::SHA512.hexdigest(signature_string)\n    puts \"\\nFinal Signature:\"\n    puts signature\n    signature\n  end\n# --------- INVOCATION ----------\napi_key = \"tb_test_q47Wqf04e1sIZu22kVwWBrDncigOkIPN\"\nsecret_key = \"tb_test_CT5u9ZeNMBEL884g6gP3\"\nsignature = generate_signature(api_key, secret_key)\n\n ```\n\n**Step 3**: Pass the public **`API KEY`** and the generated signature in the headers like below.\n\n<table><tbody><tr><td><div><b>Headers</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Type</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Description</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>Content-Type</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>String <code>Mandatory</code></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>application/json</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>x-api-key</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>String <code>Mandatory</code></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Public API key provided by the platform to the partner.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>x-signature</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>String <code>Mandatory</code></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>A signature is created by the secret key provided by the platform to the partner. We use SHA-256 for creating signatures</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h4>Extended Signature Generation</h4>\n\nAn extended signature is an optional authorization mechanism. To enable this feature, the partner will need to enable the extended signature for the API in the platform. This adds extra layer by using the request body to generate the signature making each request more secure and unique. We are generating extended signatures using three details, the public **`API KEY`** and private **`SECRET KEY`** and the **`REQUEST BODY`**.\n\n**Sample Example**:  \nLet partner Api key: tb_test_q47Wqf04e1sIZu22kVwWBrDncigOkIPN\n\nLet partner Secret key: tb_test_CT5u9ZeNMBEL884g6gP3\n\nLet request body:\n\n``` json\n{\"returnUrl\":\"https://www.transactbridge.com/demo\",\"quoteCurrCode\":\"USD\"}\n\n ```\n\nWe use a specific format to create the token with three components.\n\n**Token Format: \"**${encodedAuthHeader}.${encodedPayload}.${signature}\"\n\n**Generating encodedAuthHeader**: We use a static payload {\"alg\":\"HS512\",\"typ\":\"JWT\"} which is encoded with Base64 to create **`encodedAuthHeader`**. In our sample the generated output will be `\"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9\"`\n\n**Generating encodedPayload:** Encode the request body with Base64 to generate **`encodedPayload`**. In our sample the generated output will be `\"eyJyZXR1cm5VcmwiOiJodHRwczovL3d3dy50cmFuc2FjdGJyaWRnZS5jb20vZGVtbyIsInF1b3RlQ3VyckNvZGUiOiJVU0QifQ\"`\n\n**Generating Signature**: Create a string by concatenating the **`encodedAuthHeader`** and **`encodedPayload`** with a **`period`** in between. In our sample, the string becomes `\"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJyZXR1cm5VcmwiOiJodHRwczovL3d3dy50cmFuc2FjdGJyaWRnZS5jb20vZGVtbyIsInF1b3RlQ3VyckNvZGUiOiJVU0QifQ\"`. The string is then signed using SHA-512 Algorithm. In our sample the generated output will be `\"LQKyKPK9Sw_cXyuBxr7gnaUICYY-zASOcKezCr5ed5Vly0E1DXR1-8TZSVfPc9AGymTCjt3kvg48Z93es3slew\"`\n\n**Generating Extended Signature**: Using the token format concate the different components to created the final extended signature. In our sample, the token becomes `\"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJyZXR1cm5VcmwiOiJodHRwczovL3d3dy50cmFuc2FjdGJyaWRnZS5jb20vZGVtbyIsInF1b3RlQ3VyckNvZGUiOiJVU0QifQ.LQKyKPK9Sw_cXyuBxr7gnaUICYY-zASOcKezCr5ed5Vly0E1DXR1-8TZSVfPc9AGymTCjt3kvg48Z93es3slew\"`\n\nPass the public **`API KEY`** and the generated token in the headers like below.\n\n<table><tbody><tr><td><div><b>Headers</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Type</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Description</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>Content-Type</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>String <code>Mandatory</code></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>application/json</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>x-api-key</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>String <code>Mandatory</code></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Public API key provided by the platform to the partner.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>x-signature-extended</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>String <code>Mandatory</code></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Token generated from the above steps. We use SHA-256 for creating signatures</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\nBelow are different examples for different languages\n\n``` javascript\nconst crypto = require('crypto');\nfunction getApiExtendedSignature(payload, secret) {\n    try {\n        const authHeadersJson = {\n            alg: 'HS512',\n            typ: 'JWT',\n        };\n        const authHeadersStr = JSON.stringify(authHeadersJson);\n        const encodedAuthHeader = Buffer.from(authHeadersStr, 'utf8').toString('base64url');\n        const payloadStr = JSON.stringify(payload);\n        const encodedPayload = Buffer.from(payloadStr, 'utf8').toString('base64url');\n        let token = `${encodedAuthHeader}.${encodedPayload}`;\n        const signature = crypto.createHmac('sha512', secret).update(token, 'utf8').digest('base64url');\n        return `${token}.${signature}`;\n    } catch (error) {\n        throw error;\n    }\n}\nlet signature = getApiExtendedSignature({ returnUrl: 'https://www.transactbridge.com/demo', quoteCurrCode: 'USD' }, \"tb_test_CT5u9ZeNMBEL884g6gP3\")\nconsole.log(signature);\n// will print below signature\n// eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJyZXR1cm5VcmwiOiJodHRwczovL3d3dy50cmFuc2FjdGJyaWRnZS5jb20vZGVtbyIsInF1b3RlQ3VyckNvZGUiOiJVU0QifQ.LQKyKPK9Sw_cXyuBxr7gnaUICYY-zASOcKezCr5ed5Vly0E1DXR1-8TZSVfPc9AGymTCjt3kvg48Z93es3slew\n\n ```\n\n``` php\nfunction base64url_encode($data) {\n    // Base64 encode, then convert to URL-safe format and remove padding\n    return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');\n}\nfunction getApiExtendedSignature($payload, $secret) {\n    try {\n        // Header\n        $authHeadersJson = [\n            \"alg\" => \"HS512\",\n            \"typ\" => \"JWT\"\n        ];\n        $encodedHeader = base64url_encode(json_encode($authHeadersJson, JSON_UNESCAPED_SLASHES));\n        $encodedPayload = base64url_encode(json_encode($payload, JSON_UNESCAPED_SLASHES));\n        $token = $encodedHeader . \".\" . $encodedPayload;\n        // HMAC-SHA512 Signature\n        $signature = hash_hmac(\"sha512\", $token, $secret, true);\n        $encodedSignature = base64url_encode($signature);\n        return $token . \".\" . $encodedSignature;\n    } catch (Exception $e) {\n        throw $e;\n    }\n}\n// Example usage:\n$payload = [\n    \"returnUrl\" => \"https://www.transactbridge.com/demo\",\n    \"quoteCurrCode\" => \"USD\"\n];\n$secret = \"tb_test_CT5u9ZeNMBEL884g6gP3\";\n$token = getApiExtendedSignature($payload, $secret);\necho $token;\n// will print below signature\n// eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJyZXR1cm5VcmwiOiJodHRwczovL3d3dy50cmFuc2FjdGJyaWRnZS5jb20vZGVtbyIsInF1b3RlQ3VyckNvZGUiOiJVU0QifQ.LQKyKPK9Sw_cXyuBxr7gnaUICYY-zASOcKezCr5ed5Vly0E1DXR1-8TZSVfPc9AGymTCjt3kvg48Z93es3slew\n\n ```\n\n``` python\nimport json\nimport hmac\nimport hashlib\nimport base64\ndef base64url_encode(data: bytes) -> str:\n    \"\"\"Encodes bytes into base64url without padding.\"\"\"\n    return base64.urlsafe_b64encode(data).rstrip(b'=').decode('utf-8')\ndef get_api_extended_signature(payload: dict, secret: str) -> str:\n    try:\n        # Header\n        auth_headers_json = {\n            \"alg\": \"HS512\",\n            \"typ\": \"JWT\"\n        }\n        encoded_header = base64url_encode(json.dumps(auth_headers_json).encode(\"utf-8\"))\n        encoded_payload = base64url_encode(json.dumps(payload).encode(\"utf-8\"))\n        token = f\"{encoded_header}.{encoded_payload}\"\n        # Signature using HMAC SHA-512\n        signature = hmac.new(\n            secret.encode(\"utf-8\"),\n            token.encode(\"utf-8\"),\n            hashlib.sha512\n        ).digest()\n        encoded_signature = base64url_encode(signature)\n        return f\"{token}.{encoded_signature}\"\n    except Exception as e:\n        raise e\n# Example usage\npayload = {\"returnUrl\":\"https://www.transactbridge.com/demo\",\"quoteCurrCode\":\"USD\"}\nsecret = \"tb_test_CT5u9ZeNMBEL884g6gP3\"\nsigned_token = get_api_extended_signature(payload, secret)\nprint(signed_token)\n# will print below signature\n# eyJhbGciOiAiSFM1MTIiLCAidHlwIjogIkpXVCJ9.eyJyZXR1cm5VcmwiOiAiaHR0cHM6Ly93d3cudHJhbnNhY3RicmlkZ2UuY29tL2RlbW8iLCAicXVvdGVDdXJyQ29kZSI6ICJVU0QifQ.ipnnEhwj0kzUhkGvcXD_maWFt17IVxdmR68ETrruku3WSif-NDMOMH-DrAu78tV-T9TxR2coO8lLM9A2EZSlfw\n\n ```\n\n<h4>Aggregators Authorization</h4>\n\nAn aggregator can use both signature or extended signature to authorize using their API keys. The aggregator might have multiple merchants and can use the same API keys of the main aggregator account to authorize. To call the aggregator's account API, don't pass **`x-partner-merchant-id`** .\n\n<table><tbody><tr><td><div><b>Headers</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Type</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Description</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>Content-Type</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>String <code>Mandatory</code></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>application/json</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>x-api-key</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>String <code>Mandatory</code></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Public API key provided by the platform to the partner.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>x-signature</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>String <code>Mandatory</code></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Token generated from the signature creation steps. We use SHA-256 for creating signatures<br></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>x-partner-merchant-id</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>String <code>Mandatory</code></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Aggregator's merchant id to be passed here</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>x-signature-extended</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>String <code>Optional</code></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Token generated from the extended signature creation steps. We use SHA-256 for creating signatures</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n# Payment Methods\n\nTransact Bridge has all the cards and alternative payment methods availabe in India. Below are the list with constraints in terms of minimum and maximum\n\n| **Pay Methods** | **Min Amt (INR**) | **Max Amt (INR)** | **Networks** | **Remarks** |\n| --- | --- | --- | --- | --- |\n| UPI | 1 | 100,000 | PhonePe, PayTm, Google Pay, Bhim etc. | All 50+ UPI apps can be used. Also UPI on Credit cards are also available. |\n| Debit Cards | 1 | 100,000 | All domestically issued cards including VISA, Rupay, Master Card etc. | Max limits depends on issuing Bank limits as well |\n| Credit Cards | 1 | 1,000,000 | All domestically issued cards including VISA, Rupay, Master Card etc. | Max limits depends on issuing Bank limits as well |\n| Net Banking | 1 | 1,000,000 | 80+ Indian Domestic Banks | Max limits depends on issuing Bank limits as well |\n\n# Payment Flow\n\nTransact Bridge has two different customer payment flows, depending on the eligibility criteria the partner can choose from two:\n\n- **Redirection Flow**: In this flow, the customer will be redirected first from the partner's website to a domain hosted by Transact Bridge where the customer will enter the requisite information (depending on what compliances) to make payment, and after making payment the customer will be redirected back to the partner's website. The redirection URL will be provided in response to the [Create Session API](#d4607171-457b-4d24-8277-6d9a79a997dd) and [Create Subscription API](#307dc665-ae10-4e43-8853-5b7f04961825) requests.\n    \n- **Iframe Flow**: In this flow, the customer is not being redirected but the checkout view of Transact Bridge will be visible on the partner's website as an overlay or embedded solution. The customer will enter the requisite information (depending on what compliances) to make payment, and after making payment the iframe will be closed with events being pushed to the partner's website. The redirection URL through which the iframe can be invoked will be provided in response to the [Create Session API](#d4607171-457b-4d24-8277-6d9a79a997dd) and [Create Subscription API](#307dc665-ae10-4e43-8853-5b7f04961825) requests. The partner can find the iframe script and other relevant documents using these links for [script](https://cdn.transactbridge.com/scripts/iframe.js), [readme file](https://cdn.transactbridge.com/scripts/README.md), and [sample HTML file](https://cdn.transactbridge.com/scripts/testIframe.html).\n    \n\n# Request/Response\n\nAll APIs are JSON-based and therefore only accept JSON in the request body. We have pagination for those APIs which are for getting a list of objects.\n\n<h4>Request Body</h4>\n\nFollowing are some of the common parameters that the request body accepts.\n\n<table><tbody><tr><td><div><b>Parameter</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Type</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Description</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>filter</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Object</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>In getting a list of Objects API <code>filter</code> parameter allows us to narrow down the results. Each API can have a different <code>filter</code> parameters.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>page</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Number</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Used to paginate if the API is of Get a list of Objects.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>sort</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Object</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>In getting a list of Objects API <code>sort</code> parameter allows us to get a sorted result. Each API can have a different <code>sort</code> parameters.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>fromDate</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Date</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The date format used is<br><code><b>yyyy-MM-dd HH:mm:ss</b></code><br>For Ex. 2023-10-19 18:30:00</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h4>Response Body</h4>\n\nAll the responses will contain these 4 parameters `status`, `sub_status`, `msg`, `data` . Other parameters are on a need basis.\n\n<table><tbody><tr><td><div><b>Parameter</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Type</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Description</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>status</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>String<br>Enum:<code>success</code>, <code>error</code></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>This is the final status of the API, if the status is not successful then consider that the API did not run successfully. You can check <code>msg</code> parameter to understand what went wrong.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>sub_status</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>String</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Used for internal purposes only</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>error_code</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>String</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>This parameter is only available when <code>status</code> in the response body is <code>error</code>.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>msg</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>String</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>To understand the error if the request was not successful.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>data</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Array or Object</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Contains the response data of the request.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>maxPageSize</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Number</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The maximum number of data objects that are returned in the Get All requests.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>hasMore</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Boolean</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>If the Get All request has more data objects then the value is <code>true</code>. Use <code>page</code> parameter in the request to get the next data objects.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n# Encryption\n\nEncryption is used to send sensitive data like credit card and debit card details in the S2S API. We use \"RSA (Padding: RSA_PKCS1_OAEP_PADDING)\" algorithm to encrypt the data string using a key. To use this module the parnter must be PCI-certified. There is no need to integrate this if the parnter is not using [Create Payment Request](https://docs.transactbridge.com/#757c3604-04ea-494c-9d61-aa30a15373e7).\n\n``` javascript\n// Crypto module is used to encrypt a data string\nconst crypto = require('crypto');\n// data is the payload string that needs to be encrypted\n// publicKey is provided to the partner by Transact Bridge\nfunction encryptRsa(publicKey, data) {\n    try {\n        const encryptMe = crypto.publicEncrypt(\n            {\n                key: publicKey,\n                padding: crypto.constants.RSA_PKCS1_OAEP_PADDING,\n            },\n            Buffer.from(data),\n        );\n        let hash = encryptMe.toString('base64');\n        return hash;\n    } catch (error) {\n        throw error;\n    }\n}\n\n ```\n\n# Definitions\n\n<h4>Transaction Types</h4>\n\nDifferent types of transactions represent different use cases.\n\n<table><tbody><tr><td><div><b>Types</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Description</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>DEPOSIT</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>This is a credit transaction and will be credited only when the transaction is in status <code>SUCCESS</code>.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>REFUND</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>This is a debit transaction for the refund raised by the partner.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>CHARGEBACK</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>This is a debit transaction for the refund raised by the bank against dissatisfaction.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h4>Billing Session Status</h4>\n\nThese billing session statuses represent the state the session is currently in.\n\n<table><tbody><tr><td><div><b>Types</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Description</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>CREATED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>A session has been created but the link has not been used by the customer to initiate the payment window.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>STARTED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>When the customer opens the payment link and proceeds with accepting TnC.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>CLOSED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Payment has been successfully done by the customer and an invoice has been created.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>EXPIRED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>In case of non-payment, the link will be expired after a configured interval. Partners can pass the expiry date at the time of session creation. The default expiry date is 24 hours from the time of the creation of the session.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>REJECTED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>This status needs to be enabled by the Admin Team, once done, if a customer clicks on \"Back to Shopping\" on the payment page then the billing session will be marked <code>REJECTED</code> and no further attempts will be allowed.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h4>Subscription Status</h4>\n\nThese subscription statuses represent the state the subscription is currently in.\n\n<table><tbody><tr><td><div><b>Types</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Description</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PENDING</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>A subscription has been created, the link is active and the customer can pay on the link to start the subscription in <code><b>TRIAL</b></code> or <code><b>ACTIVE</b></code> status</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PENDING_EXPIRED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>When the subscription has crossed the <code><b>pendingExpire</b></code> minutes configured during the creation of the subscription, the status is changed to <code><b>PENDING_EXPIRED</b></code>. This is a terminal state and the customer cannot attempt a payment after this.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>TRIAL</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Subscription is in trial mode and depending on the <code><b>trialSettings</b></code> post completion of trial auto debit may occur or may not.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ACTIVE</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Subscription has been activated by adding a payment method for postpaid subscriptions or paying in full for prepaid subscriptions.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PAUSED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Subscription has been paused by the system configured by the partner using <code><b>reAttemptConfig</b></code>.<br>Subscription can also be paused directly by the partner</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>EXPIRED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>CANCELLED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The subscription has been canceled by the end customer using the customer panel. If <code><b>partialCancel</b></code> was allowed in the subscription, then the customer would be able to cancel on an immediate basis as well. The subscription can also be cancelled directly by the partner or by the system depending on the configuration of <code><b>reAttemptConfig.</b></code></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>FAILED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The subscription is in unknown status due to unforeseen reasons.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h4>Invoice Status</h4>\n\nThese invoice statuses represent the actual status of the invoice.\n\n<table><tbody><tr><td><div><b>Status</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Txn Sub Status</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Description</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>DRAFT</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>CREATED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The invoice has just been created and there is pending approval from the partner.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>APPROVED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>N/A</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The invoice has been approved by the partner and we will try to auto-debit the customer on the due date.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>DUE</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>N/A</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The invoice is in due state and the customer can pay on the invoice. If there is a mandate available, we will try for auto-debit as well.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>OVERDUE</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>N/A</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The invoice could not be paid within the due time and is not in the overdue state. Customers can still attempt to make the payment on the invoice.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PAID</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>CAPTURED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The invoice has been successfully paid and is ready to be sent to the customer.<br><b>Note</b>: Billing Session Flow will only have invoices in this state from the start.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PAID</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>CHARGEBACK</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>There has been a chargeback request on the invoice and is in the processing state.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PAID</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>CHARGEBACK-COMPLETED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The chargeback has been processed and a credit note has been created.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PAID</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>REFUND</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>There has been a refund request on the invoice and is in the processing state.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PAID</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>REFUND-COMPLETED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The refund has been processed and a credit note has been created.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>CANCELLED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>N/A</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The invoice has been marked canceled by the partner</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>VOID</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>N/A</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The invoice has been marked void by the partner.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h4>Deposit Transaction Status</h4>\n\nThese transaction statuses represent the actual status of the transaction.\n\n<table><tbody><tr><td><div><b>Status</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Txn Sub Status</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Description</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PENDING</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>INITIATED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The transaction has just been created and there has been a payment attempt on it.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PROCESSING</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>N/A</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>A payment attempt has been made on the transaction. It is an intermediary state until we get a confirmation from the acquirer.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>CANCELLED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>VOID</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The transaction has been cancelled and no further payment attempt can be made. This is a terminal state.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>FAILED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>VOID</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>A payment attempt was made on the transaction but due to any reason, the transaction was failed by the acquirer. To know more check the <b>txStatusCode</b> value.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>FAILED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>REJECTED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>A payment attempt was made but the payment was rejected either by the customer of by the bank due to insufficient funds.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>SUCCESS</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>CAPTURED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The payment attempt on the transaction has been successful and a successful debit has been made on the customer's account.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n**Note:** A transaction is treated as successful only if the status is **`SUCCESS`** and txSubStatus is **`CAPTURED`**. The transactions which were accepted as chargeback will have the status **`SUCCESS`** and txSubStatus as **`CHARGEBACK`**\n\n<h4>Payment Verification Status</h4>\n\nThese payment verification status represents the different states the transaction can be in. These status only applies to **`PACB`** Module and not to **`TSP`** or **`Session`** Module\n\n<table><tbody><tr><td><div><b>Status</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Description</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PENDING</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>There is no verification details that have been uploaded.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>IN_REVIEW</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>After uploading verification details, accquirer is verifying the details and no further action is required from the partner.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ACTION_REQUIRED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Accquirer have rejected the verification detail and now partner needs to update the details again.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>VERIFIED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>A payment attempt was made on the transaction but due to any reason, the transaction was failed by the acquirer. To know more check the <b>txStatusCode</b> value.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>EXPIRED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Payment verification details cannot be verifieid in the stipulated time perid of 7 days and therefore the payment will now be refunded back to the customer.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>CANCELLED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>When a refund is initiated for the payment the payment verification status changes to CANCELLED.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n**Note:** Transactions for which paymentVerificationStatus if not **VERIFIED**, will not be settled to the partner.\n\n<h4>Refund Transaction Status</h4>\n\nThese transaction statuses represent the actual status of the transaction.\n\n<table><tbody><tr><td><div><b>Status</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Description</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PENDING</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>A refund has been created by the partner. Once we acknowledge the status will be changed to <code><b>PROCESSING</b></code>.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PROCESSING</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The refund has been passed over to the bank. We are waiting for the status update from the bank.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>SUCCESS</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The refund has been successfully done and the payment reached the end customer.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>FAILED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Due to some reason, the refund could not be completed.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>CANCELLED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The refund request has been canceled by the partner.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h4>Subscription Frequency</h4>\n\nA subscription is a recurring billing mechanism which requires the billing cycle that is the frequency at which invoice has to be raised and subsequent auto-debit from customer has to be made. Below are the frequencies that are allowed.\n\n<table><tbody><tr><td><div><b>Frequency</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Description</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>DAIL</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>For billing that requires daily auto-debit.<br><b>Note</b>: Even though the billing is daily, the invoice needs to be generated 1-2 days prior depending on the payment method.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>WEEK</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>For billing that requires weekly / 7-day based auto-debit.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>MNTH</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>For billing that requires monthly auto-debit.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>BIMN</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>For billing that requires bi-monthly auto-debit.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>QURT</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>For billing that requires quaterly auto-debit.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>MIAN</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>For billing that requires semi-annully that is 6 months based auto-debit.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>YEAR</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>For billing that requires yearly based auto-debit.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ONDM</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>For billing that requires on demand based auto-debit.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n# Enums & Validators\n\nTransact Bridge uses different enum values and validators for strings and numbers for efficiency.\n\n<h4>Enums</h4>\n\n| **Parameter** | **Value** |\n| --- | --- |\n| txType | \\[\"DEPOSIT\", \"REFUND\", \"CHARGEBACK\"\\] |\n| txSubType | \\[\"ONE-TIME\", \"RECURRING\", \"REQ-AUTH\", \"RECURRING-NOTIFY\", \"RECURRING-NOTIFIED\", \"RECURRING-EXPIRED\"\\] |\n| txSubStatus | \\[\"INITIATED\", \"CREATED\", \"SETTLEMENT\", \"RR_SETTLEMENT\", \"SALE\", \"GST\", \"IN_TRANSIT\", \"CANCELLED\", \"CHARGEBACK\", \"CAPTURED\", \"VOID\", \"REJECTED\", \"EXPIRED\", \"REFUND_INITIATED\", \"REFUND\", \"REFUND_COMPLETED\", \"REFUND_PROCESSING\", \"CHARGEBACK_SETTLED\", \"CHARGEBACK_ACCEPTED\", \"CHARGEBACK_PROCESSING\",\" CHARGEBACK_COMPLETED\", \"CHARGEBACK_INITIATED\", \"CHARGEBACK_DISPUTE\", \"CHARGEBACK_RR\"\\] |\n| txStatus | \\[\"PENDING\", \"APPROVED\", \"PROCESS\", \"PROCESSING\", \"CANCELLED\", \"FAILED\", \"SUCCESS\", \"REVERTED\", \"DISPUTE\", \"PARTIAL_SUCCESS\"\\] |\n| invoiceStatus | \\[\"DRAFT\", \"DUE\", \"OVERDUE\", \"PAID\", \"CANCELLED\", \"APPROVED\", \"VOID\", \"UNPAID\"\\] |\n| billingSessionStatus | \\[\"CREATED\", \"STARTED\", \"CLOSED\", \"EXPIRED\", \"REJECTED\", \"FAILED\"\\] |\n| subscriptionStatus | \\[\"PENDING\", \"PENDING_EXPIRED\", \"TRIAL\", \"ACTIVE\", \"PAUSED\", \"EXPIRED\", \"CANCELLED\"\\] |\n| subscriptionFrequency | \\[\"DAIL\", \"WEEK\", \"MNTH\", \"BIMN\", \"QURT\", \"MIAN\", \"YEAR\", \"ONDM\"\\] |\n| paymentVerificationStatus | \\[\"PENDING\", \"ACTION_REQUIRED\", \"IN_REVIEW\", \"VERIFIED\", \"EXPIRED\", \"CANCELLED\"\\] |\n| state | \\[\"Andaman and Nicobar Islands\", \"Andhra Pradesh\", \"Arunachal Pradesh\", \"Assam\", \"Bihar\", \"Chandigarh\", \"Chhattisgarh\", \"Dadra and Nagar Haveli\", \"Daman and Diu\", \"Delhi\", \"Goa\", \"Gujarat\", \"Haryana\", \"Himachal Pradesh\", \"Jammu and Kashmir\", \"Jharkhand\", \"Karnataka\", \"Kerala\", \"Lakshadweep\", \"Madhya Pradesh\", \"Maharashtra\", \"Manipur\", \"Meghalaya\", \"Mizoram\", \"Nagaland\", \"Odisha\", \"Puducherry\", \"Punjab\", \"Rajasthan\", \"Sikkim\", \"Tamil Nadu\", \"Telangana\", \"Tripura\", \"Uttar Pradesh\", \"Uttarakhand\", \"West Bengal\"\\] |\n\n<h4>Validators</h4>\n\n| **Parameter** | **Regex** | **Description** |\n| --- | --- | --- |\n| AllowedString | /^\\[a-z\\\\d\\\\s\\\\-/.()_:\\]+$/i | Allowed: alphabets, numerals, space, dot, slash, hyphen, parenthesis |\n| Address | /^\\[a-z\\\\d\\\\s\\\\-_.'#&()=/{},\\[\\\\\\]\\]+$/i; | Allowed: alphabets, numerals, space, hyphens, underscore, ampersand, dot, apostrophe, hash, parenthesis, equal, slash, curly brackets, square brackets, backslash. |\n| MultiLineDescription | /^(\\[a-z\\\\d\\\\s\\\\-/+/,/.()@\\]+ | )+$/i |\n| ReferenceId | /^\\[a-z\\\\d\\\\-/.()_:\\]+$/i | Allowed: alphabets, numerals, dots, slash, hyphen, parenthesis, underscore, colon |\n| MongoId | /^\\[0-9a-fA-F\\]{24}$/; |  |\n\n# UAT Testing\n\nTransact Bridge provides UAT testing credentials for UPI, Credit Card, Debit Card, and Net banking to test the created transactions and check end-to-end flows of payments. We also provide test details for PAN (Tax Identity in India) and GST verification as well.\n\n**Note**: The lower limit is defined as Rs. 1/- and the upper limit is defined as Rs. 1000/-\n\n<h4>Test PAN &amp; GST Details</h4>\n\n| **Parameter** | **Value** | **Description** |\n| --- | --- | --- |\n| PAN | ABCDE1234F | You can use this to verify PAN if required or prompted in the UAT for testing purpose. |\n| GST | 24AAACJ3770E2ZV | You can use this to verify GST if required or prompted in the UAT for testing purpose. |\n\n<h4>Test UPI Details for One-time</h4>\n\n| **Parameter** | **Value** | **Description** |\n| --- | --- | --- |\n| vpa | tbridgesuccess@upi | Using this as the UPI, the transaction will get auto success in 60 seconds |\n| vpa | tbridgefailedrefund@upi | Using this UPI, the transaction will get auto success in 60 seconds.  <br>If a refund is raised on the invoice of this particular session, it will fail in the next 60 seconds. |\n| vpa | tbridgesuccessrefund@upi | Using this UPI, the transaction will get auto success in 60 seconds.  <br>If a refund is raised on the invoice of this particular session, it will get success in the next 60 seconds. |\n| vpa | tbridgefailure@upi | Using this as the UPI, the transaction will fail in 60 seconds |\n\n**Note**: In the sandbox enter the above VPA/UPI Id and click on verify. Once it is successful initiate payment and wait for 90 seconds, the payment will be automatically successful.\n\n<h4>Test UPI Details for Subscriptions</h4>\n\n| **Parameter** | **Value** | **Description** |\n| --- | --- | --- |\n| vpa | subtbridgesuccess@upi | Using this as the UPI, the transaction will get auto success in 60 seconds |\n| vpa | subtbridgefailure@upi | Using this as the UPI, the transaction will fail in 60 seconds |\n\n<h4>Test UPI Details for PACB Flow</h4>\n\n| **Parameter** | **Value** | **Description** |\n| --- | --- | --- |\n| vpa | testsuccess@gocash  <br>testtpvsuccess@gocash  <br>success@upi | Using this as the UPI, the transaction will get auto success in 60 seconds |\n| vpa | testfailure@gocash  <br>testtpvfail@gocash | Using this as the UPI, the transaction will fail in 60 seconds |\n\n<h4>Test Debit Card Details for One Time</h4>\n\n| **Parameter** | Value |\n| --- | --- |\n| Card Number | 4622943126146407 |\n| Card Issuer/Network | VISA |\n| Expiry Month | 12 |\n| Expiry Year | 2024 |\n| CVV | 936 |\n\n<h4>Test Credit Card Details for One Time</h4>\n\n| **Parameter** | Value |\n| --- | --- |\n| Card Number | 4208585190116667 |\n| Card Issuer/Network | VISA |\n| Expiry Month | 06 |\n| Expiry Year | 2027 |\n| CVV | 508 |\n\n**Note**: The OTP to be used on the Bank Page is **123456**\n\n<h4>Test Net Banking Details</h4>\n\n| **Parameter** | Value |\n| --- | --- |\n| Bank | State Bank of India |\n| Username | test |\n| Password | test |\n\n<h4>Test Debit Card Details for Subscriptions</h4>\n\n| **Parameter** | Value |\n| --- | --- |\n| Card Number | 4761360079851258 |\n| Card Issuer/Network | VISA |\n| Expiry Month | 05 |\n| Expiry Year | 2025 |\n| CVV | 123 |\n| Card OTP | 123456 |\n\n# Errors/Status Codes\n\n<h4>Error Codes</h4>\n\nThese error codes represent specific errors. This parameter only comes when there is a specific error and not in every case.\n\n<table><tbody><tr><td><div><b>Error Code</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Description</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>02</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The amount is not in the minimum and maximum bounds for a deposit Transaction</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>03</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The amount is not in the minimum and maximum bounds for a withdrawal Transaction</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>07</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The risk threshold exceeded for this payment</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>08</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Previous DB changes are queued. Please wait and try again.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>09</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>API authentication is incorrect</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>10</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>No payment method is configured for this account</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>11</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Reference ID already exists</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>13</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The entered PIN code is not correct</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>14</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Invalid GST number</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>15</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>GST service is unavailable right now</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>16</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>GST number is inactive</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>18</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The entered payment method is not active for this account</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>19</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>GST number does not exist. Please check the GST number</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>20</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Expiry Time should be in the future and greater than the current timestamp.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>21</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The amount is less than the minimum allowed.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>22</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The amount is greater than the maximum allowed.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>23</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The item is not allowed to be sold in the jurisdiction</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>25</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The price is less than the minimum allowed item price.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>26</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The price is greater than the maximum allowed item price.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>27</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Customer suspended due to unusual activity</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>401</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Authentication failed</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>404</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The requested object cannot be found.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>406</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>You do not have permission for this operation. Repeatedly trying might lead to a temporary ban</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>407</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>PSP not configured properly</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>411</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The partner has reached its daily payment volume quota for that specific payment method. Partners can use a different payment method if the error_code is 401 and still asks for payments from customers.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>412</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The partner has reached its daily payment volume quota for all the payment methods. Partners will not be able to use a different payment method for payments from customers. Partner will need to contact the Admin to increase the volume quota.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>422</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Invalid request format (body or headers).</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>429</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Too many requests.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>430</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Invalid Card details</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>431</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Card Data entered is invalid.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>432</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Invalid UPI handle</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>433</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Email used in the request body is a disposable email and is not allowed.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>500</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Internal Server Error</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>503</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The request cannot be processed due to unknown reasons</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>504</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Error in PsP request</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>505</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>PSP internal error</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h4>Tx Status Code</h4>\n\nThese TX status codes represent specific acquirer messages. This parameter only comes when there is a specific error and not in every case.\n\n<table><tbody><tr><td><div><b>Tx Status Code</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Description</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>100</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The transaction did not reach the bank in time and timed out.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>101</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Transaction cancelled by User</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>102</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Transaction cancelled due to insufficient balance</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>103</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Transaction failed at acquirer due to an unknown reason</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>104</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Transaction failed at user due to unknown reason</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>105</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Transaction failed due to not making payment in due time</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>106</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Transaction failed because of an invalid UPI/account number</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>500</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Transaction failed due bank server down</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h4>Data Format Errors</h4>\n\nThese errors are specific messages when the data is not allowed by the validator.\n\n<table><tbody><tr><td><div><b>Tx Status Code</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Description</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>multiComment</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Allowed characters: alphabets, numerical, space, dot, slash, hyphen, parenthesis, URL links<br>Maximum Length: 256 characters</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>multiLineDescription</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Allowed characters: alphabets, numerical, space, dot, slash, hyphen, parenthesis, at<br>Maximum Length: 256 characters</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>onlyAlphaNumeric</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Allowed Characters: alphabets, numerical<br>Maximum Length: 256 characters</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>gstNumberFormat</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Allowed Characters: alphabets, numerical;<br>It is a format of alphanumeric strings described by the govt of India.<br>Maximum Length: 15 characters</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>referenceId</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Allowed characters: alphabets, numerical, dot, hyphen, parenthesis, colon, underscore<br>Maximum Length: 256 characters</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>DateObject</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Allowed format <code><b>yyyy-MM-dd HH:mm:ss</b></code><br>For Ex. 2023-10-19 18:30:00</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>\n\n<h4>PsP Errors</h4>\n\nThese errors are the reason for the failed attempts, it could be from the customer, the bank, or the PSP.\n\n<table><tbody><tr><td><div><b>Tx Status Code</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div><b>Description</b></div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>USER_DROP_PAYMENT_REQUEST</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>User dropped off before making the payment</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>REQUEST_TIME_OUT</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>No action was taken on the collect payment request</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>USER_DECLINED_PAYMENT_REQUEST</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Collect request declined by the requestee</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ACCOUNT_INSUFFICIENT_FUNDS</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Insufficient funds in customer (Remitter) Account - Z9</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>UPI_COLLECT_EXPIRED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>UPI collect request expired - U69</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>TRANSACTION_NOT_PERMITTED_AC</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Transaction not permitted for this a/c type (OD) - SA</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>TRANSACTION_FREQUENCY_LIMIT_EXCEEDED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Transaction frequency limit exceeded as set by remitting member - Z7</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PG_API_ERROR</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Psp Api Call Error</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>INTERNAL_SERVER_ERROR</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>PSP internal server error</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>WRONG_PIN_ATTEMP_EXCEEDED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The customer entered the wrong pin and the number of pin tries exceeded - Z6</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>INVALID_MPIN</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The customer entered an invalid MPIN - ZM</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>USER_ACCOUNT_BLOCKED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Customer account is blocked or frozen - YE</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>USER_ACOUNT_NOT_EXIST</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Customer account does not exist - XH</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>USER_ACCOUNT_REGISTER_NUMBER_CHANGE</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The registered mobile number linked to the account has been changed/removed - B1</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>USER_DEBIT_LIMIT_EXCEEDED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The net Debit limit has been exceeded - U03</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>TRANSACTION_NOT_PERMITTED_AC_LEGAL</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Transaction not permitted to the account (Ex: Minor account, Proprietor account, the legal case against this account, etc., NRE) - B3</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>FAILED_REASON_NOT_DEFINED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Failed reason is not defined</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>REMITTER_BANK_DEEMED_HIGH</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Remitter bank deemed high response time check decline - U90</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>REMITTER_SUSPECTED_FRAUD_HIGH_RISK</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Suspected fraud, decline/transactions declined based on risk score by remitter - K1</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>TXN_NOT_PERMITTED_CARD_REMITTER</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Transaction not permitted to cardholder (Remitter) - XP</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>BANK_HAS_PSP_UNAVAILABLE_ISSUE</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The bank is getting PSP unavailable issue.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>USER_BANK_DEBIT_LIMIT_EXCEEDED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Limit exceeded for remitting bank/issuing bank</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PSP_TXN_NOT_FOUND</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Txn is not found on the PSP side</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>USER_BANK_BALANCE_BLOCKED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Adequate funds not available in the account because funds have been blocked</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>USER_PSP_OFFLINE</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>User PSP is offline</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>USER_VPA_NOT_TRANSACTION</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>User VPA is not transacting</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PSP_RISK_DETECTED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>PSP risk detected</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>USER_INVALID_VPA</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>VPA is invalid</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PSP_BLOCKED_USER_DETECTED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>User block by PSP</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PSP_COMPLIANCE_ISSUE</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>PSP compliance issue detected</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PSP_TIME_OUT</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Remitter/Issuer timeout</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>UPI_EXPIRED_PAY_REQUEST</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>User request is expired</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>DEVICE_FINGER_PRINT_ISSUE</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Device finger print issue</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>MANDATE_AUTH_EXPIRED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Mandate auth link expired - UM</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>FREEZE_PERIOD_FOR_FIRST_TIME_USER</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Freeze period for first time user</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>RESPAUTHMANDATE_EXPIRED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Response auth mandate expired - UM3</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>NATURE_OF_DEBIT_NOT_ALLOWED_IN_ACCOUNT_TYPE</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Nature of the debit not allowed in account type</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>ENCRYPTION_ERROR</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Encryption error - U14</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>UTR_ALREADY_PRESENT</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Unique transaction reference already present</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>TRANSACTION_ABORTED_BY_USER</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Transaction aborted by the user</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>AUTHENTICATION_FAILED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Authentication failed</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PAYMENT_ERROR</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Payment failed</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PG_ERROR</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Payment gateway error</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>DEBIT_HAS_BEEN_FAILED</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Debit has been failed</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PSP_NOT_SUPPORTED_BY_UPI</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>PSP not supported by UPI</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>TRANSACTION_INVALID</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Invalid transaction</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>TRANSACTION_IN_PROGRESS</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>The transaction is in progress</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>BANK_TECHNICAL_FAILURE</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Bank technical error</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>PAYMENT_INSTRUMENT_INACTIVE</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>customer's payment instrument is inactive</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>GATEWAY_ERROR</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>gateway infrastructure error detected</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>INVALID_AMOUNT</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Transaction amount should be greater than OR equal to 1 rupee.</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr><tr><td><div>INVALID_CARD_DETAILS</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td><td><div>Invalid card details</div><div contenteditable=\"false\"><div><div><div></div></div></div><div></div></div></td></tr></tbody></table>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"2739249","team":2007805,"collectionId":"3c0c1875-d61c-4102-b99b-be85896e3cc8","publishedId":"2s9Y5Zv2RP","public":true,"publicUrl":"https://docs.transactbridge.com","privateUrl":"https://go.postman.co/documentation/2739249-3c0c1875-d61c-4102-b99b-be85896e3cc8","customColor":{"top-bar":"FFFFFF","right-sidebar":"212529","highlight":"007aff"},"documentationLayout":"classic-single-column","customisation":{"metaTags":[{"name":"description","value":"Complete reference documentation for the Transact Bridge API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries."},{"name":"title","value":"API Documentation for Transact Bridge | Indian Reseller of SAAS &amp; Digital Products"}],"appearance":{"default":"light","themes":[{"name":"dark","logo":"https://content.pstmn.io/81c091e8-3158-4ad6-99b3-52e2e533e422/VGItbG9nb193aGl0ZS5wbmc=","colors":{"top-bar":"212529","right-sidebar":"212529","highlight":"007aff"}},{"name":"light","logo":"https://content.pstmn.io/4dbca94a-86de-4356-819c-1c747656923a/VGItbG9nby1saWdodC5wbmc=","colors":{"top-bar":"FFFFFF","right-sidebar":"212529","highlight":"007aff"}}]}},"version":"8.10.0","publishDate":"2023-09-21T10:37:09.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"API Documentation for Transact Bridge | Indian Reseller of SAAS &amp; Digital Products","description":"Complete reference documentation for the Transact Bridge API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries."},"logos":{"logoLight":"https://content.pstmn.io/4dbca94a-86de-4356-819c-1c747656923a/VGItbG9nby1saWdodC5wbmc=","logoDark":"https://content.pstmn.io/81c091e8-3158-4ad6-99b3-52e2e533e422/VGItbG9nb193aGl0ZS5wbmc="}},"statusCode":200},"environments":[{"name":"Sandbox","id":"cdd0305b-2c37-4940-8513-68bc896483ac","owner":"2739249","values":[{"key":"base_url","value":"https://sandbox-api.transactbridge.com","enabled":true,"type":"default"},{"key":"x-api-key","value":"tb_test_M5nAR3Ck1YpesLiTjYbvDqJKuYPSbRxT","enabled":true,"type":"default"},{"key":"x-signature","value":"44d078cf6186339c3d2d2d200476c4f5d70f06f46b2a6ed103c7cf5484ff8573047d5707f8bd9a1af7a70709f9d8fc96ef361f535729aab1923c687d6ea91864","enabled":true,"type":"secret"},{"key":"x-signature-extended","value":"788099b52304f11247e814a94a92b34356e25d31864a4b0901fc7ba074e1868823b6689acdff1067b7529f0fb39db05e39ff3b4c53f1b5630c508b983d7e2b2f","enabled":true,"type":"secret"},{"key":"x-partner-merchant-id","value":"tb_test_DLUPZ5fyY0NsaJGGTwkl7TL8xAHb60Iu","enabled":true,"type":"default"},{"key":"tmp_token","value":"","enabled":true,"type":"default"},{"key":"jwt_token","value":"","enabled":true,"type":"default"}],"published":true}],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/e9f8b2e141ed854a3df42d023b960dbf8c318a6cc3cd91de602ea5eba389be34","favicon":"https://transactbridge.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"},{"label":"Sandbox","value":"2739249-cdd0305b-2c37-4940-8513-68bc896483ac"}],"canonicalUrl":"https://docs.transactbridge.com/view/metadata/2s9Y5Zv2RP"}