OrsunPay sends this POST to the transaction callbackUrl after a status update. Verify HMAC-SHA256 over the exact raw body before parsing, using the merchant webhook secret (ADR-010). Reject signature timestamps beyond 300 seconds; compare in constant time. Deliveries are at least once and can arrive out of order. Deduplicate by the signed body id. Secret rotation takes effect immediately (no dual signing); failed deliveries retry for approximately 31 hours. API keys are not sent with webhooks.
Payment status event type; refund events use RefundWebhookEvent
Example:
"transaction.updated"
Response
2XX
Any 2xx acknowledges delivery. Response body is ignored but must be empty or at most 64 KiB (MERCHANT_WEBHOOK_MAX_RESPONSE_BYTES); a larger body fails the delivery attempt. Prefer HTTP 204 No Content.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OrsunPay","description":"Guides, API contracts and workspace walkthroughs for merchants integrating OrsunPay.","colors":{"primary":"#826300","light":"#FFCC00","dark":"#705600"},"logo":{"light":"https://mintcdn.com/orsunpay/9giosiM-mO_kwig_/brand/logo-light.svg?fit=max\u0026auto=format\u0026n=9giosiM-mO_kwig_\u0026q=85\u0026s=993e4b5b338d8309f92a9295890ce0b8","dark":"https://mintcdn.com/orsunpay/9giosiM-mO_kwig_/brand/logo-dark.svg?fit=max\u0026auto=format\u0026n=9giosiM-mO_kwig_\u0026q=85\u0026s=3f7a25249f226fc3db217801c714262c"},"favicon":"https://mintcdn.com/orsunpay/9giosiM-mO_kwig_/brand/favicon.svg?fit=max\u0026auto=format\u0026n=9giosiM-mO_kwig_\u0026q=85\u0026s=2ad7f5317a7cd3fc82e1751839429c8f","api":{"playground":{"display":"simple"}},"navbar":{"links":[{"href":"https://orsunpay.com/contact","label":"Support"}],"primary":{"type":"button","label":"Merchant cabinet","href":"https://r1-cabinet.orsunpay.com"}},"fonts":{"family":"Onest"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"orsunpay","hasAudioNarration":false,"actualSubdomain":"orsunpay","customDomains":["docs.orsunpay.com"],"gitSource":{"type":"github","owner":"orsuntech","repo":"orsunpay-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":"","_id":"6aed3b9f94899c7f5d7debb7"},"entitlements":{},"buildId":"6aed7a978edba1c7664b50a7","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"API Reference","count":54},{"language":"default","tag":"Endpoints","count":53},{"language":"default","tag":"Guides","count":33},{"language":"default","tag":"Cashier player","count":18},{"language":"default","tag":"Usage billing","count":15},{"language":"default","tag":"Server SDKs","count":9},{"language":"default","tag":"Payment methods","count":8},{"language":"default","tag":"Integration essentials","count":6},{"language":"default","tag":"Accept a payment","count":6},{"language":"default","tag":"Manage payments","count":6}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"api-reference/webhooks/transaction-status-event","slug":"/api-reference/webhooks/transaction-status-event","pageMetadata":{"title":"Transaction status event","description":"OrsunPay sends this POST to the transaction callbackUrl after a status update. Verify HMAC-SHA256 over the exact raw body before parsing, using the merchant webhook secret (ADR-010). Reject signature timestamps beyond 300 seconds; compare in constant time. Deliveries are at least once and can arrive out of order. Deduplicate by the signed body id. Secret rotation takes effect immediately (no dual signing); failed deliveries retry for approximately 31 hours. API keys are not sent with webhooks.","version":null,"deprecated":null,"openapi":"/openapi.json webhook transactionUpdated","href":"/api-reference/webhooks/transaction-status-event","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"OrsunPay sends this POST to the transaction callbackUrl after a status update. Verify HMAC-SHA256 over the exact raw body before parsing, using the merchant webhook secret (ADR-010). Reject signature timestamps beyond 300 seconds; compare in constant time. Deliveries are at least once and can arrive out of order. Deduplicate by the signed body id. Secret rotation takes effect immediately (no dual signing); failed deliveries retry for approximately 31 hours. API keys are not sent with webhooks.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Transaction status event","description":"OrsunPay sends this POST to the transaction callbackUrl after a status update. Verify HMAC-SHA256 over the exact raw body before parsing, using the merchant webhook secret (ADR-010). Reject signature timestamps beyond 300 seconds; compare in constant time. Deliveries are at least once and can arrive out of order. Deduplicate by the signed body id. Secret rotation takes effect immediately (no dual signing); failed deliveries retry for approximately 31 hours. API keys are not sent with webhooks.","version":null,"deprecated":null,"openapi":"/openapi.json webhook transactionUpdated","href":"/api-reference/webhooks/transaction-status-event","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"OrsunPay sends this POST to the transaction callbackUrl after a status update. Verify HMAC-SHA256 over the exact raw body before parsing, using the merchant webhook secret (ADR-010). Reject signature timestamps beyond 300 seconds; compare in constant time. Deliveries are at least once and can arrive out of order. Deduplicate by the signed body id. Secret rotation takes effect immediately (no dual signing); failed deliveries retry for approximately 31 hours. API keys are not sent with webhooks.","operationId":"receiveTransactionUpdated","parameters":["cd60e73f-dcd6-43a4-8700-d0d5e7d61c03","79ceeca9-3bed-4708-8c7f-6a235e9d567d","e973dc52-b5d5-41bc-afc4-350f75dc08e5"],"requestBody":"306e4dc3-c634-4e8d-b0ba-7bdcc67e83cb","responses":{"2XX":"db870fdd-8236-4e3c-9eb6-b7ad35845511"},"security":[],"summary":"Transaction status event","tags":["Webhooks"],"method":"post","type":"webhook","servers":[],"path":"transactionUpdated","baseUrlOptions":[],"title":"Transaction status event","codeSamples":[],"requiredOnlyExamples":false,"requestExamples":[{"language":"json","filename":"Example","code":"{\n \"api_version\": \"2026-10-31\",\n \"created_at\": \"2026-10-10T10:00:00.000Z\",\n \"data\": {\n \"paymentData\": {},\n \"transaction\": {\n \"action\": \"SALE\",\n \"amount\": \"12.30\",\n \"createdAt\": \"2026-10-10T09:59:00.000Z\",\n \"currency\": \"EUR\",\n \"id\": \"tr_example\",\n \"livemode\": true,\n \"orderId\": \"order_example_001\",\n \"status\": \"SUCCESS\"\n }\n },\n \"id\": \"evt_0j7s2pft4v8b9t8nj2cra1eg00\",\n \"livemode\": true,\n \"type\": \"transaction.updated\"\n}"}],"requestExampleType":"webhook","responseExampleType":"generated"},"dependencies":{"parameters":{"cd60e73f-dcd6-43a4-8700-d0d5e7d61c03":{"description":"t=\u003cUnix seconds>,v1=\u003chex HMAC-SHA256(timestamp + \".\" + exact raw body)>; never log this header","in":"header","name":"OrsunPay-Signature","required":true,"schema":{"pattern":"^t=[0-9]+,v1=[a-f0-9]{64}$","type":"string","isRequired":true,"description":"t=\u003cUnix seconds>,v1=\u003chex HMAC-SHA256(timestamp + \".\" + exact raw body)>; never log this header","uniqueKey":"","typeLabel":"string"}},"79ceeca9-3bed-4708-8c7f-6a235e9d567d":{"description":"Convenience copy of body id (evt_…); deduplicate only after verifying the signed body","in":"header","name":"OrsunPay-Event-Id","required":true,"schema":{"pattern":"^evt_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string","isRequired":true,"description":"Convenience copy of body id (evt_…); deduplicate only after verifying the signed body","uniqueKey":"","typeLabel":"string"}},"e973dc52-b5d5-41bc-afc4-350f75dc08e5":{"description":"Convenience copy of body type","in":"header","name":"OrsunPay-Event-Type","required":true,"schema":{"example":"transaction.updated","type":"string","isRequired":true,"description":"Convenience copy of body type","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"content":{"application/json":{"example":{"api_version":"2026-10-31","created_at":"2026-10-10T10:00:00.000Z","data":{"paymentData":{},"transaction":{"action":"SALE","amount":"12.30","createdAt":"2026-10-10T09:59:00.000Z","currency":"EUR","id":"tr_example","livemode":true,"orderId":"order_example_001","status":"SUCCESS"}},"id":"evt_0j7s2pft4v8b9t8nj2cra1eg00","livemode":true,"type":"transaction.updated"},"schema":{"description":"Signed merchant event envelope (ADR-005/010). Event id and created_at remain unchanged on retries. Additional fields and event types may be added.","properties":{"api_version":{"description":"Payload version, fixed for the event (retries and re-drives keep it). Current: 2026-10-31. See the webhook event catalogue.","example":"2026-10-31","pattern":"^[0-9]{4}-[0-9]{2}-[0-9]{2}$","type":"string","isRequired":true,"uniqueKey":"api_version","typeLabel":"string"},"created_at":{"description":"UTC time when the event was recorded, not delivery time","format":"date-time","type":"string","isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"data":{"properties":{"paymentData":{"description":"Opaque JSON provider data. Shape varies by provider and event; may contain personal data. Do not log it.","isRequired":true,"uniqueKey":"data.paymentData","typeLabel":"any"},"transaction":{"properties":{"action":{"description":"Transaction action type","enum":["SALE","PAYOUT","AUTHORIZE","REFUND","CHARGEBACK"],"example":"SALE","type":"string","isRequired":true,"uniqueKey":"data.transaction.action","typeLabel":"enum\u003cstring>"},"amount":{"description":"Transaction amount in `currency`. Decimal string in major units, padded to the currency exponent (\"10.00\" EUR, \"5000\" JPY). Parse with a decimal library, never with parseFloat.","example":"10.00","pattern":"^(0|[1-9]\\d{0,19})(\\.\\d{1,18})?$","type":"string","isRequired":true,"uniqueKey":"data.transaction.amount","typeLabel":"string"},"createdAt":{"description":"Transaction creation timestamp","example":"2023-12-25T10:00:00.000Z","format":"date-time","type":"string","isRequired":true,"uniqueKey":"data.transaction.createdAt","typeLabel":"string\u003cdate-time>"},"currency":{"description":"Transaction currency","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHF","CLF","CLP","CNY","COP","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VES","VND","VUV","WST","XAF","XAG","XAU","XCD","XDR","XOF","XPF","YER","ZAR","ZMW","ZWL"],"example":"USD","type":"string","isRequired":true,"uniqueKey":"data.transaction.currency","typeLabel":"enum\u003cstring>"},"id":{"description":"Transaction ID","example":"tr_xv0p2q5scocndpejk0nud75q","type":"string","isRequired":true,"uniqueKey":"data.transaction.id","typeLabel":"string"},"livemode":{"description":"True for live payments; false for sandbox payments. Derived from the authenticated API key.","example":true,"type":"boolean","isRequired":true,"uniqueKey":"data.transaction.livemode","typeLabel":"boolean"},"orderId":{"description":"Order ID from merchant system","example":"transaction_123","type":"string","isRequired":true,"uniqueKey":"data.transaction.orderId","typeLabel":"string"},"status":{"description":"Transaction status","enum":["CREATED","WAIT_APPROVE","PROCESSING","CANCELED","DECLINED","SUCCESS","EXPIRED"],"example":"PROCESSING","type":"string","isRequired":true,"uniqueKey":"data.transaction.status","typeLabel":"enum\u003cstring>"},"currencyRate":{"oneOf":[{"type":"string","description":"Effective DCC rate as a plain decimal string; null without DCC.","example":"0.9573935814433348","uniqueKey":"data.transaction.currencyRate.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.transaction.currencyRate.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.transaction.currencyRate","typeLabel":"string | null"},"errorCode":{"oneOf":[{"type":"string","description":"Payment error/outcome reason. LIVEMODE_MISMATCH means the transaction was DECLINED before PSP dispatch; creation still returns HTTP 201 with status: true. PSP_OUTCOME_UNKNOWN means reconcile or poll; do not create another order. PSP_INPUT_INVALID identifies local legacy-submit serialization/codec failures; PSP_REQUEST_REJECTED identifies a definitive upstream rejection.","example":"PSP_OUTCOME_UNKNOWN","uniqueKey":"data.transaction.errorCode.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.transaction.errorCode.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.transaction.errorCode","typeLabel":"string | null"},"feeAmount":{"oneOf":[{"type":"string","description":"Configured fee: money in `processingCurrency` for FIXED fees, a percent (\"10\" = 10 %) for PERCENTAGE fees. Decimal string.","pattern":"^(0|[1-9]\\d{0,19})(\\.\\d{1,18})?$","example":"10","uniqueKey":"data.transaction.feeAmount.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.transaction.feeAmount.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.transaction.feeAmount","typeLabel":"string | null"},"processingAmount":{"oneOf":[{"type":"string","description":"Amount in `processingCurrency`. Decimal string in major units, padded to the currency exponent (\"10.00\" EUR, \"5000\" JPY). Parse with a decimal library, never with parseFloat.","pattern":"^(0|[1-9]\\d{0,19})(\\.\\d{1,18})?$","example":"9.57","uniqueKey":"data.transaction.processingAmount.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.transaction.processingAmount.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.transaction.processingAmount","typeLabel":"string | null"},"processingAmountWithFee":{"oneOf":[{"type":"string","description":"Processing amount including a TOP fee, in `processingCurrency`. Decimal string in major units, padded to the currency exponent (\"10.00\" EUR, \"5000\" JPY). Parse with a decimal library, never with parseFloat.","pattern":"^(0|[1-9]\\d{0,19})(\\.\\d{1,18})?$","example":"10.53","uniqueKey":"data.transaction.processingAmountWithFee.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.transaction.processingAmountWithFee.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.transaction.processingAmountWithFee","typeLabel":"string | null"},"processingCurrency":{"description":"Currency the PSP is charged in (differs from `currency` with DCC)","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHF","CLF","CLP","CNY","COP","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VES","VND","VUV","WST","XAF","XAG","XAU","XCD","XDR","XOF","XPF","YER","ZAR","ZMW","ZWL"],"example":"EUR","type":"string","uniqueKey":"data.transaction.processingCurrency","typeLabel":"enum\u003cstring>"},"processingFeeAmount":{"oneOf":[{"type":"string","description":"Fee charged, in `processingCurrency`. Decimal string in major units, padded to the currency exponent (\"10.00\" EUR, \"5000\" JPY). Parse with a decimal library, never with parseFloat.","pattern":"^(0|[1-9]\\d{0,19})(\\.\\d{1,18})?$","example":"0.96","uniqueKey":"data.transaction.processingFeeAmount.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.transaction.processingFeeAmount.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.transaction.processingFeeAmount","typeLabel":"string | null"}},"required":["livemode","id","orderId","status","action","amount","currency","createdAt"],"type":"object","isRequired":true,"uniqueKey":"data.transaction","typeLabel":"object"}},"required":["transaction","paymentData"],"type":"object","isRequired":true,"uniqueKey":"data","typeLabel":"object"},"id":{"description":"Stable event identifier (TypeID with prefix evt_); identical on every retry and re-drive. Use the signed body id for deduplication","example":"evt_0j7s2pft4v8b9t8nj2cra1eg00","pattern":"^evt_[0-7][0-9a-hjkmnp-tv-z]{25}$","type":"string","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"livemode":{"description":"Mode of the transaction snapshot; false for sandbox.","type":"boolean","isRequired":true,"uniqueKey":"livemode","typeLabel":"boolean"},"type":{"description":"Payment status event type; refund events use RefundWebhookEvent","example":"transaction.updated","type":"string","isRequired":true,"uniqueKey":"type","typeLabel":"string"}},"required":["id","type","api_version","created_at","data","livemode"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"api_version":"2026-10-31","created_at":"2026-10-10T10:00:00.000Z","data":{"paymentData":{},"transaction":{"action":"SALE","amount":"12.30","createdAt":"2026-10-10T09:59:00.000Z","currency":"EUR","id":"tr_example","livemode":true,"orderId":"order_example_001","status":"SUCCESS"}},"id":"evt_0j7s2pft4v8b9t8nj2cra1eg00","livemode":true,"type":"transaction.updated"}}},"exampleType":"examples"}},"required":true,"exampleType":"examples"},"responses":{"db870fdd-8236-4e3c-9eb6-b7ad35845511":{"description":"Any 2xx acknowledges delivery. Response body is ignored but must be empty or at most 64 KiB (MERCHANT_WEBHOOK_MAX_RESPONSE_BYTES); a larger body fails the delivery attempt. Prefer HTTP 204 No Content.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{},"servers":{}},"originalFileLocation":"openapi.json"},"subdomain":"orsunpay","siteName":"OrsunPay","title":"Transaction status event - OrsunPay","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-06T02:29:57.365Z","originalFileLocation":"api-reference/webhooks/transaction-status-event.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"OrsunPay sends this POST to the transaction callbackUrl after a status update. Verify HMAC-SHA256 over the exact raw body before parsing, using the merchant webhook secret (ADR-010). Reject signature timestamps beyond 300 seconds; compare in constant time. Deliveries are at least once and can arrive out of order. Deduplicate by the signed body id. Secret rotation takes effect immediately (no dual signing); failed deliveries retry for approximately 31 hours. API keys are not sent with webhooks.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OrsunPay\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/orsunpay/XvMZZnN-BopedfX_/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/orsunpay/XvMZZnN-BopedfX_/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/orsunpay/XvMZZnN-BopedfX_/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/orsunpay/XvMZZnN-BopedfX_/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/orsunpay/XvMZZnN-BopedfX_/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/orsunpay/XvMZZnN-BopedfX_/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/orsunpay/XvMZZnN-BopedfX_/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/orsunpay/XvMZZnN-BopedfX_/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/orsunpay/XvMZZnN-BopedfX_/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Transaction status event - OrsunPay\">\u003cmeta data-mint-head property=\"og:description\" content=\"OrsunPay sends this POST to the transaction callbackUrl after a status update. Verify HMAC-SHA256 over the exact raw body before parsing, using the merchant webhook secret (ADR-010). Reject signature timestamps beyond 300 seconds; compare in constant time. Deliveries are at least once and can arrive out of order. Deduplicate by the signed body id. Secret rotation takes effect immediately (no dual signing); failed deliveries retry for approximately 31 hours. API keys are not sent with webhooks.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OrsunPay\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.orsunpay.com/api-reference/webhooks/transaction-status-event\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://orsunpay.mintlify.site/_mintlify/api/og/v2?division=Webhooks\u0026amp;title=Transaction+status+event\u0026amp;description=OrsunPay+sends+this+POST+to+the+transaction+callbackUrl+after+a+status+update.+Verify+HMAC-SHA256+over+the+exact+raw+body+before+parsing%2C+using+the+merchant+web\u0026amp;theme=29e3bf99624baacd33338dc6\u0026amp;signature=74b2465fe864fd14ee5768648f59826993914223dac6892fccdee1c43bcfe352\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Transaction status event - OrsunPay\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"OrsunPay sends this POST to the transaction callbackUrl after a status update. Verify HMAC-SHA256 over the exact raw body before parsing, using the merchant webhook secret (ADR-010). Reject signature timestamps beyond 300 seconds; compare in constant time. Deliveries are at least once and can arrive out of order. Deduplicate by the signed body id. Secret rotation takes effect immediately (no dual signing); failed deliveries retry for approximately 31 hours. API keys are not sent with webhooks.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://orsunpay.mintlify.site/_mintlify/api/og/v2?division=Webhooks\u0026amp;title=Transaction+status+event\u0026amp;description=OrsunPay+sends+this+POST+to+the+transaction+callbackUrl+after+a+status+update.+Verify+HMAC-SHA256+over+the+exact+raw+body+before+parsing%2C+using+the+merchant+web\u0026amp;theme=29e3bf99624baacd33338dc6\u0026amp;signature=74b2465fe864fd14ee5768648f59826993914223dac6892fccdee1c43bcfe352\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/orsunpay/XvMZZnN-BopedfX_/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OrsunPay\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#826300\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.orsunpay.com/api-reference/webhooks/transaction-status-event\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/webhooks/transaction-status-event.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.orsunpay.com/#organization\",\"name\":\"OrsunPay\",\"url\":\"https://docs.orsunpay.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/orsunpay/9giosiM-mO_kwig_/brand/logo-light.svg?fit=max\u0026auto=format\u0026n=9giosiM-mO_kwig_\u0026q=85\u0026s=993e4b5b338d8309f92a9295890ce0b8\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.orsunpay.com#website\",\"name\":\"OrsunPay\",\"url\":\"https://docs.orsunpay.com\",\"publisher\":{\"@id\":\"https://docs.orsunpay.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.orsunpay.com/api-reference/webhooks/transaction-status-event#webpage\",\"url\":\"https://docs.orsunpay.com/api-reference/webhooks/transaction-status-event\",\"name\":\"Transaction status event\",\"description\":\"OrsunPay sends this POST to the transaction callbackUrl after a status update. Verify HMAC-SHA256 over the exact raw body before parsing, using the merchant webhook secret (ADR-010). Reject signature timestamps beyond 300 seconds; compare in constant time. Deliveries are at least once and can arrive out of order. Deduplicate by the signed body id. Secret rotation takes effect immediately (no dual signing); failed deliveries retry for approximately 31 hours. API keys are not sent with webhooks.\",\"dateModified\":\"2026-11-06T02:29:57.365Z\",\"isPartOf\":{\"@id\":\"https://docs.orsunpay.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.orsunpay.com/api-reference/webhooks/transaction-status-event#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.orsunpay.com/api-reference/webhooks/transaction-status-event#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.orsunpay.com/api-reference/cashier-player/create-a-crypto-invoice\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Webhooks\",\"item\":\"https://docs.orsunpay.com/api-reference/webhooks/refund-failed-event\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Transaction status event\",\"item\":\"https://docs.orsunpay.com/api-reference/webhooks/transaction-status-event\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.orsunpay.com/api-reference/webhooks/transaction-status-event#apireference\",\"headline\":\"Transaction status event\",\"name\":\"Transaction status event\",\"description\":\"OrsunPay sends this POST to the transaction callbackUrl after a status update. Verify HMAC-SHA256 over the exact raw body before parsing, using the merchant webhook secret (ADR-010). Reject signature timestamps beyond 300 seconds; compare in constant time. Deliveries are at least once and can arrive out of order. Deduplicate by the signed body id. Secret rotation takes effect immediately (no dual signing); failed deliveries retry for approximately 31 hours. API keys are not sent with webhooks.\",\"url\":\"https://docs.orsunpay.com/api-reference/webhooks/transaction-status-event\",\"mainEntityOfPage\":{\"@id\":\"https://docs.orsunpay.com/api-reference/webhooks/transaction-status-event#webpage\"},\"dateModified\":\"2026-11-06T02:29:57.365Z\",\"publisher\":{\"@id\":\"https://docs.orsunpay.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.orsunpay.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OrsunPay\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"OrsunPay","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API Reference","groups":[{"group":"Using the API","pages":[{"title":"Merchant API reference","sidebarTitle":"API overview","href":"/api-overview"}]},{"group":"Endpoints","pages":[{"group":"Cashier player","pages":[{"title":"Create a crypto invoice","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cashier-ui/crypto/invoices","href":"/api-reference/cashier-player/create-a-crypto-invoice"},{"title":"Retrieve a crypto invoice","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/cashier-ui/crypto/invoices/{id}","href":"/api-reference/cashier-player/retrieve-a-crypto-invoice"},{"title":"Quote a crypto deposit","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cashier-ui/crypto/quote","href":"/api-reference/cashier-player/quote-a-crypto-deposit"},{"title":"List eligible deposit methods","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/cashier-ui/methods","href":"/api-reference/cashier-player/list-eligible-deposit-methods"},{"title":"List cashier operations","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/cashier-ui/operations","href":"/api-reference/cashier-player/list-cashier-operations"},{"title":"Submit a deposit","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cashier-ui/operations","href":"/api-reference/cashier-player/submit-a-deposit"},{"title":"Retrieve a cashier operation","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/cashier-ui/operations/{id}","href":"/api-reference/cashier-player/retrieve-a-cashier-operation"},{"title":"Quote a deposit","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cashier-ui/quote","href":"/api-reference/cashier-player/quote-a-deposit"},{"title":"Refresh cashier authorization","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cashier-ui/reauthorize","href":"/api-reference/cashier-player/refresh-cashier-authorization"},{"title":"Read the authenticated player cashier and its currency","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/cashier-ui/session","href":"/api-reference/cashier-player/read-the-authenticated-player-cashier-and-its-currency"},{"title":"Read the immutable presentation pinned when the player session was created","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/cashier-ui/template","href":"/api-reference/cashier-player/read-the-immutable-presentation-pinned-when-the-player-session-was-created"},{"title":"List withdrawals","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/cashier-ui/withdrawals","href":"/api-reference/cashier-player/list-withdrawals"},{"title":"Request a withdrawal","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cashier-ui/withdrawals","href":"/api-reference/cashier-player/request-a-withdrawal"},{"title":"List eligible withdrawal methods","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/cashier-ui/withdrawals/choices","href":"/api-reference/cashier-player/list-eligible-withdrawal-methods"},{"title":"Quote a withdrawal","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cashier-ui/withdrawals/quote","href":"/api-reference/cashier-player/quote-a-withdrawal"},{"title":"Retrieve a withdrawal","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/cashier-ui/withdrawals/{id}","href":"/api-reference/cashier-player/retrieve-a-withdrawal"},{"title":"Cancel a withdrawal","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cashier-ui/withdrawals/{id}/cancel","href":"/api-reference/cashier-player/cancel-a-withdrawal"},{"title":"Reconcile a withdrawal reservation","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cashier-ui/withdrawals/{id}/reconcile-reserve","href":"/api-reference/cashier-player/reconcile-a-withdrawal-reservation"}]},{"group":"Cashier embedding policy","pages":[{"title":"Read the stored merchant frame origin; does not authorize a session","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/cashier-ui/frame-policy/{id}","href":"/api-reference/cashier-embedding-policy/read-the-stored-merchant-frame-origin;-does-not-authorize-a-session"}]},{"group":"Cashier sessions (merchant S2S)","pages":[{"title":"Authorize a player cashier from the merchant backend","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cashier/sessions","href":"/api-reference/cashier-sessions-merchant-s2s/authorize-a-player-cashier-from-the-merchant-backend"},{"title":"Renew player access for the same bound instance","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cashier/sessions/{id}/access-grants","href":"/api-reference/cashier-sessions-merchant-s2s/renew-player-access-for-the-same-bound-instance"},{"title":"Revoke this player cashier immediately","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cashier/sessions/{id}/revoke","href":"/api-reference/cashier-sessions-merchant-s2s/revoke-this-player-cashier-immediately"},{"title":"Acknowledge a wallet effect","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cashier/wallet/receipts","href":"/api-reference/cashier-sessions-merchant-s2s/acknowledge-a-wallet-effect"}]},{"group":"Payments","pages":[{"title":"List payments or find by order ID","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/payment","href":"/api-reference/payments/list-payments-or-find-by-order-id"},{"title":"Create withdrawal transaction (Payout)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/payment/payout","href":"/api-reference/payments/create-withdrawal-transaction-payout"},{"title":"Create deposit transaction (Sale)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/payment/sale","href":"/api-reference/payments/create-deposit-transaction-sale"},{"title":"Get a payment by ID","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/payment/{id}","href":"/api-reference/payments/get-a-payment-by-id"}]},{"group":"Payment links","pages":[{"title":"List the authenticated merchant’s links, newest first","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/payment-links","href":"/api-reference/payment-links/list-the-authenticated-merchant’s-links-newest-first"},{"title":"Create a merchant-scoped payment link","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/payment-links","href":"/api-reference/payment-links/create-a-merchant-scoped-payment-link"},{"title":"Get a link owned by the authenticated merchant","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/payment-links/{id}","href":"/api-reference/payment-links/get-a-link-owned-by-the-authenticated-merchant"},{"title":"Permanently deactivate a link; repeated requests are safe","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/payment-links/{id}/deactivate","href":"/api-reference/payment-links/permanently-deactivate-a-link;-repeated-requests-are-safe"}]},{"group":"Refunds","pages":[{"title":"List refunds for a payment","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/payment/{id}/refunds","href":"/api-reference/refunds/list-refunds-for-a-payment"},{"title":"Request a full or partial refund","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/payment/{id}/refunds","href":"/api-reference/refunds/request-a-full-or-partial-refund"},{"title":"Get a refund","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/refunds/{id}","href":"/api-reference/refunds/get-a-refund"}]},{"group":"Transactions","pages":[{"title":"Poll a merchant transaction","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/transactions/{id}","href":"/api-reference/transactions/poll-a-merchant-transaction"}]},{"group":"Usage billing","pages":[{"title":"Record a usage event","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/usage-billing/events","href":"/api-reference/usage-billing/record-a-usage-event"},{"title":"List usage invoices","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/usage-billing/invoices","href":"/api-reference/usage-billing/list-usage-invoices"},{"title":"List usage plans","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/usage-billing/plans","href":"/api-reference/usage-billing/list-usage-plans"},{"title":"Create a usage plan","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/usage-billing/plans","href":"/api-reference/usage-billing/create-a-usage-plan"},{"title":"List usage subscriptions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/usage-billing/subscriptions","href":"/api-reference/usage-billing/list-usage-subscriptions"},{"title":"Create a usage subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/usage-billing/subscriptions","href":"/api-reference/usage-billing/create-a-usage-subscription"},{"title":"Get a usage subscription","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/usage-billing/subscriptions/{id}","href":"/api-reference/usage-billing/get-a-usage-subscription"},{"title":"confirmAutoRenew for a usage subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/usage-billing/subscriptions/{id}/auto-renew/confirm","href":"/api-reference/usage-billing/confirmautorenew-for-a-usage-subscription"},{"title":"disableAutoRenew for a usage subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/usage-billing/subscriptions/{id}/auto-renew/disable","href":"/api-reference/usage-billing/disableautorenew-for-a-usage-subscription"},{"title":"setupAutoRenew for a usage subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/usage-billing/subscriptions/{id}/auto-renew/setup","href":"/api-reference/usage-billing/setupautorenew-for-a-usage-subscription"},{"title":"Cancel a usage subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/usage-billing/subscriptions/{id}/cancel","href":"/api-reference/usage-billing/cancel-a-usage-subscription"},{"title":"notifications for a usage subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/usage-billing/subscriptions/{id}/notifications","href":"/api-reference/usage-billing/notifications-for-a-usage-subscription"},{"title":"paymentHistory for a usage subscription","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/usage-billing/subscriptions/{id}/payments/history","href":"/api-reference/usage-billing/paymenthistory-for-a-usage-subscription"},{"title":"recoverPayment for a usage subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/usage-billing/subscriptions/{id}/payments/recover","href":"/api-reference/usage-billing/recoverpayment-for-a-usage-subscription"},{"title":"Reconcile a usage subscription","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/usage-billing/subscriptions/{id}/sync","href":"/api-reference/usage-billing/reconcile-a-usage-subscription"}]},{"group":"Webhooks","pages":[{"title":"Refund failed event","version":null,"deprecated":null,"openapi":"/openapi.json webhook refundFailed","href":"/api-reference/webhooks/refund-failed-event"},{"title":"Refund succeeded event","description":"Terminal refund event sent to the original sale callbackUrl, falling back to the merchant default webhook URL. Verify HMAC-SHA256 over the exact raw body before parsing, using the merchant webhook secret (ADR-010). Reject signature timestamps beyond 300 seconds; compare in constant time. Deliveries are at least once and can arrive out of order. Deduplicate by the signed body id. Secret rotation takes effect immediately (no dual signing); failed deliveries retry for approximately 31 hours. API keys are not sent with webhooks. The refund and transaction snapshot stays byte-identical across retries/redrives; retain the maximum cumulative refundedAmount using decimal arithmetic.","version":null,"deprecated":null,"openapi":"/openapi.json webhook refundSucceeded","href":"/api-reference/webhooks/refund-succeeded-event"},{"title":"Transaction status event","version":null,"deprecated":null,"openapi":"/openapi.json webhook transactionUpdated","href":"/api-reference/webhooks/transaction-status-event"}]}]}]},{"tab":"Payment methods","pages":[{"title":"Payment methods","href":"/payment-methods"}]},{"tab":"Workspaces","pages":[{"title":"Workspaces","href":"/merchant-cabinet"}]}]},"basePath":"","title":"Transaction status event - OrsunPay","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-5FCzAcfS.js","utils-SLtAG4EZ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-2DZi8ZMu.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D7J3nkzE.js","snippetPresets-D0Alv0AH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BI4qNJ2c.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BD3uyr8j.js","shallow-D8iEBr5z.js","getApiPlaygroundDisplay-CgNP4lzR.js","CodeSnippet-CX-QHuMs.js","CodeSnippets-VlXE-ZUf.js","Page-D9ithiIZ.js","getPastedJson-DYNQkZ1M.js","icon-CzacdwOi.js","MethodPill-2JVqoYKi.js","DuplicateIcon-_xVXs-U8.js","createIcon-BRHrweLo.js","DynamicMarkdown-mQG_iQiE.js","SectionHeading-DMpJzv8f.js","axios-vUo_bRtp.js","Markdown-5FGIym-8.js","clsx-D-TRO5q5.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CdrJecqK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CHlcWBLM.js"]}