{"items":[{"type":"link","label":"NapoleonPay API Docs","link":"/apis/napoleonpay/openapi","routeSlug":"/apis/napoleonpay/openapi","content":{"contentType":"overview","meta":{"name":"NapoleonPay API Docs"},"children":[{"nodeType":"container","panels":[{"title":"Download OpenAPI description","titleTranslationKey":"download.description.title","children":[{"kind":"download","label":"openapi.json","url":"/_bundle/apis/napoleonpay/@1.6/openapi.json?download"},{"kind":"download","label":"openapi.yaml","url":"/_bundle/apis/napoleonpay/@1.6/openapi.yaml?download"}]},{"title":"Overview","titleTranslationKey":"info.title","children":[{"kind":"externallink","title":"License","titleTranslationKey":"info.license","label":"Proprietary — © NapoleonPay","url":"https://napoleonpay.com"}]},{"title":"Languages","titleTranslationKey":"languages.title","children":[{"kind":"languages","options":[{"key":"curl","title":"curl","lang":"curl"},{"key":"javascript","title":"JavaScript","lang":"JavaScript"},{"key":"node","title":"Node.js","lang":"Node.js"},{"key":"python","title":"Python","lang":"Python"},{"key":"java","title":"Java","lang":"Java"},{"key":"csharp","title":"C#","lang":"C#"},{"key":"php","title":"PHP","lang":"PHP"},{"key":"go","title":"Go","lang":"Go"},{"key":"ruby","title":"Ruby","lang":"Ruby"},{"key":"r","title":"R","lang":"R"},{"key":"payload","title":"Payload","lang":"Payload"}]}]},{"title":"Servers","titleTranslationKey":"servers.title","children":[{"kind":"servers","servers":[{"url":"https://api.napoleonpay.com"}],"mode":"default"}]}],"children":[{"nodeType":"overview-section-wrapper","children":[{"nodeType":"header","level":1,"label":"NapoleonPay API Docs (1.6.0)","showPageActions":true},{"nodeType":"overview-section-wrapper","children":[{"nodeType":"markdoc","content":"NapoleonPay payment gateway API for creating payments and withdrawals"}],"sectionId":"/apis/napoleonpay/openapi"}],"sectionId":"/apis/napoleonpay/openapi"}]}]}},{"type":"group","label":"Authentication","link":"/apis/napoleonpay/openapi/authentication","routeSlug":"/apis/napoleonpay/openapi/authentication","items":[{"type":"link","label":"Two different secrets","link":"/apis/napoleonpay/openapi/authentication/two-different-secrets","routeSlug":"/apis/napoleonpay/openapi/authentication/two-different-secrets","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Two different secrets"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"authentication/two-different-secrets"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Two different secrets"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"You are issued "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"two"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" credentials, and they are not interchangeable:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"API key"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" identifies you and goes in the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Authorization: Bearer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" header;"},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"sign key"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is used only to compute the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Signature"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and is never transmitted."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Signing with the API key by mistake is a common cause of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"401"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}],"panels":[]}]}},{"type":"link","label":"Signing a request","link":"/apis/napoleonpay/openapi/authentication/signing-a-request","routeSlug":"/apis/napoleonpay/openapi/authentication/signing-a-request","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Signing a request"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"authentication/signing-a-request"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Signing a request"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Build the JSON body "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"once"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", compute an HMAC-SHA256 of that exact string using your sign key, then send the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"same"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" string as the request body. The signed bytes and the transmitted bytes must be "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"byte-for-byte identical"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"JSON formatting is up to you."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" The signature is verified against the raw request body exactly as received, so indentation, line breaks, key order, and escaped or unescaped slashes make no difference — minified JSON works fine. You may see "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" in existing integrations; those flags only make the payload easier to read while debugging and are "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"not"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" required."},"children":[]}]}]}]}],"panels":[]}]}},{"type":"link","label":"Reference","link":"/apis/napoleonpay/openapi/authentication/reference","routeSlug":"/apis/napoleonpay/openapi/authentication/reference","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Reference"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":3,"id":"authentication/reference"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Reference"},"children":[]}]}]},{"$$mdtype":"Node","type":"table","attributes":{},"children":[{"$$mdtype":"Node","type":"thead","attributes":{},"children":[{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"th","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Property"},"children":[]}]}]},{"$$mdtype":"Node","type":"th","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Value"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"tbody","attributes":{},"children":[{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Algorithm"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HMAC-SHA256"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Signed content"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The exact request body bytes you transmit"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Key"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Your "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"sign key"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Output"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Lowercase hexadecimal, 64 characters"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Comparison"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Byte-exact ("},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"hash_equals"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":") — an uppercase signature is rejected"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Encoding"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"UTF-8"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Request header"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Signature: <hex>"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Content-Type"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"application/json"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":";charset=utf-8"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" suffix is fine) — not part of the signature"},"children":[]}]}]}]}]}]}]}],"panels":[]}]}},{"type":"link","label":"PHP","link":"/apis/napoleonpay/openapi/authentication/php","routeSlug":"/apis/napoleonpay/openapi/authentication/php","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"PHP"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":3,"id":"authentication/php"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PHP"},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"$payload   = json_encode($requestData);\n$signature = hash_hmac('sha256', $payload, $signKey);\n\n$headers = [\n    'Content-Type: application/json',\n    'Authorization: Bearer ' . $apiKey,\n    'Signature: ' . $signature,\n];\n\n// Send the SAME $payload you signed:\ncurl_setopt($ch, CURLOPT_POSTFIELDS, $payload);\n","language":"php"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"$payload   = json_encode($requestData);\n$signature = hash_hmac('sha256', $payload, $signKey);\n\n$headers = [\n    'Content-Type: application/json',\n    'Authorization: Bearer ' . $apiKey,\n    'Signature: ' . $signature,\n];\n\n// Send the SAME $payload you signed:\ncurl_setopt($ch, CURLOPT_POSTFIELDS, $payload);\n"},"children":[]}]}]}],"panels":[]}]}},{"type":"link","label":"Node.js","link":"/apis/napoleonpay/openapi/authentication/node.js","routeSlug":"/apis/napoleonpay/openapi/authentication/node.js","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Node.js"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":3,"id":"authentication/node.js"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Node.js"},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"import crypto from 'node:crypto';\n\n// 1. Build the body ONCE (a string, not an object)\nconst payload = JSON.stringify(requestData);\n\n// 2. Sign that exact string -> lowercase hex\nconst signature = crypto\n  .createHmac('sha256', signKey)\n  .update(payload, 'utf8')\n  .digest('hex');\n\n// 3. Send the SAME string you signed\nconst response = await fetch('https://api.napoleonpay.com/api/v1/payments', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n    Authorization: `Bearer ${apiKey}`,\n    Signature: signature,\n  },\n  body: payload,\n});\n","language":"js"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"import crypto from 'node:crypto';\n\n// 1. Build the body ONCE (a string, not an object)\nconst payload = JSON.stringify(requestData);\n\n// 2. Sign that exact string -> lowercase hex\nconst signature = crypto\n  .createHmac('sha256', signKey)\n  .update(payload, 'utf8')\n  .digest('hex');\n\n// 3. Send the SAME string you signed\nconst response = await fetch('https://api.napoleonpay.com/api/v1/payments', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n    Authorization: `Bearer ${apiKey}`,\n    Signature: signature,\n  },\n  body: payload,\n});\n"},"children":[]}]}]}],"panels":[]}]}},{"type":"link","label":"Python","link":"/apis/napoleonpay/openapi/authentication/python","routeSlug":"/apis/napoleonpay/openapi/authentication/python","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Python"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":3,"id":"authentication/python"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Python"},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"import hashlib\nimport hmac\nimport json\n\nimport requests\n\n# 1. Build the body ONCE\npayload = json.dumps(request_data)\n\n# 2. Sign that exact string -> lowercase hex\nsignature = hmac.new(\n    sign_key.encode(\"utf-8\"),\n    payload.encode(\"utf-8\"),\n    hashlib.sha256,\n).hexdigest()\n\n# 3. Send the SAME string you signed.\n#    Use data=..., NOT json=... — json= re-serializes and breaks the signature.\nresponse = requests.post(\n    \"https://api.napoleonpay.com/api/v1/payments\",\n    data=payload.encode(\"utf-8\"),\n    headers={\n        \"Content-Type\": \"application/json\",\n        \"Authorization\": f\"Bearer {api_key}\",\n        \"Signature\": signature,\n    },\n)\n","language":"python"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"import hashlib\nimport hmac\nimport json\n\nimport requests\n\n# 1. Build the body ONCE\npayload = json.dumps(request_data)\n\n# 2. Sign that exact string -> lowercase hex\nsignature = hmac.new(\n    sign_key.encode(\"utf-8\"),\n    payload.encode(\"utf-8\"),\n    hashlib.sha256,\n).hexdigest()\n\n# 3. Send the SAME string you signed.\n#    Use data=..., NOT json=... — json= re-serializes and breaks the signature.\nresponse = requests.post(\n    \"https://api.napoleonpay.com/api/v1/payments\",\n    data=payload.encode(\"utf-8\"),\n    headers={\n        \"Content-Type\": \"application/json\",\n        \"Authorization\": f\"Bearer {api_key}\",\n        \"Signature\": signature,\n    },\n)\n"},"children":[]}]}]}],"panels":[]}]}},{"type":"link","label":"C#","link":"/apis/napoleonpay/openapi/authentication/c","routeSlug":"/apis/napoleonpay/openapi/authentication/c","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"C#"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":3,"id":"authentication/c"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"C#"},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"using System.Security.Cryptography;\nusing System.Text;\nusing System.Text.Json;\n\n// 1. Build the body ONCE\nvar payload = JsonSerializer.Serialize(requestData);\n\n// 2. Sign that exact string. ToHexString() returns UPPERCASE — lowercase it.\nusing var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(signKey));\nvar hash = hmac.ComputeHash(Encoding.UTF8.GetBytes(payload));\nvar signature = Convert.ToHexString(hash).ToLowerInvariant();\n\n// 3. Send the SAME string you signed\nusing var client = new HttpClient();\nvar content = new StringContent(payload, Encoding.UTF8, \"application/json\");\nclient.DefaultRequestHeaders.Add(\"Authorization\", $\"Bearer {apiKey}\");\nclient.DefaultRequestHeaders.Add(\"Signature\", signature);\n\nvar response = await client.PostAsync(\n    \"https://api.napoleonpay.com/api/v1/payments\", content);\n","language":"csharp"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"using System.Security.Cryptography;\nusing System.Text;\nusing System.Text.Json;\n\n// 1. Build the body ONCE\nvar payload = JsonSerializer.Serialize(requestData);\n\n// 2. Sign that exact string. ToHexString() returns UPPERCASE — lowercase it.\nusing var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(signKey));\nvar hash = hmac.ComputeHash(Encoding.UTF8.GetBytes(payload));\nvar signature = Convert.ToHexString(hash).ToLowerInvariant();\n\n// 3. Send the SAME string you signed\nusing var client = new HttpClient();\nvar content = new StringContent(payload, Encoding.UTF8, \"application/json\");\nclient.DefaultRequestHeaders.Add(\"Authorization\", $\"Bearer {apiKey}\");\nclient.DefaultRequestHeaders.Add(\"Signature\", signature);\n\nvar response = await client.PostAsync(\n    \"https://api.napoleonpay.com/api/v1/payments\", content);\n"},"children":[]}]}]}],"panels":[]}]}},{"type":"link","label":"Why a signature is rejected","link":"/apis/napoleonpay/openapi/authentication/why-a-signature-is-rejected","routeSlug":"/apis/napoleonpay/openapi/authentication/why-a-signature-is-rejected","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Why a signature is rejected"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":3,"id":"authentication/why-a-signature-is-rejected"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Why a signature is rejected"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Nearly every failure is the body changing between signing and sending:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Letting your HTTP client serialize for you."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Helpers that accept an object rather than a string re-encode it, producing different bytes than the ones you signed — for example Python's "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"requests.post(url, json=data)"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Build the string yourself and pass it as the raw body ("},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"data=payload"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":")."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Rebuilding, re-indenting or re-ordering the JSON after computing the signature."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Wrong signature format"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — it must be lowercase hex, not uppercase and not Base64."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Wrong key"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — see "},"children":[]},{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#two-different-secrets"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Two different secrets"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Non-ASCII values:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" PHP escapes non-ASCII characters to "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\\uXXXX"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" by default, while some stacks (for example JavaScript's "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"JSON.stringify"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":") emit raw UTF-8. These produce different bytes and therefore different signatures, so make sure the string you sign is the same string you transmit."},"children":[]}]}]}]}],"panels":[]}]}},{"type":"link","label":"Verifying a callback signature","link":"/apis/napoleonpay/openapi/authentication/verifying-a-callback-signature","routeSlug":"/apis/napoleonpay/openapi/authentication/verifying-a-callback-signature","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Verifying a callback signature"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"authentication/verifying-a-callback-signature"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Verifying a callback signature"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Every callback we send carries a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Signature"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" header — HMAC-SHA256 of the payload, lowercase hex, keyed with your sign key."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This works the opposite way to the requests you send us."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" When you call the API we hash the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"raw body exactly as received"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". For callbacks you must "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"not"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" hash the bytes you receive: the signature is computed over a "},"children":[]},{"$$mdtype":"Node","type":"em","inline":true,"attributes":{"marker":"*"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"canonical rendering"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" of the payload, while the HTTP body is serialized separately with different options. The two are never byte-identical, so hashing the received body always fails."},"children":[]}]}]}]}]}],"panels":[]}]}},{"type":"link","label":"The canonical form","link":"/apis/napoleonpay/openapi/authentication/the-canonical-form","routeSlug":"/apis/napoleonpay/openapi/authentication/the-canonical-form","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"The canonical form"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":3,"id":"authentication/the-canonical-form"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The canonical form"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Parse the JSON body, then re-serialize it with these exact rules — this is what PHP's "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"json_encode($payload, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT)"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" produces:"},"children":[]}]}]},{"$$mdtype":"Node","type":"table","attributes":{},"children":[{"$$mdtype":"Node","type":"thead","attributes":{},"children":[{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"th","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Rule"},"children":[]}]}]},{"$$mdtype":"Node","type":"th","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Detail"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"tbody","attributes":{},"children":[{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Indentation"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"4 spaces per level, "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\\n"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" line endings"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Key separator"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\": \""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (colon + single space)"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Key order"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Exactly as received — never sorted"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Forward slashes"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Not"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" escaped — "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"https://example.com/x"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Non-ASCII"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Escaped as lowercase "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\\uXXXX"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (per UTF-16 code unit)"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Whole numbers"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"No fractional part — "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"100.0"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is rendered as "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"100"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Empty object"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Rendered as "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"[]"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", not "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"{}"},"children":[]}]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Then HMAC-SHA256 that string with your sign key and compare it to the header, using a constant-time comparison."},"children":[]}]}]}]}],"panels":[]}]}},{"type":"link","label":"PHP","link":"/apis/napoleonpay/openapi/authentication/php","routeSlug":"/apis/napoleonpay/openapi/authentication/php","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"PHP"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":3,"id":"authentication/php"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PHP"},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"$raw  = file_get_contents('php://input');\n$data = json_decode($raw, true);\n\n// Rebuild the canonical form — do NOT hash $raw\n$canonical = json_encode($data, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT);\n$expected  = hash_hmac('sha256', $canonical, $signKey);\n\nif (!hash_equals($expected, $_SERVER['HTTP_SIGNATURE'] ?? '')) {\n    http_response_code(401);\n    exit;\n}\n\nhttp_response_code(200); // acknowledge\n","language":"php"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"$raw  = file_get_contents('php://input');\n$data = json_decode($raw, true);\n\n// Rebuild the canonical form — do NOT hash $raw\n$canonical = json_encode($data, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT);\n$expected  = hash_hmac('sha256', $canonical, $signKey);\n\nif (!hash_equals($expected, $_SERVER['HTTP_SIGNATURE'] ?? '')) {\n    http_response_code(401);\n    exit;\n}\n\nhttp_response_code(200); // acknowledge\n"},"children":[]}]}]}],"panels":[]}]}},{"type":"link","label":"Node.js","link":"/apis/napoleonpay/openapi/authentication/node.js","routeSlug":"/apis/napoleonpay/openapi/authentication/node.js","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Node.js"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":3,"id":"authentication/node.js"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Node.js"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"JSON.stringify"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" already drops the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":".0"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" from whole numbers, but it emits raw UTF-8 where PHP escapes it, and keeps "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"{}"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for empty objects — both are corrected below."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"import crypto from 'node:crypto';\n\nconst canonicalise = (v) =>\n  Array.isArray(v)\n    ? v.map(canonicalise)\n    : v && typeof v === 'object'\n      ? (Object.keys(v).length\n          ? Object.fromEntries(Object.entries(v).map(([k, x]) => [k, canonicalise(x)]))\n          : [])                                    // empty object -> []\n      : v;\n\nconst escapeNonAscii = (s) =>\n  s.replace(/[-￿]/g, (c) =>\n    '\\\\u' + c.charCodeAt(0).toString(16).padStart(4, '0'));\n\n// rawBody must be the untouched request body string, not a re-serialized object\nexport function verifyCallback(rawBody, signatureHeader, signKey) {\n  const canonical = escapeNonAscii(\n    JSON.stringify(canonicalise(JSON.parse(rawBody)), null, 4)\n  );\n  const expected = crypto\n    .createHmac('sha256', signKey)\n    .update(canonical, 'utf8')\n    .digest('hex');\n\n  const a = Buffer.from(expected);\n  const b = Buffer.from(signatureHeader || '');\n  return a.length === b.length && crypto.timingSafeEqual(a, b);\n}\n","language":"js"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"import crypto from 'node:crypto';\n\nconst canonicalise = (v) =>\n  Array.isArray(v)\n    ? v.map(canonicalise)\n    : v && typeof v === 'object'\n      ? (Object.keys(v).length\n          ? Object.fromEntries(Object.entries(v).map(([k, x]) => [k, canonicalise(x)]))\n          : [])                                    // empty object -> []\n      : v;\n\nconst escapeNonAscii = (s) =>\n  s.replace(/[-￿]/g, (c) =>\n    '\\\\u' + c.charCodeAt(0).toString(16).padStart(4, '0'));\n\n// rawBody must be the untouched request body string, not a re-serialized object\nexport function verifyCallback(rawBody, signatureHeader, signKey) {\n  const canonical = escapeNonAscii(\n    JSON.stringify(canonicalise(JSON.parse(rawBody)), null, 4)\n  );\n  const expected = crypto\n    .createHmac('sha256', signKey)\n    .update(canonical, 'utf8')\n    .digest('hex');\n\n  const a = Buffer.from(expected);\n  const b = Buffer.from(signatureHeader || '');\n  return a.length === b.length && crypto.timingSafeEqual(a, b);\n}\n"},"children":[]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"In Express, register the route with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"express.raw({ type: 'application/json' })"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" so you receive the original bytes — "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"express.json()"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" parses and discards them."},"children":[]}]}]}]}]}],"panels":[]}]}},{"type":"link","label":"Python","link":"/apis/napoleonpay/openapi/authentication/python","routeSlug":"/apis/napoleonpay/openapi/authentication/python","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Python"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":3,"id":"authentication/python"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Python"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"json.dumps(..., indent=4)"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" matches on indentation and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\\uXXXX"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" escaping, but renders "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"100.0"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" instead of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"100"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and keeps "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"{}"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — both are corrected below."},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"import hashlib\nimport hmac\nimport json\n\n\ndef _canonicalise(value):\n    if isinstance(value, bool):\n        return value\n    if isinstance(value, float) and value.is_integer():\n        return int(value)                       # 100.0 -> 100\n    if isinstance(value, dict):\n        return {k: _canonicalise(v) for k, v in value.items()} if value else []\n    if isinstance(value, list):\n        return [_canonicalise(v) for v in value]\n    return value\n\n\ndef verify_callback(raw_body: str, signature_header: str, sign_key: str) -> bool:\n    canonical = json.dumps(_canonicalise(json.loads(raw_body)), indent=4)\n    expected = hmac.new(\n        sign_key.encode(\"utf-8\"),\n        canonical.encode(\"utf-8\"),\n        hashlib.sha256,\n    ).hexdigest()\n    return hmac.compare_digest(expected, signature_header or \"\")\n","language":"python"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"import hashlib\nimport hmac\nimport json\n\n\ndef _canonicalise(value):\n    if isinstance(value, bool):\n        return value\n    if isinstance(value, float) and value.is_integer():\n        return int(value)                       # 100.0 -> 100\n    if isinstance(value, dict):\n        return {k: _canonicalise(v) for k, v in value.items()} if value else []\n    if isinstance(value, list):\n        return [_canonicalise(v) for v in value]\n    return value\n\n\ndef verify_callback(raw_body: str, signature_header: str, sign_key: str) -> bool:\n    canonical = json.dumps(_canonicalise(json.loads(raw_body)), indent=4)\n    expected = hmac.new(\n        sign_key.encode(\"utf-8\"),\n        canonical.encode(\"utf-8\"),\n        hashlib.sha256,\n    ).hexdigest()\n    return hmac.compare_digest(expected, signature_header or \"\")\n"},"children":[]}]}]}],"panels":[]}]}},{"type":"link","label":"Other languages","link":"/apis/napoleonpay/openapi/authentication/other-languages","routeSlug":"/apis/napoleonpay/openapi/authentication/other-languages","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Other languages"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":3,"id":"authentication/other-languages"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Other languages"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Implement the canonical form exactly as specified above. The defaults of most JSON libraries differ in at least one respect — indentation width, uppercase hex in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\\u"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" escapes, key re-ordering, or how whole-number floats are rendered — so verify your output byte-for-byte against a known-good payload before going live."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bodies are UTF-8 in both directions, and callbacks are sent with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Content-Type: application/json"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}],"panels":[]}]}},{"type":"link","label":"Test vector","link":"/apis/napoleonpay/openapi/authentication/test-vector","routeSlug":"/apis/napoleonpay/openapi/authentication/test-vector","content":{"contentType":"item","itemVariant":"markdown","meta":{"name":"Test vector"},"children":[{"nodeType":"container","children":[{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"heading","attributes":{"level":3,"id":"authentication/test-vector"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Test vector"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Check your implementation against this known-good result before going live. The signature is the HMAC-SHA256 of the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"canonical form"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", not of the bytes you receive."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Sign key"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"test_sign_key_0123456789abcdef\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"test_sign_key_0123456789abcdef\n"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Payload as received"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"{\n  \"id\": \"01a10000-0000-7000-8000-000000000001\",\n  \"reference\": \"PAYOUT-2026-000123\",\n  \"paymentStatus\": \"COMPLETED\",\n  \"paymentType\": \"WITHDRAWAL\",\n  \"paymentMethod\": \"CARD\",\n  \"amount\": 50,\n  \"currency\": \"EUR\",\n  \"created\": {\n    \"date\": \"2026-10-06 12:34:56.000000\",\n    \"timezone_type\": 3,\n    \"timezone\": \"Europe/Vilnius\"\n  },\n  \"customer\": {\n    \"firstName\": \"JOHN\",\n    \"lastName\": \"DOE\",\n    \"email\": null,\n    \"phone\": null,\n    \"ipaddress\": null,\n    \"dateOfBirth\": null,\n    \"referenceId\": \"PLAYER-10045\",\n    \"accountNumber\": null,\n    \"bankCode\": null\n  },\n  \"providerId\": \"01a10000-0000-7000-8000-000000000001\",\n  \"fallbackPaymentStatus\": \"default\"\n}\n","language":"json"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"{\n  \"id\": \"01a10000-0000-7000-8000-000000000001\",\n  \"reference\": \"PAYOUT-2026-000123\",\n  \"paymentStatus\": \"COMPLETED\",\n  \"paymentType\": \"WITHDRAWAL\",\n  \"paymentMethod\": \"CARD\",\n  \"amount\": 50,\n  \"currency\": \"EUR\",\n  \"created\": {\n    \"date\": \"2026-10-06 12:34:56.000000\",\n    \"timezone_type\": 3,\n    \"timezone\": \"Europe/Vilnius\"\n  },\n  \"customer\": {\n    \"firstName\": \"JOHN\",\n    \"lastName\": \"DOE\",\n    \"email\": null,\n    \"phone\": null,\n    \"ipaddress\": null,\n    \"dateOfBirth\": null,\n    \"referenceId\": \"PLAYER-10045\",\n    \"accountNumber\": null,\n    \"bankCode\": null\n  },\n  \"providerId\": \"01a10000-0000-7000-8000-000000000001\",\n  \"fallbackPaymentStatus\": \"default\"\n}\n"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Canonical form — this exact string is what gets hashed"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"{\n    \"id\": \"01a10000-0000-7000-8000-000000000001\",\n    \"reference\": \"PAYOUT-2026-000123\",\n    \"paymentStatus\": \"COMPLETED\",\n    \"paymentType\": \"WITHDRAWAL\",\n    \"paymentMethod\": \"CARD\",\n    \"amount\": 50,\n    \"currency\": \"EUR\",\n    \"created\": {\n        \"date\": \"2026-10-06 12:34:56.000000\",\n        \"timezone_type\": 3,\n        \"timezone\": \"Europe/Vilnius\"\n    },\n    \"customer\": {\n        \"firstName\": \"JOHN\",\n        \"lastName\": \"DOE\",\n        \"email\": null,\n        \"phone\": null,\n        \"ipaddress\": null,\n        \"dateOfBirth\": null,\n        \"referenceId\": \"PLAYER-10045\",\n        \"accountNumber\": null,\n        \"bankCode\": null\n    },\n    \"providerId\": \"01a10000-0000-7000-8000-000000000001\",\n    \"fallbackPaymentStatus\": \"default\"\n}\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"{\n    \"id\": \"01a10000-0000-7000-8000-000000000001\",\n    \"reference\": \"PAYOUT-2026-000123\",\n    \"paymentStatus\": \"COMPLETED\",\n    \"paymentType\": \"WITHDRAWAL\",\n    \"paymentMethod\": \"CARD\",\n    \"amount\": 50,\n    \"currency\": \"EUR\",\n    \"created\": {\n        \"date\": \"2026-10-06 12:34:56.000000\",\n        \"timezone_type\": 3,\n        \"timezone\": \"Europe/Vilnius\"\n    },\n    \"customer\": {\n        \"firstName\": \"JOHN\",\n        \"lastName\": \"DOE\",\n        \"email\": null,\n        \"phone\": null,\n        \"ipaddress\": null,\n        \"dateOfBirth\": null,\n        \"referenceId\": \"PLAYER-10045\",\n        \"accountNumber\": null,\n        \"bankCode\": null\n    },\n    \"providerId\": \"01a10000-0000-7000-8000-000000000001\",\n    \"fallbackPaymentStatus\": \"default\"\n}\n"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Expected "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Signature"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" header"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"4bc50699f81c526281d40c14a9d64a72ef3575960cc24c20ab7059243f048b6a\n"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"4bc50699f81c526281d40c14a9d64a72ef3575960cc24c20ab7059243f048b6a\n"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"If your canonical string matches byte for byte but the signature differs, the problem is the key or the HMAC call. If the signature differs and the canonical string does too, compare them line by line — indentation, escaping and whole-number formatting are the usual culprits."},"children":[]}]}]}]}],"panels":[]}]}}],"content":{"contentType":"group","meta":{"name":"Authentication"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Authentication","showPageActions":true},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Every request to the NapoleonPay API carries "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"two headers"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":":"},"children":[]}]}]},{"$$mdtype":"Node","type":"table","attributes":{},"children":[{"$$mdtype":"Node","type":"thead","attributes":{},"children":[{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"th","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Header"},"children":[]}]}]},{"$$mdtype":"Node","type":"th","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Value"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"tbody","attributes":{},"children":[{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Authorization"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Bearer <API_KEY>"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Signature"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HMAC SHA-256 of the request body, hex-encoded, keyed with your sign key"},"children":[]}]}]}]}]}]}]}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/authentication"}],"panels":[]}]}},{"type":"group","label":"Payments","link":"/apis/napoleonpay/openapi/payments","routeSlug":"/apis/napoleonpay/openapi/payments","items":[{"label":"Create a deposit or a withdrawal","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/napoleonpay/openapi/payments/createpayment","routeSlug":"/apis/napoleonpay/openapi/payments/createpayment","metadata":{"seo":{"title":"Create a deposit or a withdrawal","description":"Create a deposit or a withdrawal by using a single endpoint. The paymentType field determines the operation:"}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"createPayment","name":"Create a deposit or a withdrawal","isWebhook":false,"pointer":"/paths/~1api~1v1~1payments/post","hasSamples":true},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Create a deposit or a withdrawal","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Create a deposit or a withdrawal by using a single endpoint. The "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" field determines the operation:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DEPOSIT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — fund an account via Apple Pay, Google Pay, BLIK, CARD, ONRAMP, PAYID, or a European bank-redirect APM (iDEAL, Bancontact, Multibanco, EPS, Przelewy24)."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"WITHDRAWAL"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — send funds out via PAYID, SEPA, FPS or CARD."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3,"id":"payments/createpayment/request/payment-types-and-methods","deepLinkHash":"/payments/createpayment#payments/createpayment/request/payment-types-and-methods"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Payment types & methods"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Choose a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", then a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" valid for that type:"},"children":[]}]}]},{"$$mdtype":"Node","type":"table","attributes":{},"children":[{"$$mdtype":"Node","type":"thead","attributes":{},"children":[{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"th","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"paymentType"},"children":[]}]}]},{"$$mdtype":"Node","type":"th","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"paymentMethod"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"tbody","attributes":{},"children":[{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DEPOSIT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (pay-in)"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"APPLEPAY, GOOGLEPAY, BLIK, CARD, ONRAMP, PAYID, IDEAL, BANCONTACT, MULTIBANCO, EPS, P24"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"WITHDRAWAL"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (payout)"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PAYID, SEPA, FPS, CARD"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"DEPOSIT"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — onramp terminals only"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"USER_CHOICE, ONRAMP_PAYID, ONRAMP_PIX, ONRAMP_ZAR, ONRAMP_PSE, ONRAMP_KHIPU, ONRAMP_QRTHWALLET, ONRAMP_CARD, ONRAMP_INTERAC, ONRAMP_OPENBANKING, ONRAMP_GBPBANKTRANSFER, ONRAMP_SPEI, ONRAMP_APPLEPAY, ONRAMP_GOOGLEPAY"},"children":[]}]}]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The last row applies only when your terminal is configured for onramp. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"USER_CHOICE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" lets the customer pick in the widget; an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ONRAMP_*"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" value pins the widget to that one method. See "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Onramp — deposit"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" in the request selector."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"When making an NFT purchase only the methods APPLEPAY, GOOGLEPAY, OPENBANKING, CARD are available."},"children":[]},{"$$mdtype":"Node","type":"softbreak","inline":true,"attributes":{},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The request schema depends on "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"payments/createpayment/request/authentication","deepLinkHash":"/payments/createpayment#payments/createpayment/request/authentication"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Every request needs an "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Authorization: Bearer <API_KEY>"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" header and a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Signature"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" header — HMAC-SHA256 of the request body, keyed with your sign key. Ready-to-run samples in PHP, Node.js, Python and C# are in the request samples panel."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"See "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#tag/Authentication"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for the full details, including why signatures get rejected and how to verify the ones we send you."},"children":[]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"Bearer","scopes":[],"type":"http","scheme":"bearer","description":"API Key used as a Bearer token"},{"name":"Signature","scopes":[],"type":"apiKey","in":"header","paramName":"Signature","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HMAC SHA-256 signature of the request payload, sent in the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Signature"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" header. Compute it as "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"hash_hmac('sha256', body, signKey)"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" over the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"exact JSON body"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" you send — see the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" section of the "},"children":[]},{"$$mdtype":"Node","type":"em","inline":true,"attributes":{"marker":"*"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Create a deposit or a withdrawal"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" operation for a full PHP example."},"children":[]}]}]}]}]}]},{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PaymentRequest","exampleIds":["paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/ApplePay","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/PAYID","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/GooglePay","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/BLIK","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CARD","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CardNFT","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/ONRAMP","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/PAYIDWithdrawal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/SEPAWithdrawal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/FPSWithdrawal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Ideal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Bancontact","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Multibanco","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Eps","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Przelewy24","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CardWithdrawal"]}},"schemaId":"components/schemas/PaymentRequest","exampleIds":["paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/ApplePay","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/PAYID","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/GooglePay","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/BLIK","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CARD","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CardNFT","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/ONRAMP","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/PAYIDWithdrawal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/SEPAWithdrawal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/FPSWithdrawal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Ideal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Bancontact","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Multibanco","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Eps","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Przelewy24","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CardWithdrawal"],"pointer":"/paths/~1api~1v1~1payments/post/requestBody"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"POST","path":"/api/v1/payments","servers":[{"url":"https://api.napoleonpay.com"}],"parameters":{"path":[],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"Bearer","type":"http","scheme":"bearer"},{"id":"Signature","type":"apiKey","name":"Signature","in":"header"}],"scopes":[]}],"requestBody":{"application/json":{"schemaId":"components/schemas/PaymentRequest","exampleIds":["paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/ApplePay","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/PAYID","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/GooglePay","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/BLIK","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CARD","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CardNFT","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/ONRAMP","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/PAYIDWithdrawal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/SEPAWithdrawal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/FPSWithdrawal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Ideal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Bancontact","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Multibanco","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Eps","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Przelewy24","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CardWithdrawal"]}},"responseCodes":["200","400","401","422"],"pointer":"/api/v1/payments","href":"payments/createpayment","openApiOperationId":"createPayment","summary":"Create a deposit or a withdrawal"},"definitionSamples":[{"lang":"PHP","label":"PHP","source":"<?php\n$apiKey  = 'YOUR_API_KEY';\n$signKey = 'YOUR_SIGN_KEY';\n\n$requestData = [\n    'paymentType'    => 'DEPOSIT',\n    'paymentMethod'  => 'APPLEPAY',\n    'amount'         => 20.00,\n    'currency'       => 'EUR',\n    'reference'      => 'YOUR-SYSTEM-TRX-ID',\n    'billingAddress' => ['countryCode' => 'LT'],\n    'returnUrl'      => 'https://example.com/return',\n    'webhookUrl'     => 'https://example.com/webhook',\n];\n\n// 1. Build the body ONCE\n$payload = json_encode($requestData);\n\n// 2. Sign that exact string\n$signature = hash_hmac('sha256', $payload, $signKey);\n\n// 3. Send the SAME string you signed\n$ch = curl_init('https://api.napoleonpay.com/api/v1/payments');\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, $payload);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n    'Content-Type: application/json',\n    'Authorization: Bearer ' . $apiKey,\n    'Signature: ' . $signature,\n]);\n\n$response = curl_exec($ch);\ncurl_close($ch);"},{"lang":"JavaScript","label":"Node.js","source":"import crypto from 'node:crypto';\n\nconst apiKey  = 'YOUR_API_KEY';\nconst signKey = 'YOUR_SIGN_KEY';\n\nconst requestData = {\n  paymentType: 'DEPOSIT',\n  paymentMethod: 'APPLEPAY',\n  amount: 20.0,\n  currency: 'EUR',\n  reference: 'YOUR-SYSTEM-TRX-ID',\n  billingAddress: { countryCode: 'LT' },\n  returnUrl: 'https://example.com/return',\n  webhookUrl: 'https://example.com/webhook',\n};\n\n// 1. Build the body ONCE (a string, not an object)\nconst payload = JSON.stringify(requestData);\n\n// 2. Sign that exact string -> lowercase hex\nconst signature = crypto\n  .createHmac('sha256', signKey)\n  .update(payload, 'utf8')\n  .digest('hex');\n\n// 3. Send the SAME string you signed\nconst response = await fetch('https://api.napoleonpay.com/api/v1/payments', {\n  method: 'POST',\n  headers: {\n    'Content-Type': 'application/json',\n    Authorization: `Bearer ${apiKey}`,\n    Signature: signature,\n  },\n  body: payload,\n});\n\nconst result = await response.json();"},{"lang":"Python","label":"Python","source":"import hashlib\nimport hmac\nimport json\n\nimport requests\n\napi_key = \"YOUR_API_KEY\"\nsign_key = \"YOUR_SIGN_KEY\"\n\nrequest_data = {\n    \"paymentType\": \"DEPOSIT\",\n    \"paymentMethod\": \"APPLEPAY\",\n    \"amount\": 20.00,\n    \"currency\": \"EUR\",\n    \"reference\": \"YOUR-SYSTEM-TRX-ID\",\n    \"billingAddress\": {\"countryCode\": \"LT\"},\n    \"returnUrl\": \"https://example.com/return\",\n    \"webhookUrl\": \"https://example.com/webhook\",\n}\n\n# 1. Build the body ONCE\npayload = json.dumps(request_data)\n\n# 2. Sign that exact string -> lowercase hex\nsignature = hmac.new(\n    sign_key.encode(\"utf-8\"),\n    payload.encode(\"utf-8\"),\n    hashlib.sha256,\n).hexdigest()\n\n# 3. Send the SAME string you signed.\n#    Use data=..., NOT json=... — json= re-serializes and breaks the signature.\nresponse = requests.post(\n    \"https://api.napoleonpay.com/api/v1/payments\",\n    data=payload.encode(\"utf-8\"),\n    headers={\n        \"Content-Type\": \"application/json\",\n        \"Authorization\": f\"Bearer {api_key}\",\n        \"Signature\": signature,\n    },\n)\n\nresult = response.json()"},{"lang":"C#","label":"C#","source":"using System.Security.Cryptography;\nusing System.Text;\nusing System.Text.Json;\n\nvar apiKey  = \"YOUR_API_KEY\";\nvar signKey = \"YOUR_SIGN_KEY\";\n\nvar requestData = new\n{\n    paymentType = \"DEPOSIT\",\n    paymentMethod = \"APPLEPAY\",\n    amount = 20.00,\n    currency = \"EUR\",\n    reference = \"YOUR-SYSTEM-TRX-ID\",\n    billingAddress = new { countryCode = \"LT\" },\n    returnUrl = \"https://example.com/return\",\n    webhookUrl = \"https://example.com/webhook\",\n};\n\n// 1. Build the body ONCE\nvar payload = JsonSerializer.Serialize(requestData);\n\n// 2. Sign that exact string. ToHexString() returns UPPERCASE — lowercase it.\nusing var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(signKey));\nvar hash = hmac.ComputeHash(Encoding.UTF8.GetBytes(payload));\nvar signature = Convert.ToHexString(hash).ToLowerInvariant();\n\n// 3. Send the SAME string you signed\nusing var client = new HttpClient();\nvar content = new StringContent(payload, Encoding.UTF8, \"application/json\");\nclient.DefaultRequestHeaders.Add(\"Authorization\", $\"Bearer {apiKey}\");\nclient.DefaultRequestHeaders.Add(\"Signature\", signature);\n\nvar response = await client.PostAsync(\n    \"https://api.napoleonpay.com/api/v1/payments\", content);\nvar result = await response.Content.ReadAsStringAsync();"}],"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://api.napoleonpay.com"}],"schemaId":"components/schemas/PaymentRequest","exampleIds":["paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/ApplePay","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/PAYID","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/GooglePay","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/BLIK","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CARD","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CardNFT","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/ONRAMP","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/PAYIDWithdrawal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/SEPAWithdrawal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/FPSWithdrawal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Ideal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Bancontact","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Multibanco","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Eps","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Przelewy24","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CardWithdrawal"],"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/PaymentRequest","exampleIds":["paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/ApplePay","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/PAYID","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/GooglePay","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/BLIK","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CARD","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CardNFT","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/ONRAMP","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/PAYIDWithdrawal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/SEPAWithdrawal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/FPSWithdrawal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Ideal","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Bancontact","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Multibanco","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Eps","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Przelewy24","paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CardWithdrawal"]}},"examples":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Payment created successfully."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The payment is returned "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"wrapped in a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"result"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" object"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":":"},"children":[]}]}]},{"$$mdtype":"Node","type":"fence","attributes":{"content":"{ \"result\": { \"id\": \"...\", \"paymentStatus\": \"PENDING\", ... } }\n","language":"json"},"children":[{"$$mdtype":"Node","type":"text","attributes":{"content":"{ \"result\": { \"id\": \"...\", \"paymentStatus\": \"PENDING\", ... } }\n"},"children":[]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"deposits (pay-ins)"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"result"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" includes a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"redirectUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — redirect your customer there to complete the payment. For "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"withdrawals (payouts)"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" there is no "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"redirectUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The payment starts as "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PENDING"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"; the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"final status (completed or failed) is delivered to your "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" as a callback"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (see "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Callbacks"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" below), not in this response. Note that webhook payloads are "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"not"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" wrapped in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"result"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — their fields are at the top level."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PAYID H2H deposits"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" additionally return the PayID transfer details as top-level fields alongside "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"result"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"number"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (the PayID address), "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"full_holder_name"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"payment_description"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"amount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"currency"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"uuid"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"order_id"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Display these to your customer so they can complete the bank transfer; there is no redirect in this flow."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PaymentCreatedBody","exampleIds":["paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/ApplePay","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/PAYID","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/PAYIDH2H","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/GooglePay","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Blik","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/CARD","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/ONRAMP","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Ideal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Bancontact","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Multibanco","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Eps","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Przelewy24","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/PAYIDWithdrawal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/SEPAWithdrawal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/FPSWithdrawal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/CardWithdrawal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Refused"]}},"schemaId":"components/schemas/PaymentCreatedBody","exampleIds":["paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/ApplePay","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/PAYID","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/PAYIDH2H","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/GooglePay","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Blik","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/CARD","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/ONRAMP","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Ideal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Bancontact","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Multibanco","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Eps","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Przelewy24","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/PAYIDWithdrawal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/SEPAWithdrawal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/FPSWithdrawal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/CardWithdrawal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Refused"]},{"code":"400","description":"The payment type or method is not enabled for this project.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/NotAllowedError","exampleIds":["paths/~1api~1v1~1payments/post/responses/400/content/application~1json/examples/TypeNotAllowed","paths/~1api~1v1~1payments/post/responses/400/content/application~1json/examples/NoTerminal"]}},"schemaId":"components/schemas/NotAllowedError","exampleIds":["paths/~1api~1v1~1payments/post/responses/400/content/application~1json/examples/TypeNotAllowed","paths/~1api~1v1~1payments/post/responses/400/content/application~1json/examples/NoTerminal"]},{"code":"401","description":"Missing or invalid API key.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/AuthError","exampleIds":["paths/~1api~1v1~1payments/post/responses/401/content/application~1json/examples/InvalidKey"]}},"schemaId":"components/schemas/AuthError","exampleIds":["paths/~1api~1v1~1payments/post/responses/401/content/application~1json/examples/InvalidKey"]},{"code":"422","description":"Input validation failed.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationProblem","exampleIds":["paths/~1api~1v1~1payments/post/responses/422/content/application~1json/examples/MissingField","paths/~1api~1v1~1payments/post/responses/422/content/application~1json/examples/DuplicateReference","paths/~1api~1v1~1payments/post/responses/422/content/application~1json/examples/BadPan"]}},"schemaId":"components/schemas/ValidationProblem","exampleIds":["paths/~1api~1v1~1payments/post/responses/422/content/application~1json/examples/MissingField","paths/~1api~1v1~1payments/post/responses/422/content/application~1json/examples/DuplicateReference","paths/~1api~1v1~1payments/post/responses/422/content/application~1json/examples/BadPan"]}],"pointer":"/paths/~1api~1v1~1payments/post/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/PaymentCreatedBody","exampleIds":["paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/ApplePay","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/PAYID","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/PAYIDH2H","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/GooglePay","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Blik","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/CARD","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/ONRAMP","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Ideal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Bancontact","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Multibanco","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Eps","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Przelewy24","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/PAYIDWithdrawal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/SEPAWithdrawal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/FPSWithdrawal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/CardWithdrawal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Refused"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/PaymentCreatedBody","exampleIds":["paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/ApplePay","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/PAYID","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/PAYIDH2H","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/GooglePay","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Blik","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/CARD","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/ONRAMP","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Ideal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Bancontact","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Multibanco","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Eps","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Przelewy24","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/PAYIDWithdrawal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/SEPAWithdrawal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/FPSWithdrawal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/CardWithdrawal","paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Refused"]}}},{"code":"400","schemaId":"components/schemas/NotAllowedError","exampleIds":["paths/~1api~1v1~1payments/post/responses/400/content/application~1json/examples/TypeNotAllowed","paths/~1api~1v1~1payments/post/responses/400/content/application~1json/examples/NoTerminal"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/NotAllowedError","exampleIds":["paths/~1api~1v1~1payments/post/responses/400/content/application~1json/examples/TypeNotAllowed","paths/~1api~1v1~1payments/post/responses/400/content/application~1json/examples/NoTerminal"]}}},{"code":"401","schemaId":"components/schemas/AuthError","exampleIds":["paths/~1api~1v1~1payments/post/responses/401/content/application~1json/examples/InvalidKey"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/AuthError","exampleIds":["paths/~1api~1v1~1payments/post/responses/401/content/application~1json/examples/InvalidKey"]}}},{"code":"422","schemaId":"components/schemas/ValidationProblem","exampleIds":["paths/~1api~1v1~1payments/post/responses/422/content/application~1json/examples/MissingField","paths/~1api~1v1~1payments/post/responses/422/content/application~1json/examples/DuplicateReference","paths/~1api~1v1~1payments/post/responses/422/content/application~1json/examples/BadPan"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/ValidationProblem","exampleIds":["paths/~1api~1v1~1payments/post/responses/422/content/application~1json/examples/MissingField","paths/~1api~1v1~1payments/post/responses/422/content/application~1json/examples/DuplicateReference","paths/~1api~1v1~1payments/post/responses/422/content/application~1json/examples/BadPan"]}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Callbacks","labelTranslationKey":"callbacks","deepLinkSuffix":"callbacks"}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"item-content","variant":"callback","callback":{"httpVerb":"post","pathName":"{$request.body#/webhookUrl}","summary":"Payment status update","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"NapoleonPay sends a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"POST"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to your "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":") whenever the payment status changes. Acknowledge with any "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"2xx"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"; non-"},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"2xx"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" responses are retried. The examples below show the final status per payment method."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"payments/createpayment/callbacks/paymentstatusupdate/post/delivering-and-acknowledging","deepLinkHash":"/payments/createpayment#payments/createpayment/callbacks/paymentstatusupdate/post/delivering-and-acknowledging"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Delivering and acknowledging"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Respond with exactly "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"200"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Any other code — including "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"201"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"204"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — counts as a failure."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Answer within a few seconds."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Delivery is abandoned after about 25 seconds."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Retries:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" up to 10 attempts — after roughly 10 s, 50 s, 4 min, 21 min, then hourly, about 6.5 hours in total."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The same event can arrive more than once."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Process idempotently, keyed on "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"id"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" plus "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentStatus"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"providerId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"fallbackPaymentStatus"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" are internal — ignore them."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"For "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"CARD withdrawals"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" only final statuses are sent: "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"COMPLETED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"FAILED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", never "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"PENDING"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":2,"id":"payments/createpayment/callbacks/paymentstatusupdate/post/verifying-the-callback-signature","deepLinkHash":"/payments/createpayment#payments/createpayment/callbacks/paymentstatusupdate/post/verifying-the-callback-signature"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Verifying the callback signature"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Each callback carries a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Signature"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" header. "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Do not hash the raw body you receive"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — the signature is computed over a canonical rendering of the payload, so hashing the received bytes always fails."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"See "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"link","inline":true,"attributes":{"href":"#tag/Authentication"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for the canonical form and verification code in PHP, Node.js and Python."},"children":[]}]}]}],"callbackName":"paymentStatusUpdate","callbackId":"paymentStatusUpdate/post","contentChildren":[{"nodeType":"item-content","variant":"body","label":"Request Body","labelTranslationKey":"body","required":true,"mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"components/schemas/WebhookEvent","exampleIds":["paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/CARD","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/GOOGLEPAY","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/APPLEPAY","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/BLIK","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/PAYID","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/PAYIDDeclined","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/CardPayoutCompleted","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/CardPayoutFailed"]}},"schemaId":"components/schemas/WebhookEvent","exampleIds":["paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/CARD","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/GOOGLEPAY","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/APPLEPAY","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/BLIK","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/PAYID","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/PAYIDDeclined","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/CardPayoutCompleted","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/CardPayoutFailed"],"pointer":"/paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Acknowledged. Return any 2xx to confirm receipt."},{"code":"4XX","description":"Any non-2xx response tells NapoleonPay the event was not accepted; delivery is retried."}],"pointer":"/paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/responses"}]},"pointer":"/paths/~1api~1v1~1payments/post/callbacks"}],"panels":[{"children":[{"kind":"callback-payload","callbackName":"paymentStatusUpdate/post","path":"{$request.body#/webhookUrl}","httpVerb":"post","mediaTypes":["application/json"],"mediaTypeSchemas":{"application/json":{"schemaId":"schema_8","exampleIds":["paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/CARD","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/GOOGLEPAY","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/APPLEPAY","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/BLIK","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/PAYID","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/PAYIDDeclined","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/CardPayoutCompleted","paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/CardPayoutFailed"]}},"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/payments/createpayment"}],"panels":[]}]},"httpPath":"/api/v1/payments"},{"label":"Get payment by ID","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/apis/napoleonpay/openapi/payments/getpaymentbyid","routeSlug":"/apis/napoleonpay/openapi/payments/getpaymentbyid","metadata":{"seo":{"title":"Get payment by ID","description":"Retrieve a single payment by its unique ID. Only Bearer token authentication is required — this endpoint is not signed."}},"content":{"contentType":"item","itemVariant":"httpItem","meta":{"sourceId":"getPaymentById","name":"Get payment by ID","isWebhook":false,"pointer":"/paths/~1api~1v1~1payments~1{id}/get","hasSamples":false},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Get payment by ID","isWebhook":false,"showPageActions":true}],"panels":[]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Request","labelTranslationKey":"request","deepLinkSuffix":"request"},{"nodeType":"markdoc","content":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Retrieve a single payment by its unique ID. Only "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Bearer token"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" authentication is required — this endpoint is not signed."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Read the status from the body, not the HTTP code."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" A payment that exists always returns "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"200"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", whether it succeeded or failed. The outcome is in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"result.paymentStatus"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"; treating "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"200"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" as success will mark declined payments as paid. ("},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"404"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" means no payment with that id.)"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The payment is wrapped in a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"result"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" object."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3,"id":"payments/getpaymentbyid/request/which-id-to-use","deepLinkHash":"/payments/getpaymentbyid#payments/getpaymentbyid/request/which-id-to-use"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Which id to use"},"children":[]}]}]},{"$$mdtype":"Node","type":"table","attributes":{},"children":[{"$$mdtype":"Node","type":"thead","attributes":{},"children":[{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"th","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field"},"children":[]}]}]},{"$$mdtype":"Node","type":"th","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Meaning"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"tbody","attributes":{},"children":[{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"{id}"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" / "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"result.id"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The payment's internal UID — the value this endpoint is keyed on"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"result.reference"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Your own merchant-side id, e.g. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"TXN-…"},"children":[]}]}]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3,"id":"payments/getpaymentbyid/request/fields-that-depend-on-status","deepLinkHash":"/payments/getpaymentbyid#payments/getpaymentbyid/request/fields-that-depend-on-status"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Fields that depend on status"},"children":[]}]}]},{"$$mdtype":"Node","type":"table","attributes":{},"children":[{"$$mdtype":"Node","type":"thead","attributes":{},"children":[{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"th","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field"},"children":[]}]}]},{"$$mdtype":"Node","type":"th","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Present when"},"children":[]}]}]}]}]},{"$$mdtype":"Node","type":"tbody","attributes":{},"children":[{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"errorMessage"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"FAILED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (not guaranteed — see below)"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"settled_crypto_amount"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"COMPLETED"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"crypto_tx_hash"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"COMPLETED"},"children":[]}]}]}]},{"$$mdtype":"Node","type":"tr","attributes":{},"children":[{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"destination_wallet"},"children":[]}]}]},{"$$mdtype":"Node","type":"td","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"COMPLETED"},"children":[]}]}]}]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3,"id":"payments/getpaymentbyid/request/reading-a-decline","deepLinkHash":"/payments/getpaymentbyid#payments/getpaymentbyid/request/reading-a-decline"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Reading a decline"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"On "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"FAILED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"errorMessage"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" carries the reason relayed from the payment processor. Numeric processor codes are translated to human-readable text before storage — for example "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"4004"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" becomes an insufficient-balance message, "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"4001"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" a CVV error, and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"4018"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" \"Payment was canceled by the user\". Reasons that arrive without a code pass through verbatim, such as "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"Payment not funded\""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", which means the order was created but never funded."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"errorMessage"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"not guaranteed on every failure"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Do not branch on its presence: the reliable \"funds were not delivered\" signal is "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentStatus: FAILED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" together with no "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"crypto_tx_hash"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Treat "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"errorMessage"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" as a human-readable explanation, not as a machine-readable status."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3,"id":"payments/getpaymentbyid/request/field-names-and-types","deepLinkHash":"/payments/getpaymentbyid#payments/getpaymentbyid/request/field-names-and-types"},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Field names and types"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Two things here are deliberate, not typos — match them exactly:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Casing is mixed."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" camelCase for "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentStatus"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"cryptoAmount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"cryptoCurrency"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"errorMessage"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"billingAddress"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"; snake_case for "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"crypto_fx"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"settled_crypto_amount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"crypto_tx_hash"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"destination_wallet"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"timezone_type"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" inside "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"created"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":")."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The two crypto amounts have different types."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"cryptoAmount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"string"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" ("},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"\"53.36000000\""},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":") while "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"settled_crypto_amount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is a "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"number"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" ("},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"53.35"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"). Parse each accordingly rather than assuming one shape."},"children":[]}]}]}]}]},{"nodeType":"security","requirements":[{"schemes":[{"name":"Bearer","scopes":[],"type":"http","scheme":"bearer","description":"API Key used as a Bearer token"}]}]},{"nodeType":"item-content","variant":"path","label":"Path","labelTranslationKey":"path","parameters":[{"name":"id","in":"path","schemaId":"schema_9","description":"Unique payment identifier (UUID)","required":true}],"pointer":"/paths/~1api~1v1~1payments~1{id}/get/parameters"}],"panels":[{"children":[{"kind":"code-sample","source":{"kind":"code-sample","operationType":"http","method":"GET","path":"/api/v1/payments/{id}","servers":[{"url":"https://api.napoleonpay.com"}],"parameters":{"path":[{"name":"id","in":"path","required":true,"schemaId":"schema_9"}],"query":[],"querystring":[],"header":[],"cookie":[]},"security":[{"schemes":[{"id":"Bearer","type":"http","scheme":"bearer"}],"scopes":[]}],"responseCodes":["200","401","404"],"pointer":"/api/v1/payments/{id}","href":"payments/getpaymentbyid","openApiOperationId":"getPaymentById","summary":"Get payment by ID"},"isWebhook":false,"hideReplay":false,"servers":[{"url":"https://api.napoleonpay.com"}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"header","level":4,"label":"Responses","labelTranslationKey":"responses","deepLinkSuffix":"responses"},{"nodeType":"item-content","variant":"responses","responses":[{"code":"200","description":"Payment retrieved successfully","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetPaymentResponse","exampleIds":["paths/~1api~1v1~1payments~1{id}/get/responses/200/content/application~1json/examples/Failed","paths/~1api~1v1~1payments~1{id}/get/responses/200/content/application~1json/examples/Completed"]}},"schemaId":"components/schemas/GetPaymentResponse","exampleIds":["paths/~1api~1v1~1payments~1{id}/get/responses/200/content/application~1json/examples/Failed","paths/~1api~1v1~1payments~1{id}/get/responses/200/content/application~1json/examples/Completed"]},{"code":"401","description":"Missing or invalid API key.","mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/AuthError","exampleIds":["paths/~1api~1v1~1payments~1{id}/get/responses/401/content/application~1json/examples/InvalidKey"]}},"schemaId":"components/schemas/AuthError","exampleIds":["paths/~1api~1v1~1payments~1{id}/get/responses/401/content/application~1json/examples/InvalidKey"]},{"code":"404","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"No payment exists with the supplied "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"id"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"mediaType":"application/json","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}},"schemaId":"components/schemas/Error"}],"pointer":"/paths/~1api~1v1~1payments~1{id}/get/responses"}],"panels":[{"children":[{"kind":"response","responseCodes":[{"code":"200","schemaId":"components/schemas/GetPaymentResponse","exampleIds":["paths/~1api~1v1~1payments~1{id}/get/responses/200/content/application~1json/examples/Failed","paths/~1api~1v1~1payments~1{id}/get/responses/200/content/application~1json/examples/Completed"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/GetPaymentResponse","exampleIds":["paths/~1api~1v1~1payments~1{id}/get/responses/200/content/application~1json/examples/Failed","paths/~1api~1v1~1payments~1{id}/get/responses/200/content/application~1json/examples/Completed"]}}},{"code":"401","schemaId":"components/schemas/AuthError","exampleIds":["paths/~1api~1v1~1payments~1{id}/get/responses/401/content/application~1json/examples/InvalidKey"],"mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/AuthError","exampleIds":["paths/~1api~1v1~1payments~1{id}/get/responses/401/content/application~1json/examples/InvalidKey"]}}},{"code":"404","schemaId":"components/schemas/Error","mediaTypes":["application/json"],"mediaTypeContent":{"application/json":{"schemaId":"components/schemas/Error"}}}],"examples":[]}]}]},{"nodeType":"container","children":[{"nodeType":"feedback","pageSlug":"/payments/getpaymentbyid"}],"panels":[]}]},"httpPath":"/api/v1/payments/{id}"}],"content":{"contentType":"group","meta":{"name":"Payments"},"children":[{"nodeType":"container","children":[{"nodeType":"header","level":2,"label":"Payments","showPageActions":true},{"nodeType":"markdoc","content":"Operations related to creating and managing deposits and withdrawals"}],"panels":[{"children":[{"kind":"group-items","title":"Operations","titleTranslationKey":"operations","items":[{"title":"/api/v1/payments","summary":"Create a deposit or a withdrawal","prefix":{"name":"post","color":"post"},"badges":[],"link":"/payments/createpayment","deprecated":false},{"title":"/api/v1/payments/{id}","summary":"Get payment by ID","prefix":{"name":"get","color":"get"},"badges":[],"link":"/payments/getpaymentbyid","deprecated":false}]}]}]}]}}],"store":{"schemaStore":{"components/schemas/Error":{"id":"components/schemas/Error","kind":"json-schema","title":"Error","data":{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Standard error envelope returned on 4xx responses. NOTE: this shape is illustrative — replace it with NapoleonPay's actual error body once confirmed."},"children":[]}]}]}],"properties":{"message":{"type":"string","description":"Human-readable description of what went wrong"},"code":{"type":"string","nullable":true,"description":"Machine-readable error code, when available"}}}},"components/schemas/PaymentRequest":{"id":"components/schemas/PaymentRequest","kind":"json-schema","title":"PaymentRequest","data":{"oneOf":[{"$ref":"#/components/schemas/PaymentRequestApplePay"},{"$ref":"#/components/schemas/PaymentRequestGooglePay"},{"$ref":"#/components/schemas/PaymentRequestBlik"},{"$ref":"#/components/schemas/PaymentRequestCARD"},{"$ref":"#/components/schemas/PaymentRequestONRAMP"},{"$ref":"#/components/schemas/PaymentRequestPAYID"},{"$ref":"#/components/schemas/PaymentRequestAPM"},{"$ref":"#/components/schemas/WithdrawalRequestPAYID"},{"$ref":"#/components/schemas/WithdrawalRequestSEPA"},{"$ref":"#/components/schemas/WithdrawalRequestFPS"},{"$ref":"#/components/schemas/WithdrawalRequestCARD"}],"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Pick the flow you need. Deposits (pay-ins) and withdrawals (payouts) are listed separately, because they require different fields even when they share a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}},"components/schemas/PaymentType":{"id":"components/schemas/PaymentType","kind":"json-schema","title":"PaymentType","data":{"type":"string","enum":["DEPOSIT","WITHDRAWAL"]}},"components/schemas/CustomerInfo":{"id":"components/schemas/CustomerInfo","kind":"json-schema","title":"CustomerInfo","data":{"type":"object","nullable":true,"description":"Customer details.","properties":{"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true},"ipaddress":{"type":"string","nullable":true},"referenceId":{"type":"string","nullable":true},"dateOfBirth":{"type":"string","nullable":true,"description":"Required only when making card FTD"},"accountNumber":{"type":"string","nullable":true,"description":"Recipient IBAN. Required for SEPA withdrawals."},"bankCode":{"type":"string","nullable":true,"description":"Bank / sort code. Required for FPS withdrawals."}}}},"components/schemas/BillingAddress":{"id":"components/schemas/BillingAddress","kind":"json-schema","title":"BillingAddress","data":{"type":"object","description":"Billing address.","properties":{"address1":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true},"postalCode":{"type":"string","nullable":true},"state":{"type":"string","nullable":true}}}},"components/schemas/CardInfo":{"id":"components/schemas/CardInfo","kind":"json-schema","title":"CardInfo","data":{"type":"object","description":"Card details required for CARD payment method.","properties":{"pan":{"type":"string","description":"Primary account number (card number)"},"cvv":{"type":"string","description":"Card verification value"},"exp_month":{"oneOf":[{"type":"integer"},{"type":"string"}],"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Expiry month (1–12). Accepted as a number or a string (\"11\")."},"children":[]}]}]}]},"exp_year":{"oneOf":[{"type":"integer"},{"type":"string"}],"description":"Expiry year, 4-digit. Accepted as a number or a string (\"2030\")."},"holder":{"type":"string","description":"Cardholder name as it appears on the card"}},"required":["pan","cvv","exp_month","exp_year","holder"]}},"components/schemas/AdditionalParameters":{"id":"components/schemas/AdditionalParameters","kind":"json-schema","title":"AdditionalParameters","data":{"type":"object","description":"Method-specific parameters.","properties":{"purpose":{"type":"string","description":"Payment purpose."}}}},"components/schemas/Browser":{"id":"components/schemas/Browser","kind":"json-schema","title":"Browser","data":{"type":"object","description":"Browser information (commonly required for wallet-based methods).","properties":{"acceptHeader":{"type":"string","nullable":true},"colorDepth":{"type":"integer","nullable":true},"ip":{"type":"string","nullable":true},"language":{"type":"string","nullable":true},"screenHeight":{"type":"integer","nullable":true},"screenWidth":{"type":"integer","nullable":true},"timeZone":{"type":"integer","nullable":true},"userAgent":{"type":"string","nullable":true},"javaEnabled":{"type":"boolean","nullable":true},"windowWidth":{"type":"integer","nullable":true},"windowHeight":{"type":"integer","nullable":true}}}},"components/schemas/BaseRequest":{"id":"components/schemas/BaseRequest","kind":"json-schema","title":"BaseRequest","data":{"type":"object","properties":{"paymentType":{"$ref":"#/components/schemas/PaymentType"},"paymentMethod":{"type":"string","enum":["APPLEPAY","GOOGLEPAY","BLIK","CARD","ONRAMP","ONRAMP_PAYID","ONRAMP_PIX","ONRAMP_ZAR","ONRAMP_PSE","ONRAMP_KHIPU","ONRAMP_QRTHWALLET","ONRAMP_CARD","ONRAMP_INTERAC","ONRAMP_OPENBANKING","ONRAMP_GBPBANKTRANSFER","ONRAMP_SPEI","ONRAMP_APPLEPAY","ONRAMP_GOOGLEPAY","PAYID","IDEAL","BANCONTACT","MULTIBANCO","EPS","P24","SEPA","FPS","USER_CHOICE"]},"amount":{"type":"number","format":"float","minimum":0,"exclusiveMinimum":true},"currency":{"type":"string"}},"required":["paymentType","paymentMethod","amount","currency"]}},"components/schemas/GetPaymentResponse":{"id":"components/schemas/GetPaymentResponse","kind":"json-schema","title":"GetPaymentResponse","data":{"type":"object","properties":{"result":{"$ref":"#/components/schemas/PaymentStatusResult"}}}},"components/schemas/PaymentRequestApplePay":{"id":"components/schemas/PaymentRequestApplePay","kind":"json-schema","title":"Apple Pay — deposit","data":{"allOf":[{"$ref":"#/components/schemas/BaseRequest"},{"type":"object","properties":{"paymentMethod":{"type":"string","enum":["APPLEPAY"]},"additionalParameters":{"$ref":"#/components/schemas/AdditionalParametersOnramp"},"reference":{"type":"string","nullable":true},"billingAddress":{"allOf":[{"$ref":"#/components/schemas/BillingAddress"},{"type":"object","required":["countryCode"]}]},"returnUrl":{"type":"string","nullable":true},"webhookUrl":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL to receive payment status updates. Interchangeable with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — both perform the same function. At least one of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must be provided."},"children":[]}]}]}]},"browser":{"$ref":"#/components/schemas/Browser"},"paymentType":{"type":"string","enum":["DEPOSIT"]}},"required":["paymentMethod","reference","billingAddress","returnUrl","webhookUrl"],"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Apple Pay deposit."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" The response returns a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"redirectUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — send the customer there to complete the payment."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Required:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"amount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"currency"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"reference"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"billingAddress"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"returnUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". To let the customer pick the method instead of fixing it here, send "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"USER_CHOICE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — see the Onramp entry."},"children":[]}]}]}]}],"title":"Apple Pay — deposit"}},"components/schemas/PaymentRequestPAYID":{"id":"components/schemas/PaymentRequestPAYID","kind":"json-schema","title":"PayID — deposit","data":{"allOf":[{"$ref":"#/components/schemas/BaseRequest"},{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PayID deposit"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (AUD)."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Required:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"amount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"currency"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"reference"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"billingAddress.countryCode"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"returnUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Two deposit flows exist. "},"children":[]},{"$$mdtype":"Node","type":"em","inline":true,"attributes":{"marker":"*"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Redirect"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" returns a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"redirectUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" to send the customer to. "},"children":[]},{"$$mdtype":"Node","type":"em","inline":true,"attributes":{"marker":"*"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"H2H"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" instead returns the PayID transfer details as top-level fields on the response ("},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"number"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"full_holder_name"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"payment_description"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":") for you to display — there is no redirect. Which applies depends on your account configuration; webhooks are identical either way."},"children":[]}]}]}],"properties":{"paymentMethod":{"type":"string","enum":["PAYID"]},"reference":{"type":"string","nullable":true},"webhookUrl":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL to receive payment status updates. Interchangeable with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — both perform the same function. At least one of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must be provided."},"children":[]}]}]}]},"billingAddress":{"allOf":[{"$ref":"#/components/schemas/BillingAddress"},{"type":"object","required":["countryCode"]}]},"returnUrl":{"type":"string","nullable":true},"paymentType":{"type":"string","enum":["DEPOSIT"]}},"required":["paymentMethod","reference","billingAddress","returnUrl","webhookUrl"]}],"title":"PayID — deposit"}},"components/schemas/PaymentRequestGooglePay":{"id":"components/schemas/PaymentRequestGooglePay","kind":"json-schema","title":"Google Pay — deposit","data":{"allOf":[{"$ref":"#/components/schemas/BaseRequest"},{"type":"object","properties":{"paymentMethod":{"type":"string","enum":["GOOGLEPAY"]},"additionalParameters":{"$ref":"#/components/schemas/AdditionalParametersOnramp"},"reference":{"type":"string","nullable":true},"billingAddress":{"allOf":[{"$ref":"#/components/schemas/BillingAddress"},{"type":"object","required":["countryCode"]}]},"returnUrl":{"type":"string","nullable":true},"webhookUrl":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL to receive payment status updates. Interchangeable with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — both perform the same function. At least one of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must be provided."},"children":[]}]}]}]},"browser":{"$ref":"#/components/schemas/Browser"},"paymentType":{"type":"string","enum":["DEPOSIT"]}},"required":["paymentMethod","reference","billingAddress","returnUrl","webhookUrl"],"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Google Pay deposit."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" The response returns a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"redirectUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — send the customer there to complete the payment."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Required:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"amount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"currency"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"reference"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"billingAddress"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"returnUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". To let the customer pick the method instead of fixing it here, send "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"USER_CHOICE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — see the Onramp entry."},"children":[]}]}]}]}],"title":"Google Pay — deposit"}},"components/schemas/PaymentRequestBlik":{"id":"components/schemas/PaymentRequestBlik","kind":"json-schema","title":"BLIK — deposit","data":{"allOf":[{"$ref":"#/components/schemas/BaseRequest"},{"type":"object","properties":{"paymentMethod":{"type":"string","enum":["BLIK"]},"customer":{"allOf":[{"$ref":"#/components/schemas/CustomerInfo"},{"type":"object","required":["email","firstName","lastName","phone","ipaddress"]}]},"billingAddress":{"allOf":[{"$ref":"#/components/schemas/BillingAddress"},{"type":"object","required":["address1","city","state","countryCode","postalCode"]}]},"returnUrl":{"type":"string","nullable":true},"webhookUrl":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL to receive payment status updates. Interchangeable with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — both perform the same function. At least one of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must be provided."},"children":[]}]}]}]},"paymentType":{"type":"string","enum":["DEPOSIT"]}},"required":["paymentMethod","customer","billingAddress","returnUrl","webhookUrl"],"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"BLIK deposit"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (PLN). The response returns a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"redirectUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — send the customer there to enter their BLIK code."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Required:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"amount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"currency"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"customer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" ("},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"email"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"firstName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"lastName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"phone"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ipaddress"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"), "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"billingAddress"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"returnUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}],"title":"BLIK — deposit"}},"components/schemas/PaymentRequestCARD":{"id":"components/schemas/PaymentRequestCARD","kind":"json-schema","title":"Card — deposit","data":{"allOf":[{"$ref":"#/components/schemas/BaseRequest"},{"type":"object","properties":{"paymentMethod":{"type":"string","enum":["CARD"]},"additionalParameters":{"$ref":"#/components/schemas/AdditionalParametersOnramp"},"card":{"$ref":"#/components/schemas/CardInfo"},"merchantUrl":{"type":"string","nullable":true,"description":"URL of the merchant site or storefront initiating the payment."},"customer":{"allOf":[{"$ref":"#/components/schemas/CustomerInfo"},{"type":"object","required":["referenceId","email","firstName","lastName","phone","dateOfBirth"]}]},"billingAddress":{"allOf":[{"$ref":"#/components/schemas/BillingAddress"},{"type":"object","required":["address1","city","state","countryCode","postalCode"]}]},"callbackUrl":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL to receive payment status updates. Interchangeable with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — both perform the same function. At least one of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must be provided."},"children":[]}]}]}]},"browser":{"$ref":"#/components/schemas/Browser"},"paymentType":{"type":"string","enum":["DEPOSIT"]}},"required":["paymentMethod","merchantUrl","customer","billingAddress","card","callbackUrl","additionalParameters"],"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Card deposit."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Send the card details in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"card"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". The response returns a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"redirectUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", which carries the customer through 3-D Secure where required."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Required:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"amount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"currency"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"card"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" ("},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"pan"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"cvv"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"exp_month"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"exp_year"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"holder"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"), "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"customer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — including "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"dateOfBirth"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" for a first-time deposit — "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"billingAddress"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"merchantUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"additionalParameters"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". To let the customer pick the method instead of fixing it here, send "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"USER_CHOICE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — see the Onramp entry."},"children":[]}]}]}]}],"title":"Card — deposit"}},"components/schemas/PaymentRequestONRAMP":{"id":"components/schemas/PaymentRequestONRAMP","kind":"json-schema","title":"Onramp — deposit","data":{"allOf":[{"$ref":"#/components/schemas/BaseRequest"},{"type":"object","properties":{"paymentMethod":{"type":"string","enum":["USER_CHOICE","ONRAMP","ONRAMP_PAYID","ONRAMP_PIX","ONRAMP_ZAR","ONRAMP_PSE","ONRAMP_KHIPU","ONRAMP_QRTHWALLET","ONRAMP_CARD","ONRAMP_INTERAC","ONRAMP_OPENBANKING","ONRAMP_GBPBANKTRANSFER","ONRAMP_SPEI","ONRAMP_APPLEPAY","ONRAMP_GOOGLEPAY"]},"additionalParameters":{"$ref":"#/components/schemas/AdditionalParametersOnramp"},"merchantUrl":{"type":"string","nullable":true,"description":"URL of the merchant site or storefront initiating the payment."},"customer":{"allOf":[{"$ref":"#/components/schemas/CustomerInfo"},{"type":"object","required":["referenceId","email","firstName","lastName","phone","dateOfBirth"]}]},"billingAddress":{"allOf":[{"$ref":"#/components/schemas/BillingAddress"},{"type":"object","required":["address1","city","state","countryCode","postalCode"]}]},"callbackUrl":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL to receive payment status updates. Interchangeable with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — both perform the same function. At least one of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must be provided."},"children":[]}]}]}]},"paymentType":{"type":"string","enum":["DEPOSIT"]}},"required":["paymentMethod","merchantUrl","customer","billingAddress","callbackUrl","additionalParameters"],"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Onramp deposit."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Fiat is converted and delivered to the customer's wallet, so the crypto destination goes in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"additionalParameters"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". The response returns a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"redirectUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Required:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"amount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"currency"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"customer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"billingAddress"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"merchantUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"additionalParameters"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"heading","attributes":{"level":3},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Who picks the payment method"},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"On an onramp payment you decide whether the customer chooses how to pay, or you fix it up front:"},"children":[]}]}]},{"$$mdtype":"Node","type":"list","attributes":{"ordered":false,"marker":"-"},"children":[{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Let the customer choose"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — send "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentMethod: USER_CHOICE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". The widget offers "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Apple Pay, Google Pay and card"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", and the customer picks one."},"children":[]}]}]},{"$$mdtype":"Node","type":"item","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Choose for them"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — send "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"CARD"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"APPLEPAY"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"GOOGLEPAY"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" instead, as their own payment methods (see the Card, Apple Pay and Google Pay entries in the selector). The widget is then pinned to that one method."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"This choice exists "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"only for onramp"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"USER_CHOICE"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" has no meaning for the other payment methods, and outside an onramp terminal the crypto fields in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"additionalParameters"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" do not apply."},"children":[]}]}]}]}]}],"title":"Onramp — deposit"}},"components/schemas/PaymentRequestAPM":{"id":"components/schemas/PaymentRequestAPM","kind":"json-schema","title":"Bank redirect: iDEAL, Bancontact, Multibanco, EPS, P24 — deposit","data":{"allOf":[{"$ref":"#/components/schemas/BaseRequest"},{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"European bank-redirect APMs"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — iDEAL, Bancontact, Multibanco, EPS and Przelewy24 (P24). The response returns a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"redirectUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" that sends the customer to their bank; the final status arrives on your "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Required:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"amount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"currency"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"description"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"externalApiId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"customer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" ("},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"firstName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"lastName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"email"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"phone"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":")."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Przelewy24 settles in PLN; the others in EUR."},"children":[]}]}]}],"properties":{"paymentMethod":{"type":"string","enum":["IDEAL","BANCONTACT","MULTIBANCO","EPS","P24"]},"description":{"type":"string","nullable":true},"externalApiId":{"type":"string","nullable":true},"webhookUrl":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL to receive payment status updates. Interchangeable with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — both perform the same function. At least one of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must be provided."},"children":[]}]}]}]},"customer":{"allOf":[{"$ref":"#/components/schemas/CustomerInfo"},{"type":"object","required":["firstName","lastName","email","phone"]}]},"paymentType":{"type":"string","enum":["DEPOSIT"]}},"required":["paymentMethod","description","externalApiId","webhookUrl","customer"]}],"title":"Bank redirect: iDEAL, Bancontact, Multibanco, EPS, P24 — deposit"}},"components/schemas/WithdrawalRequestSEPA":{"id":"components/schemas/WithdrawalRequestSEPA","kind":"json-schema","title":"SEPA — withdrawal","data":{"allOf":[{"$ref":"#/components/schemas/BaseRequest"},{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"SEPA payout"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (EUR). Funds are sent to the recipient's IBAN — there is no redirect and no "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"redirectUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" on the response."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Required:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"amount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"currency"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"description"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"reference"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"billingAddress"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"additionalParameters"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"customer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — which must carry the recipient IBAN in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"customer.accountNumber"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", alongside "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"email"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"firstName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"lastName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"phone"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"referenceId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"properties":{"paymentMethod":{"type":"string","enum":["SEPA"]},"additionalParameters":{"$ref":"#/components/schemas/AdditionalParameters"},"description":{"type":"string","nullable":true},"reference":{"type":"string","nullable":true},"customer":{"allOf":[{"$ref":"#/components/schemas/CustomerInfo"},{"type":"object","required":["referenceId","email","firstName","lastName","phone","accountNumber"]}]},"billingAddress":{"allOf":[{"$ref":"#/components/schemas/BillingAddress"},{"type":"object","required":["address1","city","state","countryCode","postalCode"]}]},"callbackUrl":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL to receive payment status updates. Interchangeable with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — both perform the same function. At least one of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must be provided."},"children":[]}]}]}]},"paymentType":{"type":"string","enum":["WITHDRAWAL"]}},"required":["paymentMethod","description","reference","customer","billingAddress","callbackUrl","additionalParameters"]}],"title":"SEPA — withdrawal"}},"components/schemas/WithdrawalRequestFPS":{"id":"components/schemas/WithdrawalRequestFPS","kind":"json-schema","title":"FPS — withdrawal","data":{"allOf":[{"$ref":"#/components/schemas/BaseRequest"},{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"FPS payout"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — UK Faster Payments (GBP). Funds are sent to a UK account; there is no redirect and no "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"redirectUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" on the response."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Required:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"amount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"currency"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"description"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"reference"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"billingAddress"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"additionalParameters"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"customer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — which must carry "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"accountNumber"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (8-digit UK account number) and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"bankCode"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (6-digit sort code), alongside "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"email"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"firstName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"lastName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"phone"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"referenceId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"ipaddress"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"properties":{"paymentMethod":{"type":"string","enum":["FPS"]},"additionalParameters":{"$ref":"#/components/schemas/AdditionalParameters"},"description":{"type":"string","nullable":true},"reference":{"type":"string","nullable":true},"customer":{"allOf":[{"$ref":"#/components/schemas/CustomerInfo"},{"type":"object","required":["referenceId","email","firstName","lastName","phone","accountNumber","bankCode","ipaddress"]}]},"billingAddress":{"allOf":[{"$ref":"#/components/schemas/BillingAddress"},{"type":"object","required":["address1","city","state","countryCode","postalCode"]}]},"callbackUrl":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL to receive payment status updates. Interchangeable with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — both perform the same function. At least one of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must be provided."},"children":[]}]}]}]},"paymentType":{"type":"string","enum":["WITHDRAWAL"]}},"required":["paymentMethod","description","reference","customer","billingAddress","callbackUrl","additionalParameters"]}],"title":"FPS — withdrawal"}},"components/schemas/PaymentResponse":{"id":"components/schemas/PaymentResponse","kind":"json-schema","title":"Payment response","data":{"title":"Payment response","type":"object","required":["result"],"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The created payment, wrapped in a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"result"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" object. Deposits include a "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"redirectUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" inside "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"result"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (Redirect flow); withdrawals do not. For "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PAYID H2H"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" deposits the response additionally carries the PayID transfer details as top-level fields next to "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"result"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" ("},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"number"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"full_holder_name"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"payment_description"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", …) — display these to your customer instead of redirecting."},"children":[]}]}]}],"properties":{"result":{"$ref":"#/components/schemas/BasePaymentResponse"},"number":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PAYID H2H flow only. The PayID address (e.g. an email) your customer must send the transfer to. Display it together with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"payment_description"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"amount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"full_holder_name":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PAYID H2H flow only. Account holder name of the receiving PayID — show it to the customer so they can verify the recipient."},"children":[]}]}]}]},"payment_description":{"type":"string","nullable":true,"description":"PAYID H2H flow only. Payment reference code the customer must attach to the transfer."},"amount":{"type":"string","nullable":true,"description":"PAYID H2H flow only. Amount to transfer, formatted with two decimals."},"currency":{"type":"string","nullable":true,"description":"PAYID H2H flow only. Currency of the transfer."},"uuid":{"type":"string","nullable":true,"description":"PAYID H2H flow only. Unique identifier of this H2H payment instruction."},"order_id":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PAYID H2H flow only. Equals "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"result.id"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — the NapoleonPay payment id."},"children":[]}]}]}]}}}},"components/schemas/BasePaymentResponse":{"id":"components/schemas/BasePaymentResponse","kind":"json-schema","title":"BasePaymentResponse","data":{"type":"object","properties":{"id":{"type":"string","description":"Unique payment identifier (UUID)"},"paymentStatus":{"type":"string","enum":["PENDING","AUTHORIZED","COMPLETED","FAILED","CANCELED"]},"created":{"type":"object","properties":{"date":{"type":"string"},"timezone_type":{"type":"integer"},"timezone":{"type":"string"}}},"paymentType":{"type":"string","enum":["DEPOSIT","WITHDRAWAL"]},"description":{"type":"string","nullable":true},"paymentMethod":{"type":"string","enum":["APPLEPAY","GOOGLEPAY","BLIK","CARD","ONRAMP","ONRAMP_PAYID","ONRAMP_PIX","ONRAMP_ZAR","ONRAMP_PSE","ONRAMP_KHIPU","ONRAMP_QRTHWALLET","ONRAMP_CARD","ONRAMP_INTERAC","ONRAMP_OPENBANKING","ONRAMP_GBPBANKTRANSFER","ONRAMP_SPEI","ONRAMP_APPLEPAY","ONRAMP_GOOGLEPAY","PAYID","IDEAL","BANCONTACT","MULTIBANCO","EPS","P24","SEPA","FPS","USER_CHOICE"]},"reference":{"type":"string","nullable":true},"amount":{"oneOf":[{"type":"number","format":"float"},{"type":"string"}],"description":"Payment amount. Returned as a number or a string depending on the method and flow (withdrawals and PAYID H2H deposits return it as a string)."},"currency":{"type":"string"},"customer":{"$ref":"#/components/schemas/CustomerInfo"},"billingAddress":{"$ref":"#/components/schemas/BillingAddress"},"redirectUrl":{"type":"string","nullable":true,"description":"URL to redirect the customer to complete the payment"},"fallbackPaymentStatus":{"oneOf":[{"type":"integer"},{"type":"string"}],"description":"Internal value echoed back on some payments. Ignore it."},"authorizationCode":{"type":"string","nullable":true,"description":"Authorization code returned by the card network (CARD only)."},"cardType":{"type":"string","nullable":true,"description":"Card brand, e.g. VISA / MASTERCARD (CARD only)."}}}},"components/schemas/WebhookEvent":{"id":"components/schemas/WebhookEvent","kind":"json-schema","title":"Webhook event (not result-wrapped)","data":{"title":"Webhook event (not result-wrapped)","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Payment status-update event delivered to your webhook / callback URL. Unlike the API responses, webhook payloads are "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"not"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" wrapped in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"result"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — the payment fields are at the top level."},"children":[]}]}]}],"allOf":[{"$ref":"#/components/schemas/BasePaymentResponse"},{"type":"object","properties":{"providerId":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Internal. Ignore it — currently equal to "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"id"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}}}]}},"components/schemas/AdditionalParametersOnramp":{"id":"components/schemas/AdditionalParametersOnramp","kind":"json-schema","title":"AdditionalParametersOnramp","data":{"type":"object","description":"Method-specific parameters, plus the crypto destination for onramp terminals.","properties":{"purpose":{"type":"string","description":"Payment purpose."},"walletAddress":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Destination wallet address. Only applies when your terminal is configured for onramp — the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" itself does not change. These values can be preset on your API key, in which case they do not need to be sent with each request."},"children":[]}]}]}],"example":"0x0e1B211f6AE916887Da14F17CF9636B64044C868"},"blockchain":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Destination blockchain. Only applies when your terminal is configured for onramp — the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" itself does not change. These values can be preset on your API key, in which case they do not need to be sent with each request."},"children":[]}]}]}],"example":"polygon"},"cryptoCurrency":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Cryptocurrency to deliver. Only applies when your terminal is configured for onramp — the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" itself does not change. These values can be preset on your API key, in which case they do not need to be sent with each request."},"children":[]}]}]}],"example":"USDT"}}}},"components/schemas/WithdrawalRequestPAYID":{"id":"components/schemas/WithdrawalRequestPAYID","kind":"json-schema","title":"PayID — withdrawal","data":{"title":"PayID — withdrawal","allOf":[{"$ref":"#/components/schemas/BaseRequest"},{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"PayID payout"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (AUD). "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"customer.email"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" identifies the destination PayID. There is no redirect and no "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"redirectUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" on the response — the final status arrives on your "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Required:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"amount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"currency"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"reference"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"customer.email"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"properties":{"paymentType":{"type":"string","enum":["WITHDRAWAL"]},"paymentMethod":{"type":"string","enum":["PAYID"]},"reference":{"type":"string","nullable":true},"customer":{"allOf":[{"$ref":"#/components/schemas/CustomerInfo"},{"type":"object","required":["email"]}]},"webhookUrl":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL to receive payment status updates. Interchangeable with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — both perform the same function. At least one of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must be provided."},"children":[]}]}]}]}},"required":["paymentMethod","reference","customer","webhookUrl"]}]}},"components/schemas/PaymentStatusResult":{"id":"components/schemas/PaymentStatusResult","kind":"json-schema","title":"Payment status","data":{"title":"Payment status","allOf":[{"$ref":"#/components/schemas/BasePaymentResponse"},{"type":"object","properties":{"cryptoAmount":{"type":"string","description":"Crypto amount ordered, as a string.","example":"53.36000000"},"cryptoCurrency":{"type":"string","description":"Cryptocurrency ordered.","example":"USDC"},"crypto_fx":{"type":"number","description":"FX rate used to convert the fiat amount to crypto.","example":1.07383808},"errorMessage":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Decline reason, relayed from the payment processor. "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Present only when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentStatus"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"FAILED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", and not guaranteed even then"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — see "},"children":[]},{"$$mdtype":"Node","type":"em","inline":true,"attributes":{"marker":"*"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Reading a decline"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" below."},"children":[]}]}]}],"example":"Payment not funded"},"settled_crypto_amount":{"type":"number","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Crypto actually delivered, which may differ slightly from "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"cryptoAmount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". Present only when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentStatus"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"COMPLETED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}],"example":53.35},"crypto_tx_hash":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"On-chain settlement transaction hash. Present only when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentStatus"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"COMPLETED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]},"destination_wallet":{"type":"string","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Wallet the funds were delivered to. Present only when "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentStatus"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"COMPLETED"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]}]}}}]}},"components/schemas/CardPayoutDetails":{"id":"components/schemas/CardPayoutDetails","kind":"json-schema","title":"CardPayoutDetails","data":{"type":"object","description":"Card to credit. Only the number is used for a payout.","properties":{"pan":{"type":"string","pattern":"^[0-9]{12,19}$","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Card number, digits only, 12–19 digits. Must pass the Luhn check."},"children":[]}]}]}],"example":"4111111111111111"}},"required":["pan"]}},"components/schemas/WithdrawalRequestCARD":{"id":"components/schemas/WithdrawalRequestCARD","kind":"json-schema","title":"Card — withdrawal","data":{"title":"Card — withdrawal","allOf":[{"$ref":"#/components/schemas/BaseRequest"},{"type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Card payout."},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" Credits a card directly — there is no redirect, and the final status arrives by webhook."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Required:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentType"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"paymentMethod"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"amount"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"currency"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"card.pan"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"customer"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" carrying "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"firstName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"lastName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"referenceId"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"."},"children":[]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Recommended:"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"reference"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (your own id for the payout — it comes back on every response and webhook, and duplicates are rejected with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"422"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":") and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" (without it you must poll the status endpoint)."},"children":[]}]}]},{"$$mdtype":"Node","type":"blockquote","attributes":{},"children":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"The receiver's name comes from "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"customer.firstName"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"customer.lastName"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — set them to the cardholder's name. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"card.holder"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is not used."},"children":[]}]}]}]},{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Do not send"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"card.cvv"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"card.exp_month"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"card.exp_year"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"card.holder"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — they are not used for payouts, and the CVV in particular should never be sent. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"billingAddress"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is not used either and can be omitted. "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"customer.email"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"customer.phone"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" and "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"customer.ipaddress"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" are accepted but unused."},"children":[]}]}]}],"properties":{"paymentType":{"type":"string","enum":["WITHDRAWAL"]},"paymentMethod":{"type":"string","enum":["CARD"]},"reference":{"type":"string","nullable":true},"webhookUrl":{"type":"string","nullable":true,"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"URL to receive payment status updates. Interchangeable with "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" — both perform the same function. At least one of "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"webhookUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" or "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"callbackUrl"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" must be provided."},"children":[]}]}]}]},"customer":{"allOf":[{"$ref":"#/components/schemas/CustomerInfo"},{"type":"object","required":["firstName","lastName","referenceId"]}]},"card":{"$ref":"#/components/schemas/CardPayoutDetails"}},"required":["paymentMethod","customer","card"]}]}},"components/schemas/RefusedResponse":{"id":"components/schemas/RefusedResponse","kind":"json-schema","title":"Refused — no payment created","data":{"title":"Refused — no payment created","type":"object","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Returned with HTTP "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"200"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", but "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"success"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" is "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"false"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":": the request was refused and "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"no payment was created"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":". There is no "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"id"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":", nothing follows, and no webhook will arrive. Treat it as failed. Retrying creates a new payment attempt."},"children":[]}]}]}],"properties":{"success":{"type":"boolean","example":false},"message":{"type":"string","example":"Response validation failed"},"info":{"type":"array","items":{}}},"required":["success","message"]}},"components/schemas/PaymentCreatedBody":{"id":"components/schemas/PaymentCreatedBody","kind":"json-schema","title":"PaymentCreatedBody","data":{"oneOf":[{"$ref":"#/components/schemas/PaymentResponse"},{"$ref":"#/components/schemas/RefusedResponse"}],"description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Either the created payment (wrapped in "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"result"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"), or a refusal carrying "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"success: false"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" with no payment created."},"children":[]}]}]}]}},"components/schemas/ValidationProblem":{"id":"components/schemas/ValidationProblem","kind":"json-schema","title":"ValidationProblem","data":{"type":"object","description":"Input validation failed (RFC 7807 problem document).","properties":{"type":{"type":"string","example":"https://symfony.com/errors/validation"},"title":{"type":"string","example":"Validation Failed"},"status":{"type":"integer","example":422},"detail":{"type":"string","example":"customer.referenceId: This value should not be null."},"violations":{"type":"array","items":{"type":"object","properties":{"propertyPath":{"type":"string"},"title":{"type":"string"},"template":{"type":"string"},"parameters":{"type":"object"},"type":{"type":"string"}}}}}}},"components/schemas/NotAllowedError":{"id":"components/schemas/NotAllowedError","kind":"json-schema","title":"NotAllowedError","data":{"type":"object","description":"The payment type or method is not enabled for this project.","properties":{"success":{"type":"boolean","example":false},"message":{"type":"string","example":"Payments of the chosen type are not allowed for this terminal"}}}},"components/schemas/AuthError":{"id":"components/schemas/AuthError","kind":"json-schema","title":"AuthError","data":{"type":"object","description":"Authentication failed.","properties":{"message":{"type":"string","example":"Invalid API Key"}}}},"schema_8":{"kind":"json-schema","data":{"$ref":"#/components/schemas/WebhookEvent"},"id":"schema_8"},"schema_9":{"kind":"json-schema","data":{"type":"string"},"id":"schema_9"}},"exampleStore":{"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/ApplePay":{"value":{"paymentType":"DEPOSIT","paymentMethod":"APPLEPAY","amount":20,"currency":"EUR","reference":"YOUR-SYSTEM-TRX-ID","billingAddress":{"countryCode":"LT"},"returnUrl":"https://example.com/return","webhookUrl":"https://example.com/webhook"},"key":"ApplePay","summary":"Create Apple Pay payment","id":"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/ApplePay"},"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/PAYID":{"value":{"paymentType":"DEPOSIT","paymentMethod":"PAYID","amount":20,"currency":"AUD","reference":"YOUR-SYSTEM-TRX-ID","billingAddress":{"countryCode":"LT"},"returnUrl":"https://example.com/return","webhookUrl":"https://example.com/webhook"},"key":"PAYID","summary":"Create PAYID payment","id":"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/PAYID"},"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/GooglePay":{"value":{"paymentType":"DEPOSIT","paymentMethod":"GOOGLEPAY","amount":20,"currency":"EUR","reference":"YOUR-SYSTEM-TRX-ID","billingAddress":{"countryCode":"LT"},"returnUrl":"https://example.com/return","webhookUrl":"https://example.com/webhook"},"key":"GooglePay","summary":"Create Google Pay payment","id":"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/GooglePay"},"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/BLIK":{"value":{"paymentType":"DEPOSIT","paymentMethod":"BLIK","amount":10,"currency":"PLN","customer":{"email":"john.doe@example.com","firstName":"John","lastName":"Doe","phone":"+370 60000000","ipaddress":"203.0.113.10"},"billingAddress":{"address1":"211 Victory Street","city":"Vilnius","countryCode":"LT","postalCode":"01001","state":"Vilnius"},"returnUrl":"https://example.com/return","webhookUrl":"https://example.com/webhook"},"key":"BLIK","summary":"Create BLIK payment","id":"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/BLIK"},"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CARD":{"value":{"paymentType":"DEPOSIT","paymentMethod":"CARD","amount":21.2,"currency":"EUR","merchantUrl":"https://sample.casino","customer":{"referenceId":"MERCHANT-REF-001","email":"john.doe@example.com","firstName":"John","lastName":"Doe","phone":"+370 60000000","dateOfBirth":"1990-01-01"},"billingAddress":{"address1":"211 Victory Street","city":"Vilnius","state":"Vilnius","countryCode":"LT","postalCode":"01001"},"card":{"pan":"4111111111111111","cvv":"123","exp_month":3,"exp_year":2028,"holder":"Ben John"},"callbackUrl":"https://napoleonpay.com/payment_callback.php","additionalParameters":{"purpose":"purpose"}},"key":"CARD","summary":"Create Card payment","id":"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CARD"},"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CardNFT":{"value":{"paymentType":"DEPOSIT","paymentMethod":"CARD","amount":21.2,"currency":"EUR","merchantUrl":"https://sample.casino","customer":{"referenceId":"MERCHANT-REF-001","email":"john.doe@example.com","firstName":"John","lastName":"Doe","phone":"+370 60000000","dateOfBirth":"1990-01-01"},"billingAddress":{"address1":"211 Victory Street","city":"Vilnius","state":"Vilnius","countryCode":"LT","postalCode":"01001"},"card":{"pan":"4111111111111111","cvv":"123","exp_month":3,"exp_year":2028,"holder":"Ben John"},"callbackUrl":"https://napoleonpay.com/payment_callback.php","additionalParameters":{"walletAddress":"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359","blockchain":"MATIC","cryptoCurrency":"USDC"}},"key":"CardNFT","summary":"Create Card payment for NFT purchase","description":"Use CARD method with walletAddress, blockchain, and cryptoCurrency in additionalParameters for NFT purchases.","id":"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CardNFT"},"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/ONRAMP":{"value":{"paymentType":"DEPOSIT","paymentMethod":"ONRAMP","amount":21.2,"currency":"EUR","merchantUrl":"https://sample.casino","customer":{"referenceId":"MERCHANT-REF-001","email":"john.doe@example.com","firstName":"John","lastName":"Doe","phone":"+370 60000000","dateOfBirth":"1990-01-01"},"billingAddress":{"address1":"211 Victory Street","city":"Vilnius","state":"Vilnius","countryCode":"LT","postalCode":"01001"},"callbackUrl":"https://napoleonpay.com/payment_callback.php","additionalParameters":{"walletAddress":"3c499c542cEF5E3811e1192ce70d8cC03d5c3359","blockchain":"MATIC","cryptoCurrency":"USDC"}},"key":"ONRAMP","summary":"Create Onramp payment","id":"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/ONRAMP"},"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/PAYIDWithdrawal":{"value":{"paymentType":"WITHDRAWAL","paymentMethod":"PAYID","amount":20,"currency":"AUD","reference":"YOUR-SYSTEM-TRX-ID","customer":{"email":"john.doe@example.com"},"webhookUrl":"https://example.com/webhook"},"key":"PAYIDWithdrawal","summary":"Create PAYID withdrawal","id":"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/PAYIDWithdrawal"},"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/SEPAWithdrawal":{"value":{"paymentType":"WITHDRAWAL","paymentMethod":"SEPA","amount":2,"currency":"EUR","description":"Payout order x112","reference":"x112","customer":{"referenceId":"MERCHANT-REF-001","email":"john.doe@example.com","firstName":"John","lastName":"Doe","phone":"+370 60000000","accountNumber":"LT63550037167864539"},"billingAddress":{"address1":"211 Victory Street","city":"Vilnius","state":"Vilnius","postalCode":"01001","countryCode":"LT"},"callbackUrl":"https://example.com/webhook","additionalParameters":{"purpose":"Payout"}},"key":"SEPAWithdrawal","summary":"Create SEPA withdrawal","id":"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/SEPAWithdrawal"},"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/FPSWithdrawal":{"value":{"paymentType":"WITHDRAWAL","paymentMethod":"FPS","amount":2,"currency":"GBP","description":"Payout order x11555","reference":"x11555","customer":{"referenceId":"MERCHANT-REF-001","email":"john.doe@example.com","firstName":"John","lastName":"Doe","phone":"+370 60000000","accountNumber":"12345678","bankCode":"040004","ipaddress":"203.0.113.10"},"billingAddress":{"address1":"211 Victory Street","city":"Vilnius","state":"Vilnius","postalCode":"01001","countryCode":"LT"},"callbackUrl":"https://example.com/webhook","additionalParameters":{"purpose":"Payout"}},"key":"FPSWithdrawal","summary":"Create FPS (Faster Payments) withdrawal","id":"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/FPSWithdrawal"},"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Ideal":{"value":{"paymentType":"DEPOSIT","paymentMethod":"IDEAL","amount":10,"currency":"EUR","description":"3a8e40a2-64e5-439d-99a5-09acbe8d5b7f order","externalApiId":"3a8e40a2-64e5-439d-99a5-09acbe8d5b7f","webhookUrl":"https://api.sample.com/api/v1/webhook/all/ext/3a8e40a2-64e5-439d-99a5-09acbe8d5b7f","customer":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+370 60000000"}},"key":"Ideal","summary":"Create iDEAL payment","id":"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Ideal"},"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Bancontact":{"value":{"paymentType":"DEPOSIT","paymentMethod":"BANCONTACT","amount":10,"currency":"EUR","description":"3a8e40a2-64e5-439d-99a5-09acbe8d5b7f order","externalApiId":"3a8e40a2-64e5-439d-99a5-09acbe8d5b7f","webhookUrl":"https://api.sample.com/api/v1/webhook/all/ext/3a8e40a2-64e5-439d-99a5-09acbe8d5b7f","customer":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+370 60000000"}},"key":"Bancontact","summary":"Create Bancontact payment","id":"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Bancontact"},"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Multibanco":{"value":{"paymentType":"DEPOSIT","paymentMethod":"MULTIBANCO","amount":10,"currency":"EUR","description":"3a8e40a2-64e5-439d-99a5-09acbe8d5b7f order","externalApiId":"3a8e40a2-64e5-439d-99a5-09acbe8d5b7f","webhookUrl":"https://api.sample.com/api/v1/webhook/all/ext/3a8e40a2-64e5-439d-99a5-09acbe8d5b7f","customer":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+370 60000000"}},"key":"Multibanco","summary":"Create Multibanco payment","id":"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Multibanco"},"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Eps":{"value":{"paymentType":"DEPOSIT","paymentMethod":"EPS","amount":10,"currency":"EUR","description":"3a8e40a2-64e5-439d-99a5-09acbe8d5b7f order","externalApiId":"3a8e40a2-64e5-439d-99a5-09acbe8d5b7f","webhookUrl":"https://api.sample.com/api/v1/webhook/all/ext/3a8e40a2-64e5-439d-99a5-09acbe8d5b7f","customer":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+370 60000000"}},"key":"Eps","summary":"Create EPS payment","id":"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Eps"},"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Przelewy24":{"value":{"paymentType":"DEPOSIT","paymentMethod":"P24","amount":10,"currency":"PLN","description":"3a8e40a2-64e5-439d-99a5-09acbe8d5b7f order","externalApiId":"3a8e40a2-64e5-439d-99a5-09acbe8d5b7f","webhookUrl":"https://api.sample.com/api/v1/webhook/all/ext/3a8e40a2-64e5-439d-99a5-09acbe8d5b7f","customer":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+370 60000000"}},"key":"Przelewy24","summary":"Create Przelewy24 (P24) payment","id":"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/Przelewy24"},"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CardWithdrawal":{"value":{"paymentType":"WITHDRAWAL","paymentMethod":"CARD","amount":50,"currency":"EUR","reference":"PAYOUT-2026-000123","customer":{"firstName":"JOHN","lastName":"DOE","referenceId":"PLAYER-10045"},"card":{"pan":"4111111111111111"},"webhookUrl":"https://merchant.example.com/napoleonpay/webhook"},"key":"CardWithdrawal","summary":"Create CARD withdrawal","id":"paths/~1api~1v1~1payments/post/requestBody/content/application~1json/examples/CardWithdrawal"},"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/ApplePay":{"value":{"result":{"id":"01990efa-5437-70c6-8244-85546f382bb3","paymentStatus":"PENDING","created":{"date":"2025-09-03 12:48:31.020712","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"Test ApplePay payment for order order-45c721ca","paymentMethod":"APPLEPAY","reference":"order-45c721ca","amount":10.23,"currency":"EUR","customer":null,"billingAddress":{"address1":null,"city":null,"countryCode":"LT","postalCode":null,"state":null},"redirectUrl":"https://gate.napoleonpay.io/payment/form/init/BB38447031435167306949777573304A3062422B4D486E55532F436B733679673758437038776C6A634243343D"}},"key":"ApplePay","summary":"Apple Pay response","id":"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/ApplePay"},"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/PAYID":{"value":{"result":{"id":"01990efa-5437-70c6-8244-85546f382bb3","paymentStatus":"PENDING","created":{"date":"2025-09-03 12:48:31.020712","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"Test PAYID payment for order order-45c721ca","paymentMethod":"PAYID","reference":"order-45c721ca","amount":10.23,"currency":"AUD","customer":null,"billingAddress":{"address1":null,"city":null,"countryCode":"LT","postalCode":null,"state":null},"redirectUrl":"https://gate.napoleonpay.io/payment/form/init/BB38447031435167306949777573304A3062422B4D486E55532F436B733679673758437038776C6A634243343D"}},"key":"PAYID","summary":"PAYID deposit response — Redirect flow","id":"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/PAYID"},"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/PAYIDH2H":{"value":{"result":{"id":"019f6ea2-7413-70b3-a7d4-2441633ca869","paymentStatus":"PENDING","created":{"date":"2026-07-17 08:52:48.886873","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"Test payment","paymentMethod":"PAYID","reference":"txn_f8fcaef9c2192809","amount":"100","currency":"AUD","customer":{"firstName":"John","lastName":"Doe","email":null,"phone":"+370 60000000","ipaddress":null,"dateOfBirth":null,"referenceId":null,"accountNumber":null,"bankCode":null}},"number":"PAYID@EXAMPLE.COM","full_holder_name":"EXAMPLE ACCOUNT HOLDER","payment_description":"839646","amount":"100.00","currency":"AUD","uuid":"636d3b0a-c7c9-456e-b73d-1f8f305dece1","order_id":"019f6ea2-7413-70b3-a7d4-2441633ca869"},"key":"PAYIDH2H","summary":"PAYID deposit response — H2H flow","id":"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/PAYIDH2H"},"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/GooglePay":{"value":{"result":{"id":"01990ef9-cef3-7041-8b78-7b60cea8f49b","paymentStatus":"PENDING","created":{"date":"2025-09-03 12:47:57.293162","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"Test GooglePay payment for order order-9842d960","paymentMethod":"GOOGLEPAY","reference":"order-9842d960","amount":10.23,"currency":"EUR","customer":null,"billingAddress":{"address1":null,"city":null,"countryCode":"LT","postalCode":null,"state":null},"redirectUrl":"https://gate.napoleonpay.io/payment/form/init/BB38447031435167306949777573304A3062422B4D486E55532F436B733679673758437038776C6A634243343D","fallbackPaymentStatus":1}},"key":"GooglePay","summary":"Google Pay response","id":"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/GooglePay"},"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Blik":{"value":{"result":{"id":"01990efb-a655-74cb-a0bf-da9fcce56282","paymentStatus":"PENDING","created":{"date":"2025-09-03 12:49:57.972605","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"Test payment for BLIK order order-f59d99d0","paymentMethod":"BLIK","reference":"24614a49f36d4712b6de0496c1e5bdb8","amount":20.23,"currency":"PLN","customer":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+370 60000000","ipaddress":"203.0.113.10"},"billingAddress":{"address1":"211 Victory Street","city":"Vilnius","countryCode":"LT","postalCode":"01001","state":"Vilnius"},"redirectUrl":"https://gate.napoleonpay.io/payment/form/init/BB38447031435167306949777573304A3062422B4D486E55532F436B733679673758437038776C6A634243343D"}},"key":"Blik","summary":"BLIK response","id":"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Blik"},"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/CARD":{"value":{"result":{"id":"01990eff-2aa1-7031-bc33-cbec6a97c4c2","paymentStatus":"PENDING","created":{"date":"2025-09-03 12:53:49.305205","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"Test payment","paymentMethod":"CARD","amount":21.2,"currency":"EUR","customer":{"firstName":null,"lastName":null,"email":"john.doe@example.com","phone":null,"ipaddress":null,"referenceId":"MERCHANT-REF-001"},"billingAddress":{"address1":null,"city":"Vilnius","countryCode":"LT","postalCode":"01001","state":"Vilnius"},"authorizationCode":null,"cardType":null,"redirectUrl":"https://gate.napoleonpay.io/payment/form/init/BB38447031435167306949777573304A3062422B4D486E55532F436B733679673758437038776C6A634243343D"}},"key":"CARD","summary":"CARD response","id":"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/CARD"},"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/ONRAMP":{"value":{"result":{"id":"01990eff-2aa1-7031-bc33-cbec6a97c4c2","paymentStatus":"PENDING","created":{"date":"2025-09-03 12:53:49.305205","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"Test payment","paymentMethod":"ONRAMP","amount":21.2,"currency":"EUR","customer":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+370 60000000","ipaddress":null,"referenceId":"MERCHANT-REF-001","dateOfBirth":"1990-01-01"},"billingAddress":{"address1":"211 Victory Street","city":"Vilnius","countryCode":"LT","postalCode":"01001","state":"Vilnius"},"redirectUrl":"https://gate.napoleonpay.io/payment/form/init/BB38447031435167306949777573304A3062422B4D486E55532F436B733679673758437038776C6A634243343D"}},"key":"ONRAMP","summary":"ONRAMP response","id":"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/ONRAMP"},"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Ideal":{"value":{"result":{"id":"019bf0a1-3c44-7a01-9b22-77ad9f0e1231","paymentStatus":"PENDING","created":{"date":"2026-01-24 10:15:00.000000","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"3a8e40a2-64e5-439d-99a5-09acbe8d5b7f order","paymentMethod":"IDEAL","reference":null,"amount":10,"currency":"EUR","customer":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+370 60000000"},"redirectUrl":"https://gate.napoleonpay.io/payment/form/init/BB38447031435167306949777573304A3062422B4D486E55532F436B733679673758437038776C6A634243343D"}},"key":"Ideal","summary":"iDEAL response","id":"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Ideal"},"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Bancontact":{"value":{"result":{"id":"019bf0a1-3c44-7a01-9b22-77ad9f0e1232","paymentStatus":"PENDING","created":{"date":"2026-01-24 10:15:00.000000","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"3a8e40a2-64e5-439d-99a5-09acbe8d5b7f order","paymentMethod":"BANCONTACT","reference":null,"amount":10,"currency":"EUR","customer":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+370 60000000"},"redirectUrl":"https://gate.napoleonpay.io/payment/form/init/BB38447031435167306949777573304A3062422B4D486E55532F436B733679673758437038776C6A634243343D"}},"key":"Bancontact","summary":"Bancontact response","id":"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Bancontact"},"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Multibanco":{"value":{"result":{"id":"019bf0a1-3c44-7a01-9b22-77ad9f0e1234","paymentStatus":"PENDING","created":{"date":"2026-01-24 10:15:00.000000","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"3a8e40a2-64e5-439d-99a5-09acbe8d5b7f order","paymentMethod":"MULTIBANCO","reference":null,"amount":10,"currency":"EUR","customer":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+370 60000000"},"redirectUrl":"https://gate.napoleonpay.io/payment/form/init/BB38447031435167306949777573304A3062422B4D486E55532F436B733679673758437038776C6A634243343D"}},"key":"Multibanco","summary":"Multibanco response","id":"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Multibanco"},"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Eps":{"value":{"result":{"id":"019bf0a1-3c44-7a01-9b22-77ad9f0e1235","paymentStatus":"PENDING","created":{"date":"2026-01-24 10:15:00.000000","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"3a8e40a2-64e5-439d-99a5-09acbe8d5b7f order","paymentMethod":"EPS","reference":null,"amount":10,"currency":"EUR","customer":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+370 60000000"},"redirectUrl":"https://gate.napoleonpay.io/payment/form/init/BB38447031435167306949777573304A3062422B4D486E55532F436B733679673758437038776C6A634243343D"}},"key":"Eps","summary":"EPS response","id":"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Eps"},"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Przelewy24":{"value":{"result":{"id":"019bf0a1-3c44-7a01-9b22-77ad9f0e1236","paymentStatus":"PENDING","created":{"date":"2026-01-24 10:15:00.000000","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"3a8e40a2-64e5-439d-99a5-09acbe8d5b7f order","paymentMethod":"P24","reference":null,"amount":10,"currency":"PLN","customer":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+370 60000000"},"redirectUrl":"https://gate.napoleonpay.io/payment/form/init/BB38447031435167306949777573304A3062422B4D486E55532F436B733679673758437038776C6A634243343D"}},"key":"Przelewy24","summary":"Przelewy24 (P24) response","id":"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Przelewy24"},"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/PAYIDWithdrawal":{"value":{"result":{"id":"019e6dca-cf46-77d7-8765-c1d5cfa15983","paymentStatus":"PENDING","created":{"date":"2026-05-28 08:54:29.276107","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"WITHDRAWAL","description":"Payout order YOUR-SYSTEM-TRX-ID","paymentMethod":"PAYID","reference":"YOUR-SYSTEM-TRX-ID","amount":"20","currency":"AUD","customer":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+370 60000000","ipaddress":"203.0.113.10","dateOfBirth":null,"referenceId":"MERCHANT-REF-001"},"billingAddress":{"address1":"211 Victory Street","city":"Vilnius","countryCode":"LT","postalCode":"01001","state":"Vilnius"}}},"key":"PAYIDWithdrawal","summary":"PAYID withdrawal response","id":"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/PAYIDWithdrawal"},"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/SEPAWithdrawal":{"value":{"result":{"id":"019e7a01-3c44-7a01-9b22-77ad9f0e9abc","paymentStatus":"PENDING","created":{"date":"2026-05-28 09:10:00.000000","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"WITHDRAWAL","description":"Payout order x112","paymentMethod":"SEPA","reference":"x112","amount":"2","currency":"EUR","customer":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+370 60000000","ipaddress":"203.0.113.10","dateOfBirth":null,"referenceId":"MERCHANT-REF-001","accountNumber":"LT63550037167864539"},"billingAddress":{"address1":"211 Victory Street","city":"Vilnius","countryCode":"LT","postalCode":"01001","state":"Vilnius"}}},"key":"SEPAWithdrawal","summary":"SEPA withdrawal response","id":"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/SEPAWithdrawal"},"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/FPSWithdrawal":{"value":{"result":{"id":"019f41de-2099-7efb-bc32-79ff81f37585","paymentStatus":"PENDING","created":{"date":"2026-07-08 16:15:04.745285","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"WITHDRAWAL","description":"Payout order x11555","paymentMethod":"FPS","reference":"x11555","amount":"1","currency":"GBP","customer":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+370 60000000","ipaddress":"203.0.113.10","dateOfBirth":null,"referenceId":"MERCHANT-REF-001","accountNumber":"12345678","bankCode":"040004"},"billingAddress":{"address1":"211 Victory Street","city":"Vilnius","countryCode":"LT","postalCode":"01001","state":"Vilnius"}}},"key":"FPSWithdrawal","summary":"FPS withdrawal response","id":"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/FPSWithdrawal"},"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/CardWithdrawal":{"value":{"result":{"id":"01a10000-0000-7000-8000-000000000001","reference":"PAYOUT-2026-000123","paymentStatus":"PENDING","paymentType":"WITHDRAWAL","paymentMethod":"CARD","amount":50,"currency":"EUR","created":{"date":"2026-10-06 12:34:56.123456","timezone_type":3,"timezone":"Europe/Vilnius"},"customer":{"firstName":"JOHN","lastName":"DOE","email":null,"phone":null,"ipaddress":null,"dateOfBirth":null,"referenceId":"PLAYER-10045","accountNumber":null,"bankCode":null}}},"key":"CardWithdrawal","summary":"CARD withdrawal response","id":"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/CardWithdrawal"},"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Refused":{"value":{"success":false,"message":"Response validation failed","info":[]},"key":"Refused","summary":"Refused — no payment created (HTTP 200, success false)","id":"paths/~1api~1v1~1payments/post/responses/200/content/application~1json/examples/Refused"},"paths/~1api~1v1~1payments/post/responses/400/content/application~1json/examples/TypeNotAllowed":{"value":{"success":false,"message":"Payments of the chosen type are not allowed for this terminal"},"key":"TypeNotAllowed","summary":"Payout not enabled for this project","id":"paths/~1api~1v1~1payments/post/responses/400/content/application~1json/examples/TypeNotAllowed"},"paths/~1api~1v1~1payments/post/responses/400/content/application~1json/examples/NoTerminal":{"value":{"success":false,"message":"No terminal configured for payment method: CARD (EUR)"},"key":"NoTerminal","summary":"No terminal for that method and currency","id":"paths/~1api~1v1~1payments/post/responses/400/content/application~1json/examples/NoTerminal"},"paths/~1api~1v1~1payments/post/responses/401/content/application~1json/examples/InvalidKey":{"value":{"message":"Invalid API Key"},"key":"InvalidKey","summary":"Invalid API key","id":"paths/~1api~1v1~1payments/post/responses/401/content/application~1json/examples/InvalidKey"},"paths/~1api~1v1~1payments/post/responses/422/content/application~1json/examples/MissingField":{"value":{"type":"https://symfony.com/errors/validation","title":"Validation Failed","status":422,"detail":"customer.referenceId: This value should not be null.","violations":[{"propertyPath":"customer.referenceId","title":"This value should not be null.","template":"This value should not be null.","parameters":{"{{ value }}":"null"},"type":"urn:uuid:ad32d13f-c3d4-423b-909a-857b961eb720"}]},"key":"MissingField","summary":"Required field missing","id":"paths/~1api~1v1~1payments/post/responses/422/content/application~1json/examples/MissingField"},"paths/~1api~1v1~1payments/post/responses/422/content/application~1json/examples/DuplicateReference":{"value":{"type":"https://symfony.com/errors/validation","title":"Validation Failed","status":422,"detail":"reference: Transaction with same reference already exists for this project","violations":[{"propertyPath":"reference","title":"Transaction with same reference already exists for this project","template":"Transaction with same reference already exists for this project","parameters":{},"type":"urn:uuid:23bd9dbf-6b9b-41cd-a99e-4844bcf3077f"}]},"key":"DuplicateReference","summary":"reference already used","id":"paths/~1api~1v1~1payments/post/responses/422/content/application~1json/examples/DuplicateReference"},"paths/~1api~1v1~1payments/post/responses/422/content/application~1json/examples/BadPan":{"value":{"type":"https://symfony.com/errors/validation","title":"Validation Failed","status":422,"detail":"card.pan: PAN must be 12-19 digits","violations":[{"propertyPath":"card.pan","title":"PAN must be 12-19 digits","template":"PAN must be 12-19 digits","parameters":{},"type":"urn:uuid:9ff3fdc4-b214-49db-8718-39c315e33d45"}]},"key":"BadPan","summary":"Card number rejected","id":"paths/~1api~1v1~1payments/post/responses/422/content/application~1json/examples/BadPan"},"paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/CARD":{"value":{"id":"019ab727-1378-795a-bec3-1fa75dd18f48","paymentStatus":"COMPLETED","created":{"date":"2025-11-24 20:36:23.000000","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"Test payin","paymentMethod":"CARD","reference":null,"amount":10,"currency":"EUR","customer":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+370 60000000","ipaddress":null,"referenceId":null},"billingAddress":{"address1":"211 Victory Street","city":"Vilnius","countryCode":"LT","postalCode":"01001","state":"Vilnius"}},"key":"CARD","summary":"CARD — final status","id":"paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/CARD"},"paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/GOOGLEPAY":{"value":{"id":"019bebd8-75ce-7ebb-8049-e4e9bda33320","paymentStatus":"COMPLETED","created":{"date":"2026-01-23 19:13:11.000000","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"Test payment","paymentMethod":"GOOGLEPAY","reference":"97f405f850a94f5cba5a7aeef1398dc6","amount":20,"currency":"EUR","customer":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+370 60000000","ipaddress":"203.0.113.10","dateOfBirth":null,"referenceId":"MERCHANT-REF-001"},"billingAddress":{"address1":"211 Victory Street","city":"Vilnius","countryCode":"LT","postalCode":"01001","state":"Vilnius"},"fallbackPaymentStatus":1},"key":"GOOGLEPAY","summary":"GOOGLEPAY — final status","id":"paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/GOOGLEPAY"},"paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/APPLEPAY":{"value":{"id":"019bebd4-5b04-7016-8a50-b918fca777c5","paymentStatus":"COMPLETED","created":{"date":"2026-01-23 19:08:41.000000","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"Test payment","paymentMethod":"APPLEPAY","reference":"ce43f23650994ae7896ad31433992a53","amount":100,"currency":"EUR","customer":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+370 60000000","ipaddress":"203.0.113.10","dateOfBirth":null,"referenceId":"MERCHANT-REF-001"},"billingAddress":{"address1":"211 Victory Street","city":"Vilnius","countryCode":"LT","postalCode":"01001","state":"Vilnius"}},"key":"APPLEPAY","summary":"APPLEPAY — final status","id":"paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/APPLEPAY"},"paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/BLIK":{"value":{"id":"019bebb4-5d6b-7c89-ae10-05b06d2b89d9","paymentStatus":"COMPLETED","created":{"date":"2026-01-23 18:33:50.000000","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"Test payment","paymentMethod":"BLIK","reference":"0f6632f4f62d4c42a1a08eed53ddfa77","amount":50,"currency":"PLN","billingAddress":{"address1":"211 Victory Street","city":"Vilnius","countryCode":"LT","postalCode":"01001","state":"Vilnius"},"customer":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+370 60000000","ipaddress":"203.0.113.10"}},"key":"BLIK","summary":"BLIK — final status","id":"paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/BLIK"},"paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/PAYID":{"value":{"id":"019f6ea2-7413-70b3-a7d4-2441633ca869","paymentStatus":"COMPLETED","created":{"date":"2026-07-17 08:52:48.000000","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"Test payment","paymentMethod":"PAYID","reference":"txn_f8fcaef9c2192809","amount":100,"currency":"AUD","customer":{"firstName":"John","lastName":"Doe","email":null,"phone":"+370 60000000","ipaddress":null,"dateOfBirth":null,"referenceId":null,"accountNumber":null,"bankCode":null}},"key":"PAYID","summary":"PAYID — final status (same payload for Redirect and H2H flows)","id":"paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/PAYID"},"paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/PAYIDDeclined":{"value":{"id":"019f6c7f-81c7-78b1-8f32-5321acd2384a","paymentStatus":"FAILED","created":{"date":"2026-07-16 22:55:24.000000","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"Test payment","paymentMethod":"PAYID","reference":"txn_98177752201fa52d","amount":80,"currency":"AUD","customer":{"firstName":"John","lastName":"Doe","email":null,"phone":"+370 60000000","ipaddress":null,"dateOfBirth":null,"referenceId":null,"accountNumber":null,"bankCode":null}},"key":"PAYIDDeclined","summary":"PAYID — declined payment (FAILED)","id":"paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/PAYIDDeclined"},"paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/CardPayoutCompleted":{"value":{"id":"01a10000-0000-7000-8000-000000000001","reference":"PAYOUT-2026-000123","paymentStatus":"COMPLETED","paymentType":"WITHDRAWAL","paymentMethod":"CARD","amount":50,"currency":"EUR","created":{"date":"2026-10-06 12:34:56.000000","timezone_type":3,"timezone":"Europe/Vilnius"},"customer":{"firstName":"JOHN","lastName":"DOE","email":null,"phone":null,"ipaddress":null,"dateOfBirth":null,"referenceId":"PLAYER-10045","accountNumber":null,"bankCode":null},"providerId":"01a10000-0000-7000-8000-000000000001","fallbackPaymentStatus":"default"},"key":"CardPayoutCompleted","summary":"CARD withdrawal — COMPLETED","id":"paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/CardPayoutCompleted"},"paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/CardPayoutFailed":{"value":{"id":"01a10000-0000-7000-8000-000000000001","reference":"PAYOUT-2026-000123","paymentStatus":"FAILED","paymentType":"WITHDRAWAL","paymentMethod":"CARD","amount":50,"currency":"EUR","created":{"date":"2026-10-06 12:34:56.000000","timezone_type":3,"timezone":"Europe/Vilnius"},"customer":{"firstName":"JOHN","lastName":"DOE","email":null,"phone":null,"ipaddress":null,"dateOfBirth":null,"referenceId":"PLAYER-10045","accountNumber":null,"bankCode":null},"providerId":"01a10000-0000-7000-8000-000000000001","fallbackPaymentStatus":"default"},"key":"CardPayoutFailed","summary":"CARD withdrawal — FAILED","id":"paths/~1api~1v1~1payments/post/callbacks/paymentStatusUpdate/post/requestBody/content/application~1json/examples/CardPayoutFailed"},"paths/~1api~1v1~1payments~1{id}/get/responses/200/content/application~1json/examples/Failed":{"value":{"result":{"id":"0199aaaa-bbbb-7ccc-dddd-eeeeffff0001","paymentStatus":"FAILED","created":{"date":"2026-09-21 14:00:02.000000","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"Deposit TXN-SAMPLE0000000000000001","paymentMethod":"USER_CHOICE","reference":"TXN-SAMPLE0000000000000001","amount":57.3,"cryptoAmount":"53.36000000","cryptoCurrency":"USDC","currency":"USD","customer":{"firstName":"JOHN","lastName":"DOE","email":"john.doe@example.com","phone":"+447700900001","ipaddress":"2001:db8:750:4101::6e8c","dateOfBirth":"1985-06-15","referenceId":"10001","accountNumber":null,"bankCode":null},"billingAddress":{"address1":null,"city":null,"countryCode":"GB","postalCode":null,"state":null},"errorMessage":"Payment not funded","crypto_fx":1.07383808}},"key":"Failed","summary":"FAILED — declined, with a decline reason","id":"paths/~1api~1v1~1payments~1{id}/get/responses/200/content/application~1json/examples/Failed"},"paths/~1api~1v1~1payments~1{id}/get/responses/200/content/application~1json/examples/Completed":{"value":{"result":{"id":"0199aaaa-bbbb-7ccc-dddd-eeeeffff0002","paymentStatus":"COMPLETED","created":{"date":"2026-09-21 16:20:44.000000","timezone_type":3,"timezone":"Europe/Vilnius"},"paymentType":"DEPOSIT","description":"Deposit TXN-SAMPLE0000000000000002","paymentMethod":"USER_CHOICE","reference":"TXN-SAMPLE0000000000000002","amount":57.3,"cryptoAmount":"53.36000000","cryptoCurrency":"USDC","currency":"USD","customer":{"firstName":"JANE","lastName":"ROE","email":"jane.roe@example.com","phone":"+447700900002","ipaddress":"2001:db8:13e7:3a01::bb2","dateOfBirth":"1990-03-22","referenceId":"10002","accountNumber":null,"bankCode":null},"billingAddress":{"address1":null,"city":null,"countryCode":"GB","postalCode":null,"state":null},"settled_crypto_amount":53.35,"crypto_fx":1.07403936,"crypto_tx_hash":"0x1111111111111111111111111111111111111111111111111111111111111111","destination_wallet":"0x1234567890abcdef1234567890abcdef12345678"}},"key":"Completed","summary":"COMPLETED — settled on chain","id":"paths/~1api~1v1~1payments~1{id}/get/responses/200/content/application~1json/examples/Completed"},"paths/~1api~1v1~1payments~1{id}/get/responses/401/content/application~1json/examples/InvalidKey":{"value":{"message":"Invalid API Key"},"key":"InvalidKey","summary":"Invalid API key","id":"paths/~1api~1v1~1payments~1{id}/get/responses/401/content/application~1json/examples/InvalidKey"}},"securitySchemeStore":{"Bearer":{"id":"Bearer","type":"http","scheme":"bearer","description":"API Key used as a Bearer token"},"Signature":{"id":"Signature","type":"apiKey","description":[{"$$mdtype":"Node","type":"paragraph","attributes":{},"children":[{"$$mdtype":"Node","type":"inline","attributes":{},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"HMAC SHA-256 signature of the request payload, sent in the "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"Signature"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" header. Compute it as "},"children":[]},{"$$mdtype":"Node","type":"code","inline":true,"attributes":{"content":"hash_hmac('sha256', body, signKey)"},"children":[]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" over the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"exact JSON body"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" you send — see the "},"children":[]},{"$$mdtype":"Node","type":"strong","inline":true,"attributes":{"marker":"**"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Authentication"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" section of the "},"children":[]},{"$$mdtype":"Node","type":"em","inline":true,"attributes":{"marker":"*"},"children":[{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":"Create a deposit or a withdrawal"},"children":[]}]},{"$$mdtype":"Node","type":"text","inline":true,"attributes":{"content":" operation for a full PHP example."},"children":[]}]}]}],"in":"header","paramName":"Signature"}},"servers":[{"url":"https://api.napoleonpay.com"}],"specType":"openapi"},"options":{"mockServer":{"off":true,"position":"off"},"disableRouter":true,"downloadUrls":[{"url":"/_bundle/apis/napoleonpay/@1.6/openapi.json?download"},{"url":"/_bundle/apis/napoleonpay/@1.6/openapi.yaml?download"}],"excludeFromSearch":false,"replayFeatures":{"graphql":false},"specType":"openapi","markdocOptions":{"tags":{},"nodes":{},"components":{}},"metadata":{"title":"NapoleonPay API Docs","description":"NapoleonPay payment gateway API for creating payments and withdrawals"}},"baseSlug":"/apis/napoleonpay/openapi","routesMapping":{}}