{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"6179099f-0000-452e-908b-9f40bdce1f58","name":"INXY Payment gateway API v1","description":"[INXY.io](https://inxy.io) is a fintech platform that combines on-chain and off-chain solutions to simplify payments in cryptocurrency.\n\n**INXY Payment Gateway API** allows you to **accept payments** in a wide range of cryptos and get them instantly to your balance.\n\n# Sandbox\n\n#### Before production usage, you can test our API using the Sandbox.\n\nProduction URL: [https://api.inxy.io](https://api.inxy.io)\n\nSandbox URL: [https://api.sandbox-inxy.io](https://api.sandbox-inxy.io)\n\nIn order to get access to Sandbox, you should:\n\n\\* Create account on [https://app.sandbox-inxy.io](https://app.sandbox-inxy.io)  \n\\* Complete merchant profile  \n\\* Genereate API keys - these are Sandbox API keys\n\n#### All currencies in Sandbox work on test environment:\n\nDOGE/LTC/BTC - testnet  \nETH/USDT/USDC/DAI - sepolia\n\n#### List of contracts we use in sandbox:\n\n```\n USDT erc20        | 0xc67b55ddf7edbbb8226eb947eec2ddc16c2fadf0\n DAI         | 0xdc31Ee1784292379Fbb2964b3B9C4124D8F89C60\n USDC        | 0xD87Ba7A50B2E7E660f678A895E4B72E7CB4CCd9C\n\n ```\n\n# List of IPs\n\nAll webhooks are sent form these IPs. You can add them to your server whitelist if needed:\n\n**Sandbox**\n\n- `88.208.3.157`\n    \n- `13.62.133.170`\n    \n\n**Production**\n\n- `159.69.13.203`\n    \n- `3.64.216.48`\n    \n- `51.20.226.59`\n    \n- `51.21.206.133`\n    \n- `16.16.62.50`\n    \n\n# Authentication\n\nTo use the INXY Payment gateway API you should do the following:\n\n\\* Sign up at [inxy.io](https://inxy.io)  \n\\* Complete merchant profile  \n\\* Generate an API key  \n\\* Generate a Secret key (if needed)\n\n# Payment gateway lifecycle\n\nThe Checkout Session is a programmatic representation of what your customers see on the INXY-hosted payment page. After creating a Checkout Session, redirect your customers to the Session’s URL to complete the purchase. When customers complete their purchase, you can fulfill their orders.\n\n\\* When customers are ready to complete their purchase on your site, your application sends a Create Checkout Session request to our system.  \n\\* Based on information received our system creates a new Checkout Session.  \n\\* The Checkout Session provides an INXY-hosted payment page.  \n\\* The URL is sent back to your system and you use it to redirect customer to an INXY-hosted checkout page.  \n\\* Customers enter their payment details on the payment page.  \n\\* After the Pay button is pressed a Payment Intent is created and corresponding webhook is sent to your Postback URL  \n\\* After the transaction is complete, a Payment Session is complete and corresponding webhook is sent to your Postback URL\n\n# One time payment flows\n\n### Payment successful\n\n<img src=\"https://content.pstmn.io/6919ce1f-42c3-4357-9194-6351c11fcd3a/YXBpLXN1Y2Nlc3Mtc2ltcGxlLnBuZw==\">\n\n### Payment expired\n\n<img src=\"https://content.pstmn.io/c2c801be-471c-4610-a3f7-86cbcc1dcc16/YXBpLXRpbWVvdXQucG5n\">\n\n### Payment cancelled\n\n<img src=\"https://content.pstmn.io/ae3a4055-6026-484c-b1fa-bf53e5a69052/YXBpLWNhbmNlbC5wbmc=\">\n\n### Partial payment\n\n<img src=\"https://content.pstmn.io/ea91412d-6f57-417c-9f1a-d49e1b45ed72/YXBpLXBhcnRpYWwucG5n\">\n\n# Errors (HTTP response codes)\n\nINXY uses conventional HTTP response codes to indicate the success or failure of an API request. In general: Codes in the 2xx range indicate success. Codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a charge failed, etc.). Codes in the 5xx range indicate an error with INXY's servers (these are rare).\n\n| **Error code** | **Response** | **Explanation** |\n| --- | --- | --- |\n| 200 | **OK** | Everything worked as expected. |\n| 400 | **Bad Request** | The request was unacceptable, often due to missing a required parameter. |\n| 401 | **Unauthorized** | No valid API key provided. |\n| 403 | **Forbidden** | The API key doesn't have permissions to perform the request. |\n| 404 | **Not Found** | The requested resource doesn't exist. |\n| 422 | **Unprocessable Entity** | The request could not be understood by the server due to malformed syntax. |\n| 429 | **Too Many Requests** | Too many requests hit the API too quickly. We recommend an exponential backoff of your requests. |\n| 500, 502, 503, 504 | **Server Errors** | Something went wrong on INXY's end. |\n\n# SDK\n\nYou can find SDK for the INXY Payment API here:\n\n[https://github.com/inxy-payments/merchant-sdk](https://github.com/inxy-payments/merchant-sdk)\n\nThere are options:  \n\\- PHP 5.6  \n\\- PHP 7.0  \n\\- PHP 8.0\n\n# Transaction Handling\n\nIn the context of our payment service, we have enhanced the transaction verification flow to improve security and regulatory compliance. This process includes a mandatory Know Your Transaction (KYT) check for all incoming transactions. Below is the updated process for handling transactions flagged as Very High Risk during the KYT review:\n\n### Transaction Flow for Very High Risk Transactions\n\n**1\\. Transaction Initiation:**\n\n- A user initiates a transaction to make a payment.\n    \n\n**2\\. KYT Review:**\n\n- Once the transaction is detected, it undergoes an automatic KYT check.\n    \n- If flagged as **Very High Risk**, the transaction status changes to **`payments.pending_review`** for further analysis.\n    \n\n**3\\. Additional Investigation:**\n\n- An AML officer reviews the transaction:\n    \n    - If cleared, the status updates to **`payments.received`**.\n        \n    - If violations are detected, the status changes to **`payments.seized`**, and the funds are frozen.\n        \n    - If the transaction must be refunded, the status updates to **`payments.returned`**.\n        \n\n**4\\. Payment Session Status:**\n\n- The open payment session reflects the updated status (**pending_review**, **seized**, or **returned**).\n    \n- If funds are seized or returned, further payment activities are no longer possible.\n    \n\n#### **Webhooks and Notifications**\n\n**When a transaction is flagged or its status changes, the following webhooks are triggered:**\n\n- **`payments.pending_review`** → Sent when a transaction is under KYT review.\n    \n- **`payments.seized`** → Sent if funds are frozen due to compliance violations.\n    \n- **`payments.returned`** → Sent when funds are returned to the sender.\n    \n\nBy implementing this multi-step verification process, we ensure enhanced security and compliance, maintaining the integrity of all transactions processed through **INXY Payments**.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"23101517","team":7487249,"collectionId":"6179099f-0000-452e-908b-9f40bdce1f58","publishedId":"VUxNS84v","public":true,"publicUrl":"https://documenter-api.postman.tech/view/23101517/VUxNS84v","privateUrl":"https://go.postman.co/documentation/23101517-6179099f-0000-452e-908b-9f40bdce1f58","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.10.1","publishDate":"2022-08-31T09:25:12.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/21b6c6c2cdb67141df029c5fc0b3eb9548b1662f00eb9ab5c40b8256038ce2bb","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/VUxNS84v"}