Virtual Account application webhooks are available for subscriptions using version V1.5.1, V1.5.2, or V1.6.0.Each event represents the whole application. source_id equals data.application_id, and data contains the latest application details after the event. Events are not sent separately for each receiving method or bank-detail record.Use data.account_id to identify the account that owns the application. When this is a connected account, data.direct_id identifies its main account; when it is the main account, data.direct_id is "0".
virtual.account.create means the application was accepted for processing. It does not mean approval is complete or bank details are ready. Use only bank-detail records whose status is ACTIVE.
A new application is accepted. Its public_version starts at 1.
Store the application and continue tracking any SUBMITTED result.
virtual.account.update
Returned application data changes and the application is not fully closed.
Apply the event only when public_version is higher than the version you stored, then process every result.
virtual.account.closed
All issued Virtual Accounts are closed and no result remains in progress.
Apply the CLOSED application and stop using all related bank details.
The Create response and virtual.account.create webhook can arrive in either order. Do not make one wait for the other.An update can report a skipped or failed method, newly issued bank details, partial completion, final completion, or the closure of an individual bank-detail record. If two methods complete in one change, one final update is sent. If they complete at different times, a partial update is followed by a final update.When an issued bank-detail record closes, use its status immediately. close_reason can still be empty for a closed record.
Verify x-wk-signature from the raw request body and x-wk-timestamp. See Signature verification.
Deduplicate deliveries by event_id. Retries of the same event reuse this value.
Route the event to the account identified by data.account_id, using data.direct_id to identify its main account when applicable.
Locate the application by data.application_id.
Apply the event only when data.public_version is higher than the version already stored for that application.
Process every entry in data.results[] and identify it by payment_method.
Retrieve the latest application after a delivery gap or suspected out-of-order event.
Always treat a higher public_version as newer, even if the application previously reached FAILED.See Integrate Virtual Accounts with the API for status meanings, error actions, and bank-detail availability rules.
Latest application data after this event. Use application_id and public_version to apply events in order.
Show child attributes
Response
200
Return 200 to acknowledge receipt.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"UQPAY Developer Docs","colors":{"primary":"#1A56DB","light":"#3B82F6","dark":"#1E40AF"},"logo":{"light":"https://mintcdn.com/uqpay-ecc4f4d8/-ww49FTUjAmlhKN6/images/logo-light.png?fit=max\u0026auto=format\u0026n=-ww49FTUjAmlhKN6\u0026q=85\u0026s=f7d617f71b284158f3d0d2a8e2872806","dark":"https://mintcdn.com/uqpay-ecc4f4d8/-ww49FTUjAmlhKN6/images/logo-dark.png?fit=max\u0026auto=format\u0026n=-ww49FTUjAmlhKN6\u0026q=85\u0026s=3fd4b4156eb5c214e01f731ef3f34eb3","href":"/"},"favicon":"https://mintcdn.com/uqpay-ecc4f4d8/LSVZGfPa5IJvbfLG/images/favicon.png?fit=max\u0026auto=format\u0026n=LSVZGfPa5IJvbfLG\u0026q=85\u0026s=b827dc48353a177e8a524fd888b06f90","contextual":{"options":["cursor","vscode","mcp","add-mcp"],"display":"header"},"variables":{"sdk-release-line":"3.1","sdk-node-current":"3.1.0","sdk-python-current":"3.1.0","sdk-go-current":"3.1.0","sdk-java-current":"3.1.0","sdk-cli-current":"3.1.0"},"styling":{"latex":true},"navigation":{"languages":[{"language":"en","default":true,"navbar":{"links":[{"href":"/changelog","label":"Changelog"}]},"href":"account-center/v1.6/guide/overview"},{"language":"zh","navbar":{"links":[{"href":"/zh/changelog","label":"更新日志"}]},"href":"zh/account-center/v1.6/guide/overview"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"uqpay-ecc4f4d8","hasAudioNarration":false,"actualSubdomain":"uqpay-ecc4f4d8","customDomains":["developers-sandbox.uqpaytech.com"],"gitSource":{"type":"github","owner":"marshall-uq","repo":"uqpay-developer-docs","deployBranch":"sandbox","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ab7d43e1f314e367e7a139f","collectionId":"cda03377-3e47-4f38-a089-845d2586e57c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ab7d43e1f314e367e7a139f"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ab7d43e1f314e367e7a139f","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"en","tag":"API Reference","count":136},{"language":"zh","tag":"API 参考","count":136},{"language":"en","tag":"Guide","count":93},{"language":"zh","tag":"指南","count":93},{"language":"en","tag":"Card Issuance","count":78},{"language":"zh","tag":"Card Issuance","count":78},{"language":"en","tag":"Stablecoin Account","count":70},{"language":"zh","tag":"Stablecoin Account","count":66},{"language":"en","tag":"Global Account","count":52},{"language":"zh","tag":"Global Account","count":52},{"language":"en","tag":"AI Knowledge Base","count":47},{"language":"en","tag":"Global Acquiring","count":47},{"language":"zh","tag":"AI 知识库","count":47},{"language":"zh","tag":"Global Acquiring","count":47},{"language":"en","tag":"Webhooks","count":40},{"language":"zh","tag":"Webhooks","count":40},{"language":"en","tag":"Account Center","count":37},{"language":"en","tag":"Card Issuance API","count":37},{"language":"zh","tag":"Account Center","count":37},{"language":"zh","tag":"Card Issuance API","count":37}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"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}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"#assistant-entry,#assistant-entry-mobile,#chat-assistant-sheet{display:none!important}[data-component-part=products-selector-item]:has(svg[style*=sparkles]),[data-component-part=products-selector-trigger]:has(svg[style*=sparkles]){display:none!important}.landing-page{margin:-1.5rem -1.5rem 0}.landing-hero{padding:5rem 1.5rem 4rem;position:relative;border-bottom:1px solid #e5e7eb}.landing-badge{display:inline-block;padding:.3rem .85rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:100px;color:#1d4ed8;font-size:.8rem;font-weight:500;letter-spacing:.01em;margin-bottom:1.5rem}.landing-quickstart{margin-top:-2rem;position:relative;z-index:10;padding-bottom:1rem}.landing-steps-container{background:#fff;border-radius:1rem;box-shadow:0 4px 24px rgba(0,0,0,.06),0 1px 3px rgba(0,0,0,.03);border:1px solid #e5e7eb;overflow:hidden}.landing-step{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;text-decoration:none;transition:background .15s ease;border-right:1px solid #f0f0f0}.landing-step:last-child{border-right:none}.landing-step:hover{background:#f8fafc;text-decoration:none}.landing-step-number{display:flex;align-items:center;justify-content:center;min-width:2.25rem;height:2.25rem;background:#1a56db;color:#fff;font-weight:700;font-size:.85rem;border-radius:.5rem}.landing-step-title{display:block;font-weight:600;font-size:.9rem;color:#111827}.landing-step-desc{display:block;font-size:.8rem;color:#6b7280;margin-top:.1rem}.landing-devtools{background:#f8fafc;border-radius:1.5rem;margin:0 1rem 2rem}.landing-page [class*=Card]{transition:transform .2s ease,box-shadow .2s ease}.landing-page [class*=Card]:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.06)}.dark .landing-hero{border-bottom-color:#1f2937}.dark .landing-badge{background:rgba(29,78,216,.15);border-color:rgba(59,130,246,.3);color:#60a5fa}.dark .landing-steps-container{background:#1f2937;border-color:#374151;box-shadow:0 4px 24px rgba(0,0,0,.3)}.dark .landing-step{border-right-color:#374151}.dark .landing-step:hover{background:#263244}.dark .landing-step-number{background:#2563eb}.dark .landing-step-title{color:#f3f4f6}.dark .landing-step-desc{color:#9ca3af}.dark .landing-devtools{background:#111827}@media (max-width:768px){.landing-step{border-right:none;border-bottom:1px solid #f0f0f0}.landing-step:last-child{border-bottom:none}.dark .landing-step{border-bottom-color:#374151}}@media (min-width:900px){#error-code-table{width:100%!important;min-width:0!important;table-layout:fixed}#error-code-table td,#error-code-table th{min-width:0!important;padding-left:.75rem;padding-right:.75rem;vertical-align:top;overflow-wrap:anywhere}#error-code-table th:nth-child(1){width:20%}#error-code-table th:nth-child(2){width:28%}#error-code-table th:nth-child(3){width:23%}#error-code-table th:nth-child(4){width:29%}#error-code-table code.mint-whitespace-nowrap,#error-code-table code.whitespace-nowrap{display:inline-block;max-width:100%;white-space:normal!important;overflow-wrap:anywhere;word-break:break-word}}"}],"page":{"pagePath":"global-account/v1.6/webhooks/virtual-account-create-update","slug":"/global-account/v1.6/webhooks/virtual-account-create-update","pageMetadata":{"title":"Virtual Account Application Webhooks","description":"Receive application acceptance, update, and closure events safely.","openapi":"webhooks-banking.yaml webhook virtualAccountCreateUpdate","href":"/global-account/v1.6/webhooks/virtual-account-create-update"},"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: \"Receive application acceptance, update, and closure events safely.\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Table,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Virtual Account application webhooks are available for subscriptions using version `,_jsx(_components.code,{children:`V1.5.1`}),`, `,_jsx(_components.code,{children:`V1.5.2`}),`, or `,_jsx(_components.code,{children:`V1.6.0`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Each event represents the whole application. `,_jsx(_components.code,{children:`source_id`}),` equals `,_jsx(_components.code,{children:`data.application_id`}),`, and `,_jsx(_components.code,{children:`data`}),` contains the latest application details after the event. Events are not sent separately for each receiving method or bank-detail record.`]}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`data.account_id`}),` to identify the account that owns the application. When this is a connected account, `,_jsx(_components.code,{children:`data.direct_id`}),` identifies its main account; when it is the main account, `,_jsx(_components.code,{children:`data.direct_id`}),` is `,_jsx(_components.code,{children:`\"0\"`}),`.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`virtual.account.create`}),` means the application was accepted for processing. It does not mean approval is complete or bank details are ready. Use only bank-detail records whose status is `,_jsx(_components.code,{children:`ACTIVE`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`when-events-are-sent`,children:`When events are sent`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Event type`}),_jsx(_components.th,{children:`When it is sent`}),_jsx(_components.th,{children:`What to do`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`virtual.account.create`})}),_jsxs(_components.td,{children:[`A new application is accepted. Its `,_jsx(_components.code,{children:`public_version`}),` starts at `,_jsx(_components.code,{children:`1`}),`.`]}),_jsxs(_components.td,{children:[`Store the application and continue tracking any `,_jsx(_components.code,{children:`SUBMITTED`}),` result.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`virtual.account.update`})}),_jsx(_components.td,{children:`Returned application data changes and the application is not fully closed.`}),_jsxs(_components.td,{children:[`Apply the event only when `,_jsx(_components.code,{children:`public_version`}),` is higher than the version you stored, then process every result.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`virtual.account.closed`})}),_jsx(_components.td,{children:`All issued Virtual Accounts are closed and no result remains in progress.`}),_jsxs(_components.td,{children:[`Apply the `,_jsx(_components.code,{children:`CLOSED`}),` application and stop using all related bank details.`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`The Create response and `,_jsx(_components.code,{children:`virtual.account.create`}),` webhook can arrive in either order. Do not make one wait for the other.`]}),`\n`,_jsx(_components.p,{children:`An update can report a skipped or failed method, newly issued bank details, partial completion, final completion, or the closure of an individual bank-detail record. If two methods complete in one change, one final update is sent. If they complete at different times, a partial update is followed by a final update.`}),`\n`,_jsxs(_components.p,{children:[`When an issued bank-detail record closes, use its `,_jsx(_components.code,{children:`status`}),` immediately. `,_jsx(_components.code,{children:`close_reason`}),` can still be empty for a closed record.`]}),`\n`,_jsx(Heading,{level:`2`,id:`when-events-are-not-sent`,children:`When events are not sent`}),`\n`,_jsx(_components.p,{children:`No application webhook is sent when:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Create returns a synchronous `,_jsx(_components.code,{children:`4xx`}),`.`]}),`\n`,_jsx(_components.li,{children:`Every evaluated receiving method is rejected and no application is created.`}),`\n`,_jsxs(_components.li,{children:[`An identical request is replayed with the same `,_jsx(_components.code,{children:`x-idempotency-key`}),`.`]}),`\n`,_jsx(_components.li,{children:`Processing continues but the returned application data has not changed.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`If you need the latest data while no event is expected, call `,_jsx(_components.a,{href:`/global-account/v1.6/api-reference/retrieve-virtual-account-application`,children:`Retrieve Virtual Account Application`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`process-events-safely`,children:`Process events safely`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Verify `,_jsx(_components.code,{children:`x-wk-signature`}),` from the raw request body and `,_jsx(_components.code,{children:`x-wk-timestamp`}),`. See `,_jsx(_components.a,{href:`/account-center/v1.6/guide/webhooks-overview#signature-verification`,children:`Signature verification`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Deduplicate deliveries by `,_jsx(_components.code,{children:`event_id`}),`. Retries of the same event reuse this value.`]}),`\n`,_jsxs(_components.li,{children:[`Route the event to the account identified by `,_jsx(_components.code,{children:`data.account_id`}),`, using `,_jsx(_components.code,{children:`data.direct_id`}),` to identify its main account when applicable.`]}),`\n`,_jsxs(_components.li,{children:[`Locate the application by `,_jsx(_components.code,{children:`data.application_id`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Apply the event only when `,_jsx(_components.code,{children:`data.public_version`}),` is higher than the version already stored for that application.`]}),`\n`,_jsxs(_components.li,{children:[`Process every entry in `,_jsx(_components.code,{children:`data.results[]`}),` and identify it by `,_jsx(_components.code,{children:`payment_method`}),`.`]}),`\n`,_jsx(_components.li,{children:`Retrieve the latest application after a delivery gap or suspected out-of-order event.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Always treat a higher `,_jsx(_components.code,{children:`public_version`}),` as newer, even if the application previously reached `,_jsx(_components.code,{children:`FAILED`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/global-account/v1.6/guide/virtual-account-api-lifecycle`,children:`Integrate Virtual Accounts with the API`}),` for status meanings, error actions, and bank-detail availability rules.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Virtual Account Application Webhooks","description":"Receive application acceptance, update, and closure events safely.","openapi":"webhooks-banking.yaml webhook virtualAccountCreateUpdate","href":"/global-account/v1.6/webhooks/virtual-account-create-update"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"When events are sent","slug":"when-events-are-sent","depth":2,"children":[]},{"title":"When events are not sent","slug":"when-events-are-not-sent","depth":2,"children":[]},{"title":"Process events safely","slug":"process-events-safely","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/uqpay-ecc4f4d8/77dcf16d44608ed8/error-code-table.js"],"openApiReferenceData":{"operation":{"summary":"Virtual Account Application Webhooks","operationId":"virtual-account-create-update-webhook","description":"Receive application acceptance, update, and closure events safely.","x-mint":{"href":"/global-account/v1.6/webhooks/virtual-account-create-update"},"requestBody":"394d7898-5fe3-4dd0-ae0b-116ae529bcab","responses":{"200":"b5a5a118-38f1-4ea7-bf32-73f6ecc54b60"},"method":"post","type":"webhook","servers":[],"security":[],"path":"virtualAccountCreateUpdate","baseUrlOptions":[],"title":"Virtual Account Application Webhooks","codeSamples":[],"requiredOnlyExamples":false,"requestExamples":[{"language":"json","filename":"created","code":"{\n \"version\": \"V1.6.0\",\n \"event_name\": \"VIRTUAL\",\n \"event_type\": \"virtual.account.create\",\n \"event_id\": \"550e8400-e29b-41d4-a716-446655440101\",\n \"source_id\": \"550e8400-e29b-41d4-a716-446655440001\",\n \"data\": {\n \"account_id\": \"b1b89684-c2c4-4d54-b8a8-3572727fd120\",\n \"application_id\": \"550e8400-e29b-41d4-a716-446655440001\",\n \"country\": \"BH\",\n \"currency\": \"EUR\",\n \"direct_id\": \"0\",\n \"public_version\": 1,\n \"results\": [\n {\n \"payment_method\": \"SWIFT\",\n \"status\": \"SUBMITTED\",\n \"virtual_accounts\": [],\n \"error\": null\n }\n ],\n \"status\": \"SUBMITTED\"\n }\n}"},{"language":"json","filename":"provisioningFailed","code":"{\n \"version\": \"V1.6.0\",\n \"event_name\": \"VIRTUAL\",\n \"event_type\": \"virtual.account.update\",\n \"event_id\": \"7c9e6679-7425-40de-944b-e07fc1f90ae7\",\n \"source_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"data\": {\n \"account_id\": \"b1b89684-c2c4-4d54-b8a8-3572727fd120\",\n \"application_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"country\": \"BH\",\n \"currency\": \"USD\",\n \"direct_id\": \"0\",\n \"public_version\": 2,\n \"results\": [\n {\n \"payment_method\": \"SWIFT\",\n \"status\": \"FAILED\",\n \"virtual_accounts\": [],\n \"error\": {\n \"code\": \"VA_PROVISIONING_FAILED\",\n \"message\": \"Virtual account provisioning failed\"\n }\n }\n ],\n \"status\": \"FAILED\"\n }\n}"},{"language":"json","filename":"completed","code":"{\n \"version\": \"V1.6.0\",\n \"event_name\": \"VIRTUAL\",\n \"event_type\": \"virtual.account.update\",\n \"event_id\": \"9b63b777-2a86-4ec8-b91e-64fc3818c13e\",\n \"source_id\": \"7bd8df2d-4975-4c1a-a956-66af2a6dbed8\",\n \"data\": {\n \"account_id\": \"b1b89684-c2c4-4d54-b8a8-3572727fd120\",\n \"application_id\": \"7bd8df2d-4975-4c1a-a956-66af2a6dbed8\",\n \"country\": \"BH\",\n \"currency\": \"GBP\",\n \"direct_id\": \"0\",\n \"public_version\": 2,\n \"results\": [\n {\n \"payment_method\": \"SWIFT\",\n \"status\": \"COMPLETED\",\n \"virtual_accounts\": [\n {\n \"account_bank_id\": \"va-bank-detail-001\",\n \"account_holder\": \"Example Merchant Ltd.\",\n \"account_number\": \"BH00SGBD00000000000000\",\n \"country_code\": \"BH\",\n \"currency\": \"GBP\",\n \"bank_name\": \"Singapore Gulf Bank\",\n \"bank_address\": \"Manama, Bahrain\",\n \"clearing_system\": {\n \"type\": \"bic_swift\",\n \"value\": \"SGBDBHB2XXX\"\n },\n \"status\": \"ACTIVE\",\n \"close_reason\": \"\"\n }\n ],\n \"error\": null\n }\n ],\n \"status\": \"COMPLETED\"\n }\n}"},{"language":"json","filename":"closed","code":"{\n \"version\": \"V1.6.0\",\n \"event_name\": \"VIRTUAL\",\n \"event_type\": \"virtual.account.closed\",\n \"event_id\": \"6c6ca4e9-a6a7-4572-9a2a-b4e054d852b1\",\n \"source_id\": \"8f05cb15-b3ea-4c8f-b10d-4376e6355037\",\n \"data\": {\n \"account_id\": \"b1b89684-c2c4-4d54-b8a8-3572727fd120\",\n \"application_id\": \"8f05cb15-b3ea-4c8f-b10d-4376e6355037\",\n \"country\": \"BH\",\n \"currency\": \"GBP\",\n \"direct_id\": \"0\",\n \"public_version\": 3,\n \"results\": [\n {\n \"payment_method\": \"SWIFT\",\n \"status\": \"CLOSED\",\n \"virtual_accounts\": [\n {\n \"account_bank_id\": \"va-bank-detail-001\",\n \"account_holder\": \"Example Merchant Ltd.\",\n \"account_number\": \"BH00SGBD00000000000000\",\n \"country_code\": \"BH\",\n \"currency\": \"GBP\",\n \"bank_name\": \"Singapore Gulf Bank\",\n \"bank_address\": \"Manama, Bahrain\",\n \"clearing_system\": {\n \"type\": \"bic_swift\",\n \"value\": \"SGBDBHB2XXX\"\n },\n \"status\": \"CLOSED\",\n \"close_reason\": \"\"\n }\n ],\n \"error\": null\n }\n ],\n \"status\": \"CLOSED\"\n }\n}"}],"requestExampleType":"webhook","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["data","event_id","event_name","event_type","source_id","version"],"properties":{"event_id":{"type":"string","format":"uuid","description":"A unique identifier for this event.","isRequired":true,"uniqueKey":"event_id","typeLabel":"string\u003cuuid>"},"event_name":{"type":"string","description":"Top-level event category.","enum":["VIRTUAL"],"isRequired":true,"uniqueKey":"event_name","typeLabel":"enum\u003cstring>"},"event_type":{"type":"string","description":"The specific event type that occurred.","enum":["virtual.account.create","virtual.account.update","virtual.account.closed"],"isRequired":true,"uniqueKey":"event_type","typeLabel":"enum\u003cstring>"},"source_id":{"type":"string","description":"Virtual Account application ID.","isRequired":true,"uniqueKey":"source_id","typeLabel":"string"},"version":{"type":"string","description":"API version number.","examples":["V1.6.0"],"isRequired":true,"uniqueKey":"version","typeLabel":"string"},"data":{"type":"object","description":"Latest application data after this event. Use `application_id` and `public_version` to apply events in order.","required":["account_id","application_id","country","currency","direct_id","public_version","results","status"],"properties":{"account_id":{"type":"string","format":"uuid","description":"Account that owns the application. When `x-on-behalf-of` was used, this is that connected account; otherwise it is the main account.","isRequired":true,"uniqueKey":"data.account_id","typeLabel":"string\u003cuuid>"},"application_id":{"type":"string","format":"uuid","description":"Identifier shared by Create, Retrieve, and these webhook events.","isRequired":true,"uniqueKey":"data.application_id","typeLabel":"string\u003cuuid>"},"country":{"type":"string","description":"Two-letter country code submitted in the Create request.","isRequired":true,"uniqueKey":"data.country","typeLabel":"string"},"currency":{"type":"string","description":"Three-letter currency code submitted in the Create request.","isRequired":true,"uniqueKey":"data.currency","typeLabel":"string"},"direct_id":{"type":"string","description":"Main-account relationship for `account_id`. It is `\"0\"` when `account_id` is the main account; otherwise it is the main account ID.","isRequired":true,"uniqueKey":"data.direct_id","typeLabel":"string"},"public_version":{"type":"integer","format":"int64","minimum":1,"description":"Version of the returned application data. It starts at `1` and increases when the returned data changes. Keep the highest version received for this application.","isRequired":true,"uniqueKey":"data.public_version","typeLabel":"integer\u003cint64>"},"results":{"type":"array","minItems":1,"maxItems":2,"description":"One entry for each evaluated receiving method. Process every entry independently and identify it by `payment_method`. When both methods are present, `LOCAL` appears before `SWIFT`.","items":{"type":"object","additionalProperties":false,"required":["payment_method","status","virtual_accounts","error"],"properties":{"payment_method":{"type":"string","enum":["LOCAL","SWIFT"],"description":"Receiving rail represented by this result. `LOCAL` uses a supported domestic clearing network; `SWIFT` uses the SWIFT network.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].payment_method","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["SUBMITTED","COMPLETED","FAILED","SKIPPED","CLOSED"],"description":"Status of this receiving method. Use bank details only when this value is `COMPLETED` and the individual bank-detail status is `ACTIVE`.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"virtual_accounts":{"type":"array","description":"Issued bank details for this receiving method. An empty array means there are no issued details for this result. Use only records whose `status` is `ACTIVE`.","items":{"type":"object","additionalProperties":false,"required":["account_bank_id","account_holder","account_number","country_code","currency","bank_name","bank_address","clearing_system","status","close_reason"],"properties":{"account_bank_id":{"type":"string","description":"Stable identifier for this issued bank-detail record. Treat the value as an opaque string and store it to correlate later changes.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].virtual_accounts.items.[INDEX].account_bank_id","typeLabel":"string"},"account_holder":{"type":"string","description":"Account holder name to show to the payer exactly as returned.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].virtual_accounts.items.[INDEX].account_holder","typeLabel":"string"},"account_number":{"type":"string","description":"Account number or IBAN the payer must use. Preserve formatting and leading zeros.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].virtual_accounts.items.[INDEX].account_number","typeLabel":"string"},"country_code":{"type":"string","description":"Two-letter country code of this issued bank account.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].virtual_accounts.items.[INDEX].country_code","typeLabel":"string"},"currency":{"type":"string","description":"Three-letter currency code this bank detail can receive.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].virtual_accounts.items.[INDEX].currency","typeLabel":"string"},"bank_name":{"type":"string","description":"Bank name to include in payment instructions.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].virtual_accounts.items.[INDEX].bank_name","typeLabel":"string"},"bank_address":{"type":"string","description":"Bank address to include when required by the payer's transfer form.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].virtual_accounts.items.[INDEX].bank_address","typeLabel":"string"},"clearing_system":{"type":"object","additionalProperties":false,"required":["type","value"],"description":"Routing identifier for this bank detail. Use `type` and `value` together and preserve both exactly as returned.","properties":{"type":{"type":"string","description":"Format or network of the routing identifier, such as `bic_swift`.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].virtual_accounts.items.[INDEX].clearing_system.type","typeLabel":"string"},"value":{"type":"string","description":"Routing identifier corresponding to `type`, such as a BIC/SWIFT code or local clearing code.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].virtual_accounts.items.[INDEX].clearing_system.value","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.results.items.[INDEX].virtual_accounts.items.[INDEX].clearing_system","typeLabel":"object"},"status":{"type":"string","enum":["ACTIVE","CLOSED"],"description":"`ACTIVE` can be used for new payment instructions; `CLOSED` must no longer be presented or used.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].virtual_accounts.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"close_reason":{"type":"string","description":"Always-present string. It is always `\"\"` unless `status` is `CLOSED`. When closed, it contains the recorded closure reason if one is available; otherwise it remains `\"\"`. Use `status`, not this field, to determine whether the bank detail is closed.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].virtual_accounts.items.[INDEX].close_reason","typeLabel":"string"}},"uniqueKey":"data.results.items.[INDEX].virtual_accounts.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.results.items.[INDEX].virtual_accounts","typeLabel":"object[]"},"error":{"oneOf":[{"type":"object","description":"Error for this receiving method when it is skipped or fails; otherwise `null`. Use `code` for programmatic handling.","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable code for programmatic handling. See the integration guide for supported codes and recommended actions.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].error.oneOf.0.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable explanation for troubleshooting. Do not use this text as a programmatic identifier.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].error.oneOf.0.message","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"data.results.items.[INDEX].error.oneOf.0","typeLabel":"object"},{"type":"null","description":"Error for this receiving method when it is skipped or fails; otherwise `null`. Use `code` for programmatic handling.","isRequired":true,"uniqueKey":"data.results.items.[INDEX].error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.results.items.[INDEX].error","typeLabel":"object | null"}},"uniqueKey":"data.results.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.results","typeLabel":"object[]"},"status":{"type":"string","description":"Overall application status. Read every result and bank-detail status before deciding what is usable.","enum":["SUBMITTED","PARTIALLY_COMPLETED","COMPLETED","FAILED","CLOSED"],"isRequired":true,"uniqueKey":"data.status","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"created":{"title":"created","value":{"version":"V1.6.0","event_name":"VIRTUAL","event_type":"virtual.account.create","event_id":"550e8400-e29b-41d4-a716-446655440101","source_id":"550e8400-e29b-41d4-a716-446655440001","data":{"account_id":"b1b89684-c2c4-4d54-b8a8-3572727fd120","application_id":"550e8400-e29b-41d4-a716-446655440001","country":"BH","currency":"EUR","direct_id":"0","public_version":1,"results":[{"payment_method":"SWIFT","status":"SUBMITTED","virtual_accounts":[],"error":null}],"status":"SUBMITTED"}}},"provisioningFailed":{"title":"provisioningFailed","value":{"version":"V1.6.0","event_name":"VIRTUAL","event_type":"virtual.account.update","event_id":"7c9e6679-7425-40de-944b-e07fc1f90ae7","source_id":"550e8400-e29b-41d4-a716-446655440000","data":{"account_id":"b1b89684-c2c4-4d54-b8a8-3572727fd120","application_id":"550e8400-e29b-41d4-a716-446655440000","country":"BH","currency":"USD","direct_id":"0","public_version":2,"results":[{"payment_method":"SWIFT","status":"FAILED","virtual_accounts":[],"error":{"code":"VA_PROVISIONING_FAILED","message":"Virtual account provisioning failed"}}],"status":"FAILED"}}},"completed":{"title":"completed","value":{"version":"V1.6.0","event_name":"VIRTUAL","event_type":"virtual.account.update","event_id":"9b63b777-2a86-4ec8-b91e-64fc3818c13e","source_id":"7bd8df2d-4975-4c1a-a956-66af2a6dbed8","data":{"account_id":"b1b89684-c2c4-4d54-b8a8-3572727fd120","application_id":"7bd8df2d-4975-4c1a-a956-66af2a6dbed8","country":"BH","currency":"GBP","direct_id":"0","public_version":2,"results":[{"payment_method":"SWIFT","status":"COMPLETED","virtual_accounts":[{"account_bank_id":"va-bank-detail-001","account_holder":"Example Merchant Ltd.","account_number":"BH00SGBD00000000000000","country_code":"BH","currency":"GBP","bank_name":"Singapore Gulf Bank","bank_address":"Manama, Bahrain","clearing_system":{"type":"bic_swift","value":"SGBDBHB2XXX"},"status":"ACTIVE","close_reason":""}],"error":null}],"status":"COMPLETED"}}},"closed":{"title":"closed","value":{"version":"V1.6.0","event_name":"VIRTUAL","event_type":"virtual.account.closed","event_id":"6c6ca4e9-a6a7-4572-9a2a-b4e054d852b1","source_id":"8f05cb15-b3ea-4c8f-b10d-4376e6355037","data":{"account_id":"b1b89684-c2c4-4d54-b8a8-3572727fd120","application_id":"8f05cb15-b3ea-4c8f-b10d-4376e6355037","country":"BH","currency":"GBP","direct_id":"0","public_version":3,"results":[{"payment_method":"SWIFT","status":"CLOSED","virtual_accounts":[{"account_bank_id":"va-bank-detail-001","account_holder":"Example Merchant Ltd.","account_number":"BH00SGBD00000000000000","country_code":"BH","currency":"GBP","bank_name":"Singapore Gulf Bank","bank_address":"Manama, Bahrain","clearing_system":{"type":"bic_swift","value":"SGBDBHB2XXX"},"status":"CLOSED","close_reason":""}],"error":null}],"status":"CLOSED"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"b5a5a118-38f1-4ea7-bf32-73f6ecc54b60":{"description":"Return 200 to acknowledge receipt.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{},"servers":{}},"originalFileLocation":"global-account/v1.6/webhooks-banking.yaml"},"subdomain":"uqpay-ecc4f4d8","siteName":"UQPAY Developer Docs","title":"Virtual Account Application Webhooks - UQPAY Developer Docs","navMaps":{"firstHrefInVersion":{"v1.6":{"href":"/global-account/v1.6/webhooks/virtual-account-create-update","matchLevel":0}},"firstHrefInLanguage":{"en":{"href":"/global-account/v1.6/webhooks/virtual-account-create-update","matchLevel":0},"zh":{"href":"/zh/global-account/v1.6/webhooks/virtual-account-create-update","matchLevel":1}}},"lastModified":"2026-09-20T06:52:19.879Z","originalFileLocation":"global-account/v1.6/webhooks/virtual-account-create-update.md","locale":"en"},"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=\"Receive application acceptance, update, and closure events safely.\">\u003cmeta data-mint-head name=\"application-name\" content=\"UQPAY Developer Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/uqpay-ecc4f4d8/zJUnKnvS29IywmGk/_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=\"/docs/mintlify-assets/_mintlify/favicons/uqpay-ecc4f4d8/zJUnKnvS29IywmGk/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/uqpay-ecc4f4d8/zJUnKnvS29IywmGk/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/uqpay-ecc4f4d8/zJUnKnvS29IywmGk/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/uqpay-ecc4f4d8/zJUnKnvS29IywmGk/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/uqpay-ecc4f4d8/zJUnKnvS29IywmGk/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/uqpay-ecc4f4d8/zJUnKnvS29IywmGk/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/uqpay-ecc4f4d8/zJUnKnvS29IywmGk/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/uqpay-ecc4f4d8/zJUnKnvS29IywmGk/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Virtual Account Application Webhooks - UQPAY Developer Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Receive application acceptance, update, and closure events safely.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"UQPAY Developer Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers-sandbox.uqpaytech.com/docs/global-account/v1.6/webhooks/virtual-account-create-update\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://uqpay-ecc4f4d8.mintlify.app/_mintlify/api/og/v2?division=Account+%26+Virtual+Account\u0026amp;title=Virtual+Account+Application+Webhooks\u0026amp;description=Receive+application+acceptance%2C+update%2C+and+closure+events+safely.\u0026amp;theme=ee61e842face86fd00189b13\u0026amp;signature=6a1cb2378f6beef458d138e6227fd21cf8e1b7e0183ddd7418c5dbfb0c77183e\">\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=\"Virtual Account Application Webhooks - UQPAY Developer Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Receive application acceptance, update, and closure events safely.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://uqpay-ecc4f4d8.mintlify.app/_mintlify/api/og/v2?division=Account+%26+Virtual+Account\u0026amp;title=Virtual+Account+Application+Webhooks\u0026amp;description=Receive+application+acceptance%2C+update%2C+and+closure+events+safely.\u0026amp;theme=ee61e842face86fd00189b13\u0026amp;signature=6a1cb2378f6beef458d138e6227fd21cf8e1b7e0183ddd7418c5dbfb0c77183e\">\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=\"/docs/mintlify-assets/_mintlify/favicons/uqpay-ecc4f4d8/zJUnKnvS29IywmGk/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"UQPAY Developer Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1A56DB\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers-sandbox.uqpaytech.com/docs/global-account/v1.6/webhooks/virtual-account-create-update\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/global-account/v1.6/webhooks/virtual-account-create-update.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://developers-sandbox.uqpaytech.com/docs/global-account/v1.6/webhooks/virtual-account-create-update\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://developers-sandbox.uqpaytech.com/docs/zh/global-account/v1.6/webhooks/virtual-account-create-update\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://developers-sandbox.uqpaytech.com/docs/global-account/v1.6/webhooks/virtual-account-create-update\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers-sandbox.uqpaytech.com/#organization\",\"name\":\"UQPAY Developer Docs\",\"url\":\"https://developers-sandbox.uqpaytech.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/uqpay-ecc4f4d8/-ww49FTUjAmlhKN6/images/logo-light.png?fit=max\u0026auto=format\u0026n=-ww49FTUjAmlhKN6\u0026q=85\u0026s=f7d617f71b284158f3d0d2a8e2872806\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers-sandbox.uqpaytech.com/docs#website\",\"name\":\"UQPAY Developer Docs\",\"url\":\"https://developers-sandbox.uqpaytech.com/docs\",\"publisher\":{\"@id\":\"https://developers-sandbox.uqpaytech.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers-sandbox.uqpaytech.com/docs/global-account/v1.6/webhooks/virtual-account-create-update#webpage\",\"url\":\"https://developers-sandbox.uqpaytech.com/docs/global-account/v1.6/webhooks/virtual-account-create-update\",\"name\":\"Virtual Account Application Webhooks\",\"description\":\"Receive application acceptance, update, and closure events safely.\",\"dateModified\":\"2026-09-20T06:52:19.879Z\",\"isPartOf\":{\"@id\":\"https://developers-sandbox.uqpaytech.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://developers-sandbox.uqpaytech.com/docs/global-account/v1.6/webhooks/virtual-account-create-update#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers-sandbox.uqpaytech.com/docs/global-account/v1.6/webhooks/virtual-account-create-update#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Account \u0026 Virtual Account\",\"item\":\"https://developers-sandbox.uqpaytech.com/docs/global-account/v1.6/webhooks/beneficiary-created\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Virtual Account Application Webhooks\",\"item\":\"https://developers-sandbox.uqpaytech.com/docs/global-account/v1.6/webhooks/virtual-account-create-update\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developers-sandbox.uqpaytech.com/docs/global-account/v1.6/webhooks/virtual-account-create-update#apireference\",\"headline\":\"Virtual Account Application Webhooks\",\"name\":\"Virtual Account Application Webhooks\",\"description\":\"Receive application acceptance, update, and closure events safely.\",\"url\":\"https://developers-sandbox.uqpaytech.com/docs/global-account/v1.6/webhooks/virtual-account-create-update\",\"mainEntityOfPage\":{\"@id\":\"https://developers-sandbox.uqpaytech.com/docs/global-account/v1.6/webhooks/virtual-account-create-update#webpage\"},\"dateModified\":\"2026-09-20T06:52:19.879Z\",\"publisher\":{\"@id\":\"https://developers-sandbox.uqpaytech.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developers-sandbox.uqpaytech.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"UQPAY Developer Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"UQPAY Developer Docs","nav":{"global":null,"languages":[{"language":"en","default":true,"navbar":{"links":[{"href":"/changelog","label":"Changelog"}]},"products":[{"product":"Account Center","icon":"user","pages":[{"title":"Account Center","href":"/account-center/v1.6/guide/overview"}]},{"product":"Global Acquiring","icon":"cash-register","pages":[{"title":"Global Acquiring","href":"/global-acquiring/v1.6/guide/overview"}]},{"product":"Global Account","icon":"building-columns","versions":[{"version":"v1.6","tag":"Latest","tabs":[{"tab":"Guide","icon":"book-open","pages":[{"title":"Guide","href":"/global-account/v1.6/guide/overview"}]},{"tab":"Webhooks","icon":"bell","groups":[{"group":"Account \u0026 Virtual Account","pages":[{"title":"Beneficiary Created","description":"Published when a beneficiary creation is successful or failed.","openapi":"webhooks-banking.yaml webhook beneficiaryCreated","href":"/global-account/v1.6/webhooks/beneficiary-created"},{"title":"Virtual Account Application Webhooks","openapi":"webhooks-banking.yaml webhook virtualAccountCreateUpdate","href":"/global-account/v1.6/webhooks/virtual-account-create-update"}]},{"group":"Transactions","pages":[{"title":"Deposit Status","description":"Published when a deposit is pending, rejected, or completed.","openapi":"webhooks-banking.yaml webhook depositStatus","href":"/global-account/v1.6/webhooks/deposit-pending-rejected-completed"},{"title":"Payout Status","openapi":"webhooks-banking.yaml webhook payoutStatus","href":"/global-account/v1.6/webhooks/payout-status"},{"title":"Conversion Status","openapi":"webhooks-banking.yaml webhook conversionStatus","href":"/global-account/v1.6/webhooks/conversion-status"}]}]},{"tab":"API Reference","icon":"square-terminal","pages":[{"title":"API Reference","href":"/global-account/v1.6/api-reference/list-transfers"}]}]}]},{"product":"Card Issuance","icon":"credit-card","pages":[{"title":"Card Issuance","href":"/card-issuance/v1.6/guide/overview"}]},{"product":"Stablecoin Account","icon":"arrow-right-arrow-left","pages":[{"title":"Stablecoin Account","href":"/stablecoin-account/v1.6/guide/overview"}]},{"product":"Developer Tools","icon":"code","pages":[{"title":"Developer Tools","href":"/developer-tools/mcp/mcp-integration-guide"}]},{"product":"AI Knowledge Base","icon":"sparkles","pages":[{"title":"AI Knowledge Base","href":"/ai-knowledge-base/card-issuing/corpus_overview"}]}]},{"language":"zh","navbar":{"links":[{"href":"/zh/changelog","label":"更新日志"}]},"pages":[{"title":"zh","href":"/zh/global-account/v1.6/webhooks/virtual-account-create-update"}]}]},"basePath":"","title":"Virtual Account Application Webhooks - UQPAY Developer Docs","buildId":"dpl_GWQzn6k13MqphA3qck3hQKoQXDzM","deploymentId":"dpl_GWQzn6k13MqphA3qck3hQKoQXDzM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-vlKR2tYY.js","utils-DBDPZSWe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CxHK4zz2.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-27b98BOz.js","snippetPresets-DNnui32z.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-cDVS2zyo.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BEE-OyDQ.js","shallow-fqEMZOYR.js","getApiPlaygroundDisplay-BPut1_OB.js","CodeSnippet-h9vp8UTG.js","CodeSnippets-DoMjCW5Q.js","Page-BOWGOUSK.js","getPastedJson-C4r-hmQ_.js","icon-CCDahfhO.js","MethodPill-Dpq0JSrS.js","DuplicateIcon-BGPwFt-j.js","createIcon-DBULrQp7.js","DynamicMarkdown-B74atANy.js","SectionHeading-DZCpbSmT.js","axios-vUo_bRtp.js","Markdown-BwkgxkAH.js","clsx-CEIlvfOI.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-f6OgbvLC.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DvlTOml0.js"]}