{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"27163ecd-d822-4f67-8c79-92eaa0cccee8","name":"NOWPayments API Sandbox","description":"# Sandbox environment notice\n\n_Since 2025, the Sandbox environment is no longer actively maintained or kept in sync with Production. As a result, API methods, responses, status transitions, and other behavior in Sandbox may differ from the current Production environment._\n\n**Production should be considered the source of truth for the current API behavior.** If you need to validate your integration against the latest API implementation, we recommend performing the necessary checks in Production using appropriate safeguards.\n\nThe Sandbox environment remains available on an **as-is basis**. **Please note that compatibility with Production is not guaranteed, and integrations should not rely on Sandbox behavior when making assumptions about Production.**\n\n## About NOWPayments\n\nNOWPayments is a custodial cryptocurrency payment processing platform. Accept payments in a wide range of cryptos and get them instantly converted into a coin of your choice and sent to your balance. Keeping it simple – no excess.  \nThis is a sandbox API , where you can test everything without sending real money, simply specify the case which you want to test and we will emulate a real-like flow of payment processing.\n\n# Authentication\n\nTo use the NOWPayments API you should do the following:\n\n- Sign up at [account-sandbox.nowpayments.io](https://account-sandbox.nowpayments.io)\n    \n- Specify your outcome wallet\n    \n- Generate an API key\n    \n\n# API Documentation\n\n## Sandbox difference\n\nIn the sandbox you don't need to send any funds to test our API.  \nJust specify the ‘case’ parameter in the create payment request and get notifications for each of the presented cases.\n\nTesting flow:\n\n1. Create payment with specified 'case' parameter.\n    \n2. Check the payment status or simply wait for an ipn request.\n    \n3. Get all notifications for all specified flow.\n    \n\n## Instant Payments Notifications\n\nIPN (Instant payment notifications, or callbacks) are used to notify you when transaction status is changed.  \nTo use them, you should complete the following steps:\n\n1.Generate and save the IPN Secret key in Store Settings tab at the Dashboard.\n\n2.Insert the link where you want to get callbacks in create_payment request.  \nThe parameter name is ipn_callback_url\n\n3.You will receive all the parameters at this URL by POST request.\n\n4.Sort all the parameters in alphabetical order.\n\n5.Convert them to string using JSON.stringify(params, Object.keys(params).sort()) or the same function.\n\n6.Sign a string with an IPN-secret key with HMAC and sha-512 key\n\n7.Compare the signed string from the previous step with the x-nowpayments-sig , which is stored in the header of the callback request.  \nIf these strings are similar it is a success.  \nOtherwise, contact us on [support@nowpayments.io](https://mailto:support@nowpayments.io) to solve the problem.\n\nExample of creating a signed string at Node.JS\n\n``` plaintext\nconst hmac = crypto.createHmac('sha512', notificationsKey);\nhmac.update(JSON.stringify(params, Object.keys(params).sort()));\nconst signature = hmac.digest('hex');\n\n ```\n\nExample of comparing signed strings in PHP\n\n```\nfunction check_ipn_request_is_valid()\n    {\n        $error_msg = \"Unknown error\";\n        $auth_ok = false;\n        $request_data = null;\n        if (isset($_SERVER['HTTP_X_NOWPAYMENTS_SIG']) && !empty($_SERVER['HTTP_X_NOWPAYMENTS_SIG'])) {\n            $recived_hmac = $_SERVER['HTTP_X_NOWPAYMENTS_SIG'];\n            $request_json = file_get_contents('php://input');\n            $request_data = json_decode($request_json, true);\n            ksort($request_data);\n            $sorted_request_json = json_encode($request_data);\n            if ($request_json !== false && !empty($request_json)) {\n                $hmac = hash_hmac(\"sha512\", $sorted_request_json, trim($this->ipn_secret));\n                if ($hmac == $recived_hmac) {\n                    $auth_ok = true;\n                } else {\n                    $error_msg = 'HMAC signature does not match';\n                }\n            } else {\n                $error_msg = 'Error reading POST data';\n            }\n        } else {\n            $error_msg = 'No HMAC signature sent.';\n        }\n    }\n\n ```\n\n## Several payments for one order\n\nIf you want to create several payments for one Order you should do the following:\n\n- Create a payment for the full order amount.\n    \n- Save \"purchase_id\" which will be in \"create_payment\" response\n    \n- Create next payment or payments with this \"purchase_id\" in \"create_payment\" request.\n    \n\nIt may be useful if you want to give your customers opportunity to pay a full order with several payments, for example, one part in BTC and one part in ETH. Also, if your customer accidentally paid you only part of a full amount, you can automatically ask them to make another payment.\n\n## Payments","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"7907941","team":411802,"collectionId":"27163ecd-d822-4f67-8c79-92eaa0cccee8","publishedId":"T1LSCRHC","public":true,"publicUrl":"https://documenter-api.postman.tech/view/7907941/T1LSCRHC","privateUrl":"https://go.postman.co/documentation/7907941-27163ecd-d822-4f67-8c79-92eaa0cccee8","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"64ACFF"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"dark","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"64ACFF"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"64ACFF"}}]}},"version":"8.12.6","publishDate":"2023-09-12T09:52:14.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"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/4cdafe0c99d47ced702482e394e077d26df58a20ae76a604273728139b829231","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/T1LSCRHC"}