One entry point for every event type. Send an event when something happens that your workflows should see, such as a payment, a login or a card action. Triggering events start evaluations; every other event is accepted and stored.
Event types
Pick the request variant that matches eventType. Every field in the schema lists its type, whether it is required and what it means. Use the Examples selector to see a complete payload for each variant.
Event
eventType
What it describes
Workflow type
Transaction
transaction
A payment, with its sender and beneficiaries in data.
Transaction Monitoring (TM)
Login
account_activity
A customer login. Carries data.loginMethod.
Transaction Monitoring (TM)
Card
account_activity
A card event. Carries data.cardAction (created or updated).
Transaction Monitoring (TM)
Onboarding
onboarding
A customer onboarding event. Carries data.externalEntityId (required) and data.entityId when the workflow is for an existing entity.
Customer Onboarding (CO)
A login and a card event are both account_activity. Never send loginMethod and cardAction together. Pick the matching request variant below. The fields inside an onboarding event’s data beyond the entity fields depend on the workflow you are running.
Routing
transaction and account_activity events carry an eventCategory. Every event runs the live TM workflows tagged with that category whose eventTypes includes the event’s type. A TM workflow must list at least one event type to be saved or published.
onboarding events are routed by workflowId and workflowVersion.
eventTypes decides which events start a workflow, not what the workflow can read. Any TM workflow can use the behavioural_insights.* variables, including those learned from account activity.
An account_activity event runs on { account_activity: data }.
Which statuses start an evaluation
Event
Triggering eventStatus
Transaction
acknowledged, pending
Login
attempted
Card
requested, activated, pin_changed
Any kind
processing
Any other status (for example completed, successful, failed, issued, frozen, processed) is stored without a run, and still updates the aggregates. Which statuses are allowed depends on the kind of event.
Identifying the entity
There is no externalEntityId on the event itself. Each entity identifies itself inside data:
On a transaction, the sender and each beneficiary carry their own entityId (the Youverify id) or their own externalEntityId (your id), with a name and accountNumber.
On an account_activity event, the same fields sit at the root of data.
entityType (INDIVIDUAL or BUSINESS) is required inside data: at the root of data for account_activity and onboarding events, and on the sender and each beneficiary of a transaction.
Send the entityId whenever you have it. We then skip resolving the entity from your externalEntityId, so the event is processed and enriched faster.
Idempotency
externalEventId is the idempotency key. Sending the same externalEventId again returns the original evaluations with replayed: true and runs nothing. The repeat’s payload is ignored even if it differs. An externalEventId with no live evaluation yet runs as normal. A transaction’s transactionReference identifies the transaction, not the event.
Lifecycle
An event has a lifecycleId only if you send one; we never generate it. An event without one is connected to no other event and adds nothing to session-risk counters. Send the same lifecycleId on related events, such as one session or one payment.
Where the event is in its life. Only a triggering status starts a workflow (a transaction: acknowledged, pending; a login: attempted; a card event: requested, activated, pin_changed); any other status is stored and still updates the aggregates. Which statuses are allowed depends on the kind of event.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Youverify","colors":{"primary":"#277A93","light":"#5BB5CF","dark":"#1B5A6E"},"logo":{"light":"https://mintcdn.com/youverify/1dd8Ykqjzgp3lT04/images/Youverify-logo-teal-tag.svg?fit=max\u0026auto=format\u0026n=1dd8Ykqjzgp3lT04\u0026q=85\u0026s=58de2cb29492afc5c7759beb95948f58","dark":"https://mintcdn.com/youverify/1dd8Ykqjzgp3lT04/images/Youverify-logo-teal-tag.svg?fit=max\u0026auto=format\u0026n=1dd8Ykqjzgp3lT04\u0026q=85\u0026s=58de2cb29492afc5c7759beb95948f58"},"favicon":"https://youverify.co/favicon.ico","navbar":{"primary":{"type":"button","label":"Dashboard","href":"https://cowork.youverify.co"}},"footer":{"socials":{"website":"https://youverify.co","linkedin":"https://linkedin.com/company/youverify"}},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","href":"introduction"},{"language":"fr","href":"fr/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"youverify","hasAudioNarration":false,"actualSubdomain":"youverify","customDomains":["doc.youverify.co"],"gitSource":{"type":"github","owner":"bolaji-laguda","repo":"mintlifydocs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6aea615cbc5eae415310c560","collectionId":"d193456e-189e-425b-8cea-0f6581e6c2fd","liveDeploymentHistoryId":"6aea615cbc5eae415310c560","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6aed8aa76b57de162dda04b7","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"en","tag":"API Reference","count":103},{"language":"en","tag":"Quick Check API","count":74},{"language":"en","tag":"Product Guide","count":31},{"language":"fr","tag":"Guide produit","count":30},{"language":"en","tag":"Cowork API","count":25},{"language":"en","tag":"How-to Guides","count":15},{"language":"en","tag":"KYC - Kenya","count":15},{"language":"fr","tag":"Guides pratiques","count":15},{"language":"en","tag":"KYC - Nigeria","count":12},{"language":"en","tag":"SDKs","count":11},{"language":"fr","tag":"SDK","count":11},{"language":"en","tag":"KYC - Address Verification (Individuals)","count":9},{"language":"en","tag":"Entity Management","count":7},{"language":"fr","tag":"Guides d'implémentation","count":5},{"language":"fr","tag":"Compte et équipe","count":5},{"language":"fr","tag":"Concepts de la plateforme","count":4},{"language":"fr","tag":"Démarrage","count":4},{"language":"fr","tag":"Détection de vivacité anti-deepfake","count":4},{"language":"fr","tag":"Ressources","count":3},{"language":"fr","tag":"Vérification d'adresse","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@youverify.co"}},"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":"vite-origin","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},{"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}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/cowork/workflow-events-management/send-an-event","slug":"/api-reference/cowork/workflow-events-management/send-an-event","pageMetadata":{"title":"Send an Event","description":"One entry point for every event type. Send an event when something happens that your workflows should see, such as a payment, a login or a card action. **Triggering events start evaluations; every other event is accepted and stored.**\n\n### Event types\n\nPick the request variant that matches `eventType`. Every field in the schema lists its type, whether it is required and what it means. Use the **Examples** selector to see a complete payload for each variant.\n\n| Event | `eventType` | What it describes | Workflow type |\n| --- | --- | --- | --- |\n| Transaction | `transaction` | A payment, with its sender and beneficiaries in `data`. | Transaction Monitoring (TM) |\n| Login | `account_activity` | A customer login. Carries `data.loginMethod`. | Transaction Monitoring (TM) |\n| Card | `account_activity` | A card event. Carries `data.cardAction` (`created` or `updated`). | Transaction Monitoring (TM) |\n| Onboarding | `onboarding` | A customer onboarding event. Carries `data.externalEntityId` (required) and `data.entityId` when the workflow is for an existing entity. | Customer Onboarding (CO) |\n\nA login and a card event are both `account_activity`. Never send `loginMethod` and `cardAction` together. Pick the matching request variant below. The fields inside an onboarding event's `data` beyond the entity fields depend on the workflow you are running.\n\n### Routing\n\n- `transaction` and `account_activity` events carry an `eventCategory`. Every event runs the live TM workflows tagged with that category whose `eventTypes` includes the event's type. A TM workflow must list at least one event type to be saved or published.\n- `onboarding` events are routed by `workflowId` and `workflowVersion`.\n- `eventTypes` decides which events start a workflow, not what the workflow can read. Any TM workflow can use the `behavioural_insights.*` variables, including those learned from account activity.\n- An `account_activity` event runs on `{ account_activity: data }`.\n\n### Which statuses start an evaluation\n\n| Event | Triggering `eventStatus` |\n| --- | --- |\n| Transaction | `acknowledged`, `pending` |\n| Login | `attempted` |\n| Card | `requested`, `activated`, `pin_changed` |\n| Any kind | `processing` |\n\nAny other status (for example `completed`, `successful`, `failed`, `issued`, `frozen`, `processed`) is stored without a run, and still updates the aggregates. Which statuses are allowed depends on the kind of event.\n\n### Identifying the entity\n\nThere is no `externalEntityId` on the event itself. Each entity identifies itself inside `data`:\n\n- On a `transaction`, the sender and each beneficiary carry their own `entityId` (the Youverify id) or their own `externalEntityId` (your id), with a `name` and `accountNumber`.\n- On an `account_activity` event, the same fields sit at the root of `data`.\n- `entityType` (`INDIVIDUAL` or `BUSINESS`) is required inside `data`: at the root of `data` for `account_activity` and `onboarding` events, and on the sender and each beneficiary of a `transaction`.\n\nSend the `entityId` whenever you have it. We then skip resolving the entity from your `externalEntityId`, so the event is processed and enriched faster.\n\n### Idempotency\n\n`externalEventId` is the idempotency key. Sending the same `externalEventId` again returns the original evaluations with `replayed: true` and runs nothing. The repeat's payload is ignored even if it differs. An `externalEventId` with no live evaluation yet runs as normal. A transaction's `transactionReference` identifies the transaction, not the event.\n\n### Lifecycle\n\nAn event has a `lifecycleId` only if you send one; we never generate it. An event without one is connected to no other event and adds nothing to session-risk counters. Send the same `lifecycleId` on related events, such as one session or one payment.\n","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json post /v2/workflows/events","href":"/api-reference/cowork/workflow-events-management/send-an-event","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n h3: \"h3\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n table: \"table\",\n tbody: \"tbody\",\n td: \"td\",\n th: \"th\",\n thead: \"thead\",\n tr: \"tr\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"One entry point for every event type. Send an event when something happens that your workflows should see, such as a payment, a login or a card action. \", _jsx(_components.strong, {\n children: \"Triggering events start evaluations; every other event is accepted and stored.\"\n })]\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Event types\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Pick the request variant that matches \", _jsx(_components.code, {\n children: \"eventType\"\n }), \". Every field in the schema lists its type, whether it is required and what it means. Use the \", _jsx(_components.strong, {\n children: \"Examples\"\n }), \" selector to see a complete payload for each variant.\"]\n }), \"\\n\", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: \"Event\"\n }), _jsx(_components.th, {\n children: _jsx(_components.code, {\n children: \"eventType\"\n })\n }), _jsx(_components.th, {\n children: \"What it describes\"\n }), _jsx(_components.th, {\n children: \"Workflow type\"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"Transaction\"\n }), _jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"transaction\"\n })\n }), _jsxs(_components.td, {\n children: [\"A payment, with its sender and beneficiaries in \", _jsx(_components.code, {\n children: \"data\"\n }), \".\"]\n }), _jsx(_components.td, {\n children: \"Transaction Monitoring (TM)\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"Login\"\n }), _jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"account_activity\"\n })\n }), _jsxs(_components.td, {\n children: [\"A customer login. Carries \", _jsx(_components.code, {\n children: \"data.loginMethod\"\n }), \".\"]\n }), _jsx(_components.td, {\n children: \"Transaction Monitoring (TM)\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"Card\"\n }), _jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"account_activity\"\n })\n }), _jsxs(_components.td, {\n children: [\"A card event. Carries \", _jsx(_components.code, {\n children: \"data.cardAction\"\n }), \" (\", _jsx(_components.code, {\n children: \"created\"\n }), \" or \", _jsx(_components.code, {\n children: \"updated\"\n }), \").\"]\n }), _jsx(_components.td, {\n children: \"Transaction Monitoring (TM)\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"Onboarding\"\n }), _jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"onboarding\"\n })\n }), _jsxs(_components.td, {\n children: [\"A customer onboarding event. Carries \", _jsx(_components.code, {\n children: \"data.externalEntityId\"\n }), \" (required) and \", _jsx(_components.code, {\n children: \"data.entityId\"\n }), \" when the workflow is for an existing entity.\"]\n }), _jsx(_components.td, {\n children: \"Customer Onboarding (CO)\"\n })]\n })]\n })]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"A login and a card event are both \", _jsx(_components.code, {\n children: \"account_activity\"\n }), \". Never send \", _jsx(_components.code, {\n children: \"loginMethod\"\n }), \" and \", _jsx(_components.code, {\n children: \"cardAction\"\n }), \" together. Pick the matching request variant below. The fields inside an onboarding event’s \", _jsx(_components.code, {\n children: \"data\"\n }), \" beyond the entity fields depend on the workflow you are running.\"]\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Routing\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"transaction\"\n }), \" and \", _jsx(_components.code, {\n children: \"account_activity\"\n }), \" events carry an \", _jsx(_components.code, {\n children: \"eventCategory\"\n }), \". Every event runs the live TM workflows tagged with that category whose \", _jsx(_components.code, {\n children: \"eventTypes\"\n }), \" includes the event’s type. A TM workflow must list at least one event type to be saved or published.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"onboarding\"\n }), \" events are routed by \", _jsx(_components.code, {\n children: \"workflowId\"\n }), \" and \", _jsx(_components.code, {\n children: \"workflowVersion\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"eventTypes\"\n }), \" decides which events start a workflow, not what the workflow can read. Any TM workflow can use the \", _jsx(_components.code, {\n children: \"behavioural_insights.*\"\n }), \" variables, including those learned from account activity.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"An \", _jsx(_components.code, {\n children: \"account_activity\"\n }), \" event runs on \", _jsx(_components.code, {\n children: \"{ account_activity: data }\"\n }), \".\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Which statuses start an evaluation\"\n }), \"\\n\", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: \"Event\"\n }), _jsxs(_components.th, {\n children: [\"Triggering \", _jsx(_components.code, {\n children: \"eventStatus\"\n })]\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"Transaction\"\n }), _jsxs(_components.td, {\n children: [_jsx(_components.code, {\n children: \"acknowledged\"\n }), \", \", _jsx(_components.code, {\n children: \"pending\"\n })]\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"Login\"\n }), _jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"attempted\"\n })\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"Card\"\n }), _jsxs(_components.td, {\n children: [_jsx(_components.code, {\n children: \"requested\"\n }), \", \", _jsx(_components.code, {\n children: \"activated\"\n }), \", \", _jsx(_components.code, {\n children: \"pin_changed\"\n })]\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: \"Any kind\"\n }), _jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"processing\"\n })\n })]\n })]\n })]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Any other status (for example \", _jsx(_components.code, {\n children: \"completed\"\n }), \", \", _jsx(_components.code, {\n children: \"successful\"\n }), \", \", _jsx(_components.code, {\n children: \"failed\"\n }), \", \", _jsx(_components.code, {\n children: \"issued\"\n }), \", \", _jsx(_components.code, {\n children: \"frozen\"\n }), \", \", _jsx(_components.code, {\n children: \"processed\"\n }), \") is stored without a run, and still updates the aggregates. Which statuses are allowed depends on the kind of event.\"]\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Identifying the entity\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"There is no \", _jsx(_components.code, {\n children: \"externalEntityId\"\n }), \" on the event itself. Each entity identifies itself inside \", _jsx(_components.code, {\n children: \"data\"\n }), \":\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"On a \", _jsx(_components.code, {\n children: \"transaction\"\n }), \", the sender and each beneficiary carry their own \", _jsx(_components.code, {\n children: \"entityId\"\n }), \" (the Youverify id) or their own \", _jsx(_components.code, {\n children: \"externalEntityId\"\n }), \" (your id), with a \", _jsx(_components.code, {\n children: \"name\"\n }), \" and \", _jsx(_components.code, {\n children: \"accountNumber\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"On an \", _jsx(_components.code, {\n children: \"account_activity\"\n }), \" event, the same fields sit at the root of \", _jsx(_components.code, {\n children: \"data\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"entityType\"\n }), \" (\", _jsx(_components.code, {\n children: \"INDIVIDUAL\"\n }), \" or \", _jsx(_components.code, {\n children: \"BUSINESS\"\n }), \") is required inside \", _jsx(_components.code, {\n children: \"data\"\n }), \": at the root of \", _jsx(_components.code, {\n children: \"data\"\n }), \" for \", _jsx(_components.code, {\n children: \"account_activity\"\n }), \" and \", _jsx(_components.code, {\n children: \"onboarding\"\n }), \" events, and on the sender and each beneficiary of a \", _jsx(_components.code, {\n children: \"transaction\"\n }), \".\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Send the \", _jsx(_components.code, {\n children: \"entityId\"\n }), \" whenever you have it. We then skip resolving the entity from your \", _jsx(_components.code, {\n children: \"externalEntityId\"\n }), \", so the event is processed and enriched faster.\"]\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Idempotency\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"externalEventId\"\n }), \" is the idempotency key. Sending the same \", _jsx(_components.code, {\n children: \"externalEventId\"\n }), \" again returns the original evaluations with \", _jsx(_components.code, {\n children: \"replayed: true\"\n }), \" and runs nothing. The repeat’s payload is ignored even if it differs. An \", _jsx(_components.code, {\n children: \"externalEventId\"\n }), \" with no live evaluation yet runs as normal. A transaction’s \", _jsx(_components.code, {\n children: \"transactionReference\"\n }), \" identifies the transaction, not the event.\"]\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Lifecycle\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"An event has a \", _jsx(_components.code, {\n children: \"lifecycleId\"\n }), \" only if you send one; we never generate it. An event without one is connected to no other event and adds nothing to session-risk counters. Send the same \", _jsx(_components.code, {\n children: \"lifecycleId\"\n }), \" on related events, such as one session or one payment.\"]\n })]\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":"Send an Event","description":"One entry point for every event type. Send an event when something happens that your workflows should see, such as a payment, a login or a card action. **Triggering events start evaluations; every other event is accepted and stored.**\n\n### Event types\n\nPick the request variant that matches `eventType`. Every field in the schema lists its type, whether it is required and what it means. Use the **Examples** selector to see a complete payload for each variant.\n\n| Event | `eventType` | What it describes | Workflow type |\n| --- | --- | --- | --- |\n| Transaction | `transaction` | A payment, with its sender and beneficiaries in `data`. | Transaction Monitoring (TM) |\n| Login | `account_activity` | A customer login. Carries `data.loginMethod`. | Transaction Monitoring (TM) |\n| Card | `account_activity` | A card event. Carries `data.cardAction` (`created` or `updated`). | Transaction Monitoring (TM) |\n| Onboarding | `onboarding` | A customer onboarding event. Carries `data.externalEntityId` (required) and `data.entityId` when the workflow is for an existing entity. | Customer Onboarding (CO) |\n\nA login and a card event are both `account_activity`. Never send `loginMethod` and `cardAction` together. Pick the matching request variant below. The fields inside an onboarding event's `data` beyond the entity fields depend on the workflow you are running.\n\n### Routing\n\n- `transaction` and `account_activity` events carry an `eventCategory`. Every event runs the live TM workflows tagged with that category whose `eventTypes` includes the event's type. A TM workflow must list at least one event type to be saved or published.\n- `onboarding` events are routed by `workflowId` and `workflowVersion`.\n- `eventTypes` decides which events start a workflow, not what the workflow can read. Any TM workflow can use the `behavioural_insights.*` variables, including those learned from account activity.\n- An `account_activity` event runs on `{ account_activity: data }`.\n\n### Which statuses start an evaluation\n\n| Event | Triggering `eventStatus` |\n| --- | --- |\n| Transaction | `acknowledged`, `pending` |\n| Login | `attempted` |\n| Card | `requested`, `activated`, `pin_changed` |\n| Any kind | `processing` |\n\nAny other status (for example `completed`, `successful`, `failed`, `issued`, `frozen`, `processed`) is stored without a run, and still updates the aggregates. Which statuses are allowed depends on the kind of event.\n\n### Identifying the entity\n\nThere is no `externalEntityId` on the event itself. Each entity identifies itself inside `data`:\n\n- On a `transaction`, the sender and each beneficiary carry their own `entityId` (the Youverify id) or their own `externalEntityId` (your id), with a `name` and `accountNumber`.\n- On an `account_activity` event, the same fields sit at the root of `data`.\n- `entityType` (`INDIVIDUAL` or `BUSINESS`) is required inside `data`: at the root of `data` for `account_activity` and `onboarding` events, and on the sender and each beneficiary of a `transaction`.\n\nSend the `entityId` whenever you have it. We then skip resolving the entity from your `externalEntityId`, so the event is processed and enriched faster.\n\n### Idempotency\n\n`externalEventId` is the idempotency key. Sending the same `externalEventId` again returns the original evaluations with `replayed: true` and runs nothing. The repeat's payload is ignored even if it differs. An `externalEventId` with no live evaluation yet runs as normal. A transaction's `transactionReference` identifies the transaction, not the event.\n\n### Lifecycle\n\nAn event has a `lifecycleId` only if you send one; we never generate it. An event without one is connected to no other event and adds nothing to session-risk counters. Send the same `lifecycleId` on related events, such as one session or one payment.\n","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json post /v2/workflows/events","href":"/api-reference/cowork/workflow-events-management/send-an-event","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Workflow Events Management"],"summary":"Send an Event","description":"One entry point for every event type. Send an event when something happens that your workflows should see, such as a payment, a login or a card action. **Triggering events start evaluations; every other event is accepted and stored.**\n\n### Event types\n\nPick the request variant that matches `eventType`. Every field in the schema lists its type, whether it is required and what it means. Use the **Examples** selector to see a complete payload for each variant.\n\n| Event | `eventType` | What it describes | Workflow type |\n| --- | --- | --- | --- |\n| Transaction | `transaction` | A payment, with its sender and beneficiaries in `data`. | Transaction Monitoring (TM) |\n| Login | `account_activity` | A customer login. Carries `data.loginMethod`. | Transaction Monitoring (TM) |\n| Card | `account_activity` | A card event. Carries `data.cardAction` (`created` or `updated`). | Transaction Monitoring (TM) |\n| Onboarding | `onboarding` | A customer onboarding event. Carries `data.externalEntityId` (required) and `data.entityId` when the workflow is for an existing entity. | Customer Onboarding (CO) |\n\nA login and a card event are both `account_activity`. Never send `loginMethod` and `cardAction` together. Pick the matching request variant below. The fields inside an onboarding event's `data` beyond the entity fields depend on the workflow you are running.\n\n### Routing\n\n- `transaction` and `account_activity` events carry an `eventCategory`. Every event runs the live TM workflows tagged with that category whose `eventTypes` includes the event's type. A TM workflow must list at least one event type to be saved or published.\n- `onboarding` events are routed by `workflowId` and `workflowVersion`.\n- `eventTypes` decides which events start a workflow, not what the workflow can read. Any TM workflow can use the `behavioural_insights.*` variables, including those learned from account activity.\n- An `account_activity` event runs on `{ account_activity: data }`.\n\n### Which statuses start an evaluation\n\n| Event | Triggering `eventStatus` |\n| --- | --- |\n| Transaction | `acknowledged`, `pending` |\n| Login | `attempted` |\n| Card | `requested`, `activated`, `pin_changed` |\n| Any kind | `processing` |\n\nAny other status (for example `completed`, `successful`, `failed`, `issued`, `frozen`, `processed`) is stored without a run, and still updates the aggregates. Which statuses are allowed depends on the kind of event.\n\n### Identifying the entity\n\nThere is no `externalEntityId` on the event itself. Each entity identifies itself inside `data`:\n\n- On a `transaction`, the sender and each beneficiary carry their own `entityId` (the Youverify id) or their own `externalEntityId` (your id), with a `name` and `accountNumber`.\n- On an `account_activity` event, the same fields sit at the root of `data`.\n- `entityType` (`INDIVIDUAL` or `BUSINESS`) is required inside `data`: at the root of `data` for `account_activity` and `onboarding` events, and on the sender and each beneficiary of a `transaction`.\n\nSend the `entityId` whenever you have it. We then skip resolving the entity from your `externalEntityId`, so the event is processed and enriched faster.\n\n### Idempotency\n\n`externalEventId` is the idempotency key. Sending the same `externalEventId` again returns the original evaluations with `replayed: true` and runs nothing. The repeat's payload is ignored even if it differs. An `externalEventId` with no live evaluation yet runs as normal. A transaction's `transactionReference` identifies the transaction, not the event.\n\n### Lifecycle\n\nAn event has a `lifecycleId` only if you send one; we never generate it. An event without one is connected to no other event and adds nothing to session-risk counters. Send the same `lifecycleId` on related events, such as one session or one payment.\n","operationId":"sendWorkflowEvent","parameters":["754c5d67-e8bb-458d-83b5-347eb539e9fa"],"requestBody":"c6ce0ed9-5ab3-4a89-8ad5-501355fb889f","responses":{"202":"7b4fbd3d-7dc2-4441-8cd7-21cf2b07c812","401":"dcb55974-4091-484d-952c-4de5a66c5086","429":"6560b6e5-3007-4871-84cf-4cbb032118b4","500":"8c982336-86b2-409f-b33b-a2250decf69b"},"method":"post","type":"path","servers":["49a36cd0-cd2c-4da6-ba70-b7321387b7d2","509d3856-c369-4c89-b879-31478ee0975e"],"security":["39719aef-b4cc-402d-a267-540cad498841"],"path":"/v2/workflows/events","baseUrlOptions":["https://api.youverify.co","https://api.sandbox.youverify.co"],"title":"Send an Event","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"754c5d67-e8bb-458d-83b5-347eb539e9fa":{"name":"token","in":"header","required":true,"schema":{"type":"string","isRequired":true,"description":"API secret token","uniqueKey":"","typeLabel":"string"},"description":"API secret token"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"TM transaction event (routed by eventCategory).","required":["eventType","externalEventId","eventStatus","eventCategory","data"],"properties":{"eventType":{"type":"string","description":"The kind of event: transaction or account_activity (a login or a card event).","enum":["transaction"],"example":"transaction","isRequired":true,"uniqueKey":"oneOf.0.eventType","typeLabel":"enum\u003cstring>"},"externalEventId":{"type":"string","description":"Your own unique id for this event. It is the idempotency key: sending the same id again returns the original evaluations instead of starting new ones.","maxLength":128,"isRequired":true,"uniqueKey":"oneOf.0.externalEventId","typeLabel":"string"},"eventStatus":{"type":"string","description":"Where the event is in its life. Only a triggering status starts a workflow (a transaction: acknowledged, pending; a login: attempted; a card event: requested, activated, pin_changed); any other status is stored and still updates the aggregates. Which statuses are allowed depends on the kind of event.","enum":["acknowledged","pending","completed","attempted","successful","requested","issued","activated","frozen","suspended","unfrozen","pin_changed","closed","canceled","failed","reversed"],"example":"acknowledged","isRequired":true,"uniqueKey":"oneOf.0.eventStatus","typeLabel":"enum\u003cstring>"},"eventCategory":{"type":"string","description":"Routes the event to the workflows tagged with this category, for example finance or kyc.","enum":["finance","kyc","travel_rule","user_event","gambling","audit_trail_event","crypto","insurance","investment"],"isRequired":true,"uniqueKey":"oneOf.0.eventCategory","typeLabel":"enum\u003cstring>"},"data":{"type":"object","description":"The transaction: its payment type, amounts, parties and the flags you decide (isInternational, isNight).","properties":{"paymentType":{"type":"object","description":"How the payment is made: its channel, rail, direction and instrument.","properties":{"direction":{"type":"string","description":"Which way the money moves, relative to your business: OUTBOUND (you send) or INBOUND (you receive). It decides which party is your customer: the sender on OUTBOUND, the beneficiary on INBOUND.","enum":["OUTBOUND","INBOUND"],"isRequired":true,"uniqueKey":"oneOf.0.data.paymentType.direction","typeLabel":"enum\u003cstring>"},"channel":{"type":"string","description":"The routing key: CARD or TRANSFER.","enum":["CARD","TRANSFER"],"isRequired":true,"uniqueKey":"oneOf.0.data.paymentType.channel","typeLabel":"enum\u003cstring>"},"rail":{"type":"string","description":"The payment scheme, for example NIP, RTGS, SWIFT, ACH, INTERNAL, WALLET, VISA, MASTERCARD, VERVE or AMEX. Extensible, so not an enum.","isRequired":true,"uniqueKey":"oneOf.0.data.paymentType.rail","typeLabel":"string"},"instrument":{"type":"string","description":"What kind of business event this is: CREDIT_TRANSFER, AUTHORISATION, REVERSAL, REFUND, CASH_WITHDRAWAL or ADVICE.","enum":["CREDIT_TRANSFER","AUTHORISATION","REVERSAL","REFUND","CASH_WITHDRAWAL","ADVICE"],"isRequired":true,"uniqueKey":"oneOf.0.data.paymentType.instrument","typeLabel":"enum\u003cstring>"},"clearingSystem":{"type":"string","description":"The clearing or scheme operator (ISO 20022 code).","uniqueKey":"oneOf.0.data.paymentType.clearingSystem","typeLabel":"string"},"localInstrument":{"type":"string","description":"The scheme-specific product code (ISO 20022 code), for example NIP-INSTANT.","uniqueKey":"oneOf.0.data.paymentType.localInstrument","typeLabel":"string"},"categoryPurpose":{"type":"string","description":"The category of purpose for the whole message (ISO 20022 code), for example SUPP, SALA or CASH.","uniqueKey":"oneOf.0.data.paymentType.categoryPurpose","typeLabel":"string"}},"required":["direction","channel","rail","instrument"],"isRequired":true,"uniqueKey":"oneOf.0.data.paymentType","typeLabel":"object"},"financials":{"type":"object","description":"The money in the transaction: the total debited and its currency.","properties":{"totalAmount":{"oneOf":[{"type":"number","description":"The total debited from the sender, greater than 0, as a number or a decimal string. It must equal the sum of the beneficiaries' transferDetails.amount. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","isRequired":true,"uniqueKey":"oneOf.0.data.financials.totalAmount.oneOf.0","typeLabel":"number"},{"type":"string","description":"The total debited from the sender, greater than 0, as a number or a decimal string. It must equal the sum of the beneficiaries' transferDetails.amount. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","pattern":"^(?:\\d+|\\d+\\.\\d+)$","isRequired":true,"uniqueKey":"oneOf.0.data.financials.totalAmount.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"oneOf.0.data.financials.totalAmount","typeLabel":"number | string"},"currency":{"type":"string","description":"ISO 4217 currency of totalAmount: the debit currency.","maxLength":3,"minLength":3,"isRequired":true,"uniqueKey":"oneOf.0.data.financials.currency","typeLabel":"string"},"totalBaseAmount":{"oneOf":[{"type":"number","description":"totalAmount converted to baseCurrency, as a number or a decimal string. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","uniqueKey":"oneOf.0.data.financials.totalBaseAmount.oneOf.0","typeLabel":"number"},{"type":"string","description":"totalAmount converted to baseCurrency, as a number or a decimal string. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","uniqueKey":"oneOf.0.data.financials.totalBaseAmount.oneOf.1","typeLabel":"string"}],"uniqueKey":"oneOf.0.data.financials.totalBaseAmount","typeLabel":"number | string"},"baseCurrency":{"type":"string","description":"ISO 4217 house base currency used by threshold rules, typically USD.","maxLength":3,"minLength":3,"uniqueKey":"oneOf.0.data.financials.baseCurrency","typeLabel":"string"},"exchangeRate":{"oneOf":[{"type":"number","description":"How many units of baseCurrency one unit of currency buys.","uniqueKey":"oneOf.0.data.financials.exchangeRate.oneOf.0","typeLabel":"number"},{"type":"string","description":"How many units of baseCurrency one unit of currency buys.","uniqueKey":"oneOf.0.data.financials.exchangeRate.oneOf.1","typeLabel":"string"}],"uniqueKey":"oneOf.0.data.financials.exchangeRate","typeLabel":"number | string"},"rateSource":{"type":"string","description":"Where the exchange rate came from, for example CBN.","uniqueKey":"oneOf.0.data.financials.rateSource","typeLabel":"string"},"rateTimestamp":{"type":"string","description":"When the exchange rate was captured (ISO 8601).","uniqueKey":"oneOf.0.data.financials.rateTimestamp","typeLabel":"string"},"chargeBearer":{"type":"string","description":"Who pays the charges: DEBT (the sender), CRED (the beneficiary), SHAR (shared) or SLEV (service level).","enum":["DEBT","CRED","SHAR","SLEV"],"uniqueKey":"oneOf.0.data.financials.chargeBearer","typeLabel":"enum\u003cstring>"}},"required":["totalAmount","currency"],"isRequired":true,"uniqueKey":"oneOf.0.data.financials","typeLabel":"object"},"parties":{"type":"object","description":"Who sends the money and who receives it.","properties":{"sender":{"type":"object","description":"The party that is debited.","properties":{"entityType":{"type":"string","description":"What the party is: INDIVIDUAL or BUSINESS.","enum":["INDIVIDUAL","BUSINESS"],"isRequired":true,"uniqueKey":"oneOf.0.data.parties.sender.entityType","typeLabel":"enum\u003cstring>"},"entityId":{"type":"string","description":"Our id for the party. Send it whenever you have it: it skips the lookup.","maxLength":128,"uniqueKey":"oneOf.0.data.parties.sender.entityId","typeLabel":"string"},"externalEntityId":{"type":"string","description":"Your own id for the party. Required when entityId is not sent.","maxLength":128,"uniqueKey":"oneOf.0.data.parties.sender.externalEntityId","typeLabel":"string"},"name":{"type":"string","description":"The party's full legal name (up to 140 characters). Required when entityId is not sent.","maxLength":140,"uniqueKey":"oneOf.0.data.parties.sender.name","typeLabel":"string"},"accountNumber":{"type":"string","description":"The party's account number. Used to find or create the party when entityId is not sent, which is when it is required.","uniqueKey":"oneOf.0.data.parties.sender.accountNumber","typeLabel":"string"},"nationality":{"type":"string","description":"ISO 3166-1 alpha-2 nationality; for a business, its country of incorporation.","maxLength":2,"minLength":2,"uniqueKey":"oneOf.0.data.parties.sender.nationality","typeLabel":"string"},"countryOfResidence":{"type":"string","description":"ISO 3166-1 alpha-2 country the party lives in.","maxLength":2,"minLength":2,"uniqueKey":"oneOf.0.data.parties.sender.countryOfResidence","typeLabel":"string"},"dateOfBirth":{"type":"string","description":"Date of birth, YYYY-MM-DD (individuals only).","pattern":"^\\d{4}-\\d{2}-\\d{2}$","uniqueKey":"oneOf.0.data.parties.sender.dateOfBirth","typeLabel":"string"},"placeOfBirth":{"type":"object","description":"Where the party was born (individuals only).","properties":{"city":{"type":"string","description":"City of birth.","uniqueKey":"oneOf.0.data.parties.sender.placeOfBirth.city","typeLabel":"string"},"country":{"type":"string","description":"ISO 3166-1 alpha-2 country of birth.","maxLength":2,"minLength":2,"uniqueKey":"oneOf.0.data.parties.sender.placeOfBirth.country","typeLabel":"string"}},"uniqueKey":"oneOf.0.data.parties.sender.placeOfBirth","typeLabel":"object"},"address":{"type":"object","description":"The party's postal address.","properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code. Required whenever an address is sent.","maxLength":2,"minLength":2,"isRequired":true,"uniqueKey":"oneOf.0.data.parties.sender.address.country","typeLabel":"string"},"streetName":{"type":"string","description":"Street name (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.parties.sender.address.streetName","typeLabel":"string"},"buildingNumber":{"type":"string","description":"Building number (up to 16 characters).","maxLength":16,"uniqueKey":"oneOf.0.data.parties.sender.address.buildingNumber","typeLabel":"string"},"buildingName":{"type":"string","description":"Building name (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.parties.sender.address.buildingName","typeLabel":"string"},"floor":{"type":"string","description":"Floor or level (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.parties.sender.address.floor","typeLabel":"string"},"postCode":{"type":"string","description":"Postal or ZIP code (up to 16 characters).","maxLength":16,"uniqueKey":"oneOf.0.data.parties.sender.address.postCode","typeLabel":"string"},"townName":{"type":"string","description":"City or town (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.parties.sender.address.townName","typeLabel":"string"},"districtName":{"type":"string","description":"District or neighbourhood (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.parties.sender.address.districtName","typeLabel":"string"},"countrySubdivision":{"type":"string","description":"State, province or region, for example LA for Lagos (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.parties.sender.address.countrySubdivision","typeLabel":"string"},"department":{"type":"string","description":"Department (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.parties.sender.address.department","typeLabel":"string"},"subDepartment":{"type":"string","description":"Sub-department (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.parties.sender.address.subDepartment","typeLabel":"string"},"addressLines":{"type":"array","description":"Up to 7 free-text address lines of up to 70 characters each. Use only when you cannot send the structured fields above. string maxLength: 70]","items":{"oneOf":[{}],"uniqueKey":"oneOf.0.data.parties.sender.address.addressLines.items.[INDEX]","typeLabel":"any"},"maxItems":7,"uniqueKey":"oneOf.0.data.parties.sender.address.addressLines","typeLabel":"any[]"}},"required":["country"],"uniqueKey":"oneOf.0.data.parties.sender.address","typeLabel":"object"},"identification":{"type":"array","description":"Government or organisation identifiers for the party. {","items":{"type":"object","description":"One government or organisation identifier.","properties":{"scheme":{"type":"string","description":"The kind of identifier, for example BVN, NIN or PASSPORT.","uniqueKey":"oneOf.0.data.parties.sender.identification.items.[INDEX].scheme","typeLabel":"string"},"id":{"type":"string","description":"The identifier itself.","uniqueKey":"oneOf.0.data.parties.sender.identification.items.[INDEX].id","typeLabel":"string"},"issuerCountry":{"type":"string","description":"ISO 3166-1 alpha-2 country that issued it.","maxLength":2,"minLength":2,"uniqueKey":"oneOf.0.data.parties.sender.identification.items.[INDEX].issuerCountry","typeLabel":"string"},"issueDate":{"type":"string","description":"When it was issued, YYYY-MM-DD.","pattern":"^\\d{4}-\\d{2}-\\d{2}$","uniqueKey":"oneOf.0.data.parties.sender.identification.items.[INDEX].issueDate","typeLabel":"string"},"expiryDate":{"type":"string","description":"When it expires, YYYY-MM-DD.","pattern":"^\\d{4}-\\d{2}-\\d{2}$","uniqueKey":"oneOf.0.data.parties.sender.identification.items.[INDEX].expiryDate","typeLabel":"string"}},"uniqueKey":"oneOf.0.data.parties.sender.identification.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.0.data.parties.sender.identification","typeLabel":"object[]"},"ultimateParty":{"type":"object","description":"The real originator or beneficiary, where different from this party. It is screened.","uniqueKey":"oneOf.0.data.parties.sender.ultimateParty","typeLabel":"object"},"contact":{"type":"object","description":"How to reach the party. Used for link analysis only.","properties":{"email":{"type":"string","description":"The party's email address.","format":"email","uniqueKey":"oneOf.0.data.parties.sender.contact.email","typeLabel":"string\u003cemail>"},"phone":{"type":"string","description":"The party's phone number, for example +2348012345678.","uniqueKey":"oneOf.0.data.parties.sender.contact.phone","typeLabel":"string"}},"uniqueKey":"oneOf.0.data.parties.sender.contact","typeLabel":"object"},"riskRating":{"type":"string","description":"Your own risk rating for the party, for example low, medium or high. Used as the customer's risk rating when we have none (variable Risk Rating).","uniqueKey":"oneOf.0.data.parties.sender.riskRating","typeLabel":"string"},"accountAge":{"type":"number","description":"How long the account has been open, in the unit you give in accountAgeUnit. Send the two together. The Account Age variable holds whole years, so it is worked out as days ÷ 365, weeks ÷ 52 or months ÷ 12, rounded down.","format":"float","uniqueKey":"oneOf.0.data.parties.sender.accountAge","typeLabel":"number\u003cfloat>"},"accountAgeUnit":{"type":"string","description":"The unit accountAge is stated in: days, weeks, months or years. You choose it; send it with accountAge.","enum":["days","weeks","months","years"],"uniqueKey":"oneOf.0.data.parties.sender.accountAgeUnit","typeLabel":"enum\u003cstring>"},"expectedMonthlyVolume":{"type":"number","description":"The transaction volume expected each month, declared or assigned at onboarding. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","format":"float","uniqueKey":"oneOf.0.data.parties.sender.expectedMonthlyVolume","typeLabel":"number\u003cfloat>"},"accountStatus":{"type":"string","description":"The account's status: active, frozen, closed, suspended, restricted or dormant.","uniqueKey":"oneOf.0.data.parties.sender.accountStatus","typeLabel":"string"},"beneficialOwnerRiskTier":{"type":"string","description":"The highest risk tier among the beneficial owners or directors.","uniqueKey":"oneOf.0.data.parties.sender.beneficialOwnerRiskTier","typeLabel":"string"},"productLimit":{"type":"number","description":"The configured transaction and daily limit for the account or product. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","format":"float","uniqueKey":"oneOf.0.data.parties.sender.productLimit","typeLabel":"number\u003cfloat>"},"internalBlacklistFlag":{"type":"boolean","description":"true when the party is blocked because of a previously confirmed risk.","uniqueKey":"oneOf.0.data.parties.sender.internalBlacklistFlag","typeLabel":"boolean"},"account":{"type":"object","description":"The account the money is debited from. Optional; when sent, currency and type are required.","properties":{"currency":{"type":"string","description":"ISO 4217 currency of the sender's account, for example NGN.","maxLength":3,"minLength":3,"isRequired":true,"uniqueKey":"oneOf.0.data.parties.sender.account.currency","typeLabel":"string"},"type":{"type":"string","description":"ISO cash account type, for example CACC (current) or SVGS (savings).","isRequired":true,"uniqueKey":"oneOf.0.data.parties.sender.account.type","typeLabel":"string"},"id":{"type":"string","description":"The account identifier. Send IBANs in upper case with no spaces.","uniqueKey":"oneOf.0.data.parties.sender.account.id","typeLabel":"string"},"scheme":{"type":"string","description":"How the account id is formatted.","uniqueKey":"oneOf.0.data.parties.sender.account.scheme","typeLabel":"string"},"name":{"type":"string","description":"The account holder's name, when it differs from the party's name.","uniqueKey":"oneOf.0.data.parties.sender.account.name","typeLabel":"string"},"balance":{"oneOf":[{"type":"number","description":"The account's balance when the transaction was made, in the account's currency, as a number or a decimal string. Rules read it as the Account Balance variable. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","uniqueKey":"oneOf.0.data.parties.sender.account.balance.oneOf.0","typeLabel":"number"},{"type":"string","description":"The account's balance when the transaction was made, in the account's currency, as a number or a decimal string. Rules read it as the Account Balance variable. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","uniqueKey":"oneOf.0.data.parties.sender.account.balance.oneOf.1","typeLabel":"string"}],"uniqueKey":"oneOf.0.data.parties.sender.account.balance","typeLabel":"number | string"}},"required":["currency","type"],"uniqueKey":"oneOf.0.data.parties.sender.account","typeLabel":"object"},"bank":{"type":"object","description":"The sender's bank. Optional; when sent, name and countryCode are required.","properties":{"name":{"type":"string","description":"Name of the sender's bank (up to 140 characters).","maxLength":140,"isRequired":true,"uniqueKey":"oneOf.0.data.parties.sender.bank.name","typeLabel":"string"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country the sender's bank is in.","maxLength":2,"minLength":2,"isRequired":true,"uniqueKey":"oneOf.0.data.parties.sender.bank.countryCode","typeLabel":"string"},"bic":{"type":"string","description":"The bank's SWIFT code (ISO 9362), 8 or 11 characters. It is screened against sanctioned institutions and high-risk countries.","pattern":"^(?:[A-Za-z0-9]{8}|[A-Za-z0-9]{11})$","uniqueKey":"oneOf.0.data.parties.sender.bank.bic","typeLabel":"string"},"clearingMemberId":{"type":"string","description":"The bank's domestic clearing identifier, for example a bank or NIBSS code.","uniqueKey":"oneOf.0.data.parties.sender.bank.clearingMemberId","typeLabel":"string"},"lei":{"type":"string","description":"The bank's Legal Entity Identifier, 20 characters.","maxLength":20,"minLength":20,"uniqueKey":"oneOf.0.data.parties.sender.bank.lei","typeLabel":"string"},"address":{"type":"object","description":"The bank's postal address.","properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code. Required whenever an address is sent.","maxLength":2,"minLength":2,"isRequired":true,"uniqueKey":"oneOf.0.data.parties.sender.bank.address.country","typeLabel":"string"},"streetName":{"type":"string","description":"Street name (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.parties.sender.bank.address.streetName","typeLabel":"string"},"buildingNumber":{"type":"string","description":"Building number (up to 16 characters).","maxLength":16,"uniqueKey":"oneOf.0.data.parties.sender.bank.address.buildingNumber","typeLabel":"string"},"buildingName":{"type":"string","description":"Building name (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.parties.sender.bank.address.buildingName","typeLabel":"string"},"floor":{"type":"string","description":"Floor or level (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.parties.sender.bank.address.floor","typeLabel":"string"},"postCode":{"type":"string","description":"Postal or ZIP code (up to 16 characters).","maxLength":16,"uniqueKey":"oneOf.0.data.parties.sender.bank.address.postCode","typeLabel":"string"},"townName":{"type":"string","description":"City or town (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.parties.sender.bank.address.townName","typeLabel":"string"},"districtName":{"type":"string","description":"District or neighbourhood (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.parties.sender.bank.address.districtName","typeLabel":"string"},"countrySubdivision":{"type":"string","description":"State, province or region, for example LA for Lagos (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.parties.sender.bank.address.countrySubdivision","typeLabel":"string"},"department":{"type":"string","description":"Department (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.parties.sender.bank.address.department","typeLabel":"string"},"subDepartment":{"type":"string","description":"Sub-department (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.parties.sender.bank.address.subDepartment","typeLabel":"string"},"addressLines":{"type":"array","description":"Up to 7 free-text address lines of up to 70 characters each. Use only when you cannot send the structured fields above. string maxLength: 70]","items":{"oneOf":[{}],"uniqueKey":"oneOf.0.data.parties.sender.bank.address.addressLines.items.[INDEX]","typeLabel":"any"},"maxItems":7,"uniqueKey":"oneOf.0.data.parties.sender.bank.address.addressLines","typeLabel":"any[]"}},"required":["country"],"uniqueKey":"oneOf.0.data.parties.sender.bank.address","typeLabel":"object"}},"required":["name","countryCode"],"uniqueKey":"oneOf.0.data.parties.sender.bank","typeLabel":"object"}},"required":["entityType"],"isRequired":true,"uniqueKey":"oneOf.0.data.parties.sender","typeLabel":"object"},"beneficiaries":{"type":"array","description":"The parties credited: at least one. A card transaction has exactly one, the merchant. {","items":{"type":"object","description":"A party that is credited, with the payment item allocated to it.","properties":{"entityType":{"type":"string","description":"What the party is: INDIVIDUAL or BUSINESS.","enum":["INDIVIDUAL","BUSINESS"],"isRequired":true,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].entityType","typeLabel":"enum\u003cstring>"},"transferDetails":{"type":"object","description":"This beneficiary's part of the payment: a payment item.","properties":{"amount":{"oneOf":[{"type":"number","description":"Amount allocated to this beneficiary, in the debit currency (financials.currency). Greater than zero; the amounts of all beneficiaries must add up to financials.totalAmount. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","isRequired":true,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].transferDetails.amount.oneOf.0","typeLabel":"number"},{"type":"string","description":"Amount allocated to this beneficiary, in the debit currency (financials.currency). Greater than zero; the amounts of all beneficiaries must add up to financials.totalAmount. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","pattern":"^(?:\\d+|\\d+\\.\\d+)$","isRequired":true,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].transferDetails.amount.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].transferDetails.amount","typeLabel":"number | string"},"currency":{"type":"string","description":"ISO 4217 currency of amount. Must equal financials.currency.","maxLength":3,"minLength":3,"isRequired":true,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].transferDetails.currency","typeLabel":"string"},"paymentItemId":{"type":"string","description":"Identifies this payment item: this beneficiary's share of the payment. Must be unique within the message when sent.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].transferDetails.paymentItemId","typeLabel":"string"},"endToEndId":{"type":"string","description":"Optional. A reference the sender gives this payment item that stays the same through every bank and payment system it passes through, so the one payment can be traced end to end (ISO 20022 EndToEndId, up to 35 characters). For a card payment it is the retrieval reference number (RRN).","maxLength":35,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].transferDetails.endToEndId","typeLabel":"string"},"instructionId":{"type":"string","description":"Optional. Your own internal reference for this instruction (up to 35 characters). Unlike endToEndId, it is not passed on to other banks.","maxLength":35,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].transferDetails.instructionId","typeLabel":"string"},"uetr":{"type":"string","description":"Optional. The unique end-to-end transaction reference: a UUID v4 that identifies one cross-border payment on the SWIFT network, the same for every bank on its route. Domestic payments, such as NIP, do not have one.","format":"uuid","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].transferDetails.uetr","typeLabel":"string\u003cuuid>"},"baseAmount":{"oneOf":[{"type":"number","description":"This item's amount converted to baseCurrency. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].transferDetails.baseAmount.oneOf.0","typeLabel":"number"},{"type":"string","description":"This item's amount converted to baseCurrency. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].transferDetails.baseAmount.oneOf.1","typeLabel":"string"}],"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].transferDetails.baseAmount","typeLabel":"number | string"},"baseCurrency":{"type":"string","description":"ISO 4217 house base currency of baseAmount, typically USD.","maxLength":3,"minLength":3,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].transferDetails.baseCurrency","typeLabel":"string"},"creditAmount":{"oneOf":[{"type":"number","description":"The amount the beneficiary receives in their own currency (creditCurrency), when a currency conversion applies. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].transferDetails.creditAmount.oneOf.0","typeLabel":"number"},{"type":"string","description":"The amount the beneficiary receives in their own currency (creditCurrency), when a currency conversion applies. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].transferDetails.creditAmount.oneOf.1","typeLabel":"string"}],"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].transferDetails.creditAmount","typeLabel":"number | string"},"creditCurrency":{"type":"string","description":"ISO 4217 currency of creditAmount.","maxLength":3,"minLength":3,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].transferDetails.creditCurrency","typeLabel":"string"},"purposeCode":{"type":"string","description":"Why this payment is made (ISO External Purpose code), for example SUPP (supplier), SALA (salary) or TRAD (trade).","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].transferDetails.purposeCode","typeLabel":"string"},"remittanceInfo":{"type":"string","description":"Free-text narrative or invoice reference for the payment (up to 140 characters).","maxLength":140,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].transferDetails.remittanceInfo","typeLabel":"string"}},"required":["amount","currency"],"isRequired":true,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].transferDetails","typeLabel":"object"},"entityId":{"type":"string","description":"Our id for the party. Send it whenever you have it: it skips the lookup.","maxLength":128,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].entityId","typeLabel":"string"},"externalEntityId":{"type":"string","description":"Your own id for the party. Required when entityId is not sent.","maxLength":128,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].externalEntityId","typeLabel":"string"},"name":{"type":"string","description":"The party's full legal name (up to 140 characters). Required when entityId is not sent.","maxLength":140,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].name","typeLabel":"string"},"accountNumber":{"type":"string","description":"The party's account number. Used to find or create the party when entityId is not sent, which is when it is required.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].accountNumber","typeLabel":"string"},"nationality":{"type":"string","description":"ISO 3166-1 alpha-2 nationality; for a business, its country of incorporation.","maxLength":2,"minLength":2,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].nationality","typeLabel":"string"},"countryOfResidence":{"type":"string","description":"ISO 3166-1 alpha-2 country the party lives in.","maxLength":2,"minLength":2,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].countryOfResidence","typeLabel":"string"},"dateOfBirth":{"type":"string","description":"Date of birth, YYYY-MM-DD (individuals only).","pattern":"^\\d{4}-\\d{2}-\\d{2}$","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].dateOfBirth","typeLabel":"string"},"placeOfBirth":{"type":"object","description":"Where the party was born (individuals only).","properties":{"city":{"type":"string","description":"City of birth.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].placeOfBirth.city","typeLabel":"string"},"country":{"type":"string","description":"ISO 3166-1 alpha-2 country of birth.","maxLength":2,"minLength":2,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].placeOfBirth.country","typeLabel":"string"}},"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].placeOfBirth","typeLabel":"object"},"address":{"type":"object","description":"The party's postal address.","properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code. Required whenever an address is sent.","maxLength":2,"minLength":2,"isRequired":true,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].address.country","typeLabel":"string"},"streetName":{"type":"string","description":"Street name (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].address.streetName","typeLabel":"string"},"buildingNumber":{"type":"string","description":"Building number (up to 16 characters).","maxLength":16,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].address.buildingNumber","typeLabel":"string"},"buildingName":{"type":"string","description":"Building name (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].address.buildingName","typeLabel":"string"},"floor":{"type":"string","description":"Floor or level (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].address.floor","typeLabel":"string"},"postCode":{"type":"string","description":"Postal or ZIP code (up to 16 characters).","maxLength":16,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].address.postCode","typeLabel":"string"},"townName":{"type":"string","description":"City or town (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].address.townName","typeLabel":"string"},"districtName":{"type":"string","description":"District or neighbourhood (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].address.districtName","typeLabel":"string"},"countrySubdivision":{"type":"string","description":"State, province or region, for example LA for Lagos (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].address.countrySubdivision","typeLabel":"string"},"department":{"type":"string","description":"Department (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].address.department","typeLabel":"string"},"subDepartment":{"type":"string","description":"Sub-department (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].address.subDepartment","typeLabel":"string"},"addressLines":{"type":"array","description":"Up to 7 free-text address lines of up to 70 characters each. Use only when you cannot send the structured fields above. string maxLength: 70]","items":{"oneOf":[{}],"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].address.addressLines.items.[INDEX]","typeLabel":"any"},"maxItems":7,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].address.addressLines","typeLabel":"any[]"}},"required":["country"],"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].address","typeLabel":"object"},"identification":{"type":"array","description":"Government or organisation identifiers for the party. {","items":{"type":"object","description":"One government or organisation identifier.","properties":{"scheme":{"type":"string","description":"The kind of identifier, for example BVN, NIN or PASSPORT.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].identification.items.[INDEX].scheme","typeLabel":"string"},"id":{"type":"string","description":"The identifier itself.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].identification.items.[INDEX].id","typeLabel":"string"},"issuerCountry":{"type":"string","description":"ISO 3166-1 alpha-2 country that issued it.","maxLength":2,"minLength":2,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].identification.items.[INDEX].issuerCountry","typeLabel":"string"},"issueDate":{"type":"string","description":"When it was issued, YYYY-MM-DD.","pattern":"^\\d{4}-\\d{2}-\\d{2}$","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].identification.items.[INDEX].issueDate","typeLabel":"string"},"expiryDate":{"type":"string","description":"When it expires, YYYY-MM-DD.","pattern":"^\\d{4}-\\d{2}-\\d{2}$","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].identification.items.[INDEX].expiryDate","typeLabel":"string"}},"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].identification.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].identification","typeLabel":"object[]"},"account":{"type":"object","description":"The account involved in the transaction.","properties":{"id":{"type":"string","description":"The account identifier. Send IBANs in upper case with no spaces.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].account.id","typeLabel":"string"},"scheme":{"type":"string","description":"How the account id is formatted.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].account.scheme","typeLabel":"string"},"currency":{"type":"string","description":"ISO 4217 currency of the account, for example NGN.","maxLength":3,"minLength":3,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].account.currency","typeLabel":"string"},"type":{"type":"string","description":"ISO cash account type, for example CACC (current) or SVGS (savings).","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].account.type","typeLabel":"string"},"name":{"type":"string","description":"The account holder's name, when it differs from the party's name.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].account.name","typeLabel":"string"},"balance":{"oneOf":[{"type":"number","description":"The account's balance when the transaction was made, in the account's currency, as a number or a decimal string. Rules read it as the Account Balance variable. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].account.balance.oneOf.0","typeLabel":"number"},{"type":"string","description":"The account's balance when the transaction was made, in the account's currency, as a number or a decimal string. Rules read it as the Account Balance variable. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].account.balance.oneOf.1","typeLabel":"string"}],"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].account.balance","typeLabel":"number | string"}},"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].account","typeLabel":"object"},"bank":{"type":"object","description":"The party's bank.","properties":{"name":{"type":"string","description":"Name of the bank or institution (up to 140 characters).","maxLength":140,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank.name","typeLabel":"string"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country the bank is in.","maxLength":2,"minLength":2,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank.countryCode","typeLabel":"string"},"bic":{"type":"string","description":"The bank's SWIFT code (ISO 9362), 8 or 11 characters. It is screened against sanctioned institutions and high-risk countries.","pattern":"^(?:[A-Za-z0-9]{8}|[A-Za-z0-9]{11})$","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank.bic","typeLabel":"string"},"clearingMemberId":{"type":"string","description":"The bank's domestic clearing identifier, for example a bank or NIBSS code.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank.clearingMemberId","typeLabel":"string"},"lei":{"type":"string","description":"The bank's Legal Entity Identifier, 20 characters.","maxLength":20,"minLength":20,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank.lei","typeLabel":"string"},"address":{"type":"object","description":"The bank's postal address.","properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code. Required whenever an address is sent.","maxLength":2,"minLength":2,"isRequired":true,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank.address.country","typeLabel":"string"},"streetName":{"type":"string","description":"Street name (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank.address.streetName","typeLabel":"string"},"buildingNumber":{"type":"string","description":"Building number (up to 16 characters).","maxLength":16,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank.address.buildingNumber","typeLabel":"string"},"buildingName":{"type":"string","description":"Building name (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank.address.buildingName","typeLabel":"string"},"floor":{"type":"string","description":"Floor or level (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank.address.floor","typeLabel":"string"},"postCode":{"type":"string","description":"Postal or ZIP code (up to 16 characters).","maxLength":16,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank.address.postCode","typeLabel":"string"},"townName":{"type":"string","description":"City or town (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank.address.townName","typeLabel":"string"},"districtName":{"type":"string","description":"District or neighbourhood (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank.address.districtName","typeLabel":"string"},"countrySubdivision":{"type":"string","description":"State, province or region, for example LA for Lagos (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank.address.countrySubdivision","typeLabel":"string"},"department":{"type":"string","description":"Department (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank.address.department","typeLabel":"string"},"subDepartment":{"type":"string","description":"Sub-department (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank.address.subDepartment","typeLabel":"string"},"addressLines":{"type":"array","description":"Up to 7 free-text address lines of up to 70 characters each. Use only when you cannot send the structured fields above. string maxLength: 70]","items":{"oneOf":[{}],"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank.address.addressLines.items.[INDEX]","typeLabel":"any"},"maxItems":7,"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank.address.addressLines","typeLabel":"any[]"}},"required":["country"],"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank.address","typeLabel":"object"}},"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].bank","typeLabel":"object"},"ultimateParty":{"type":"object","description":"The real originator or beneficiary, where different from this party. It is screened.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].ultimateParty","typeLabel":"object"},"contact":{"type":"object","description":"How to reach the party. Used for link analysis only.","properties":{"email":{"type":"string","description":"The party's email address.","format":"email","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].contact.email","typeLabel":"string\u003cemail>"},"phone":{"type":"string","description":"The party's phone number, for example +2348012345678.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].contact.phone","typeLabel":"string"}},"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].contact","typeLabel":"object"},"riskRating":{"type":"string","description":"Your own risk rating for the party, for example low, medium or high. Used as the customer's risk rating when we have none (variable Risk Rating).","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].riskRating","typeLabel":"string"},"accountAge":{"type":"number","description":"How long the account has been open, in the unit you give in accountAgeUnit. Send the two together. The Account Age variable holds whole years, so it is worked out as days ÷ 365, weeks ÷ 52 or months ÷ 12, rounded down.","format":"float","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].accountAge","typeLabel":"number\u003cfloat>"},"accountAgeUnit":{"type":"string","description":"The unit accountAge is stated in: days, weeks, months or years. You choose it; send it with accountAge.","enum":["days","weeks","months","years"],"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].accountAgeUnit","typeLabel":"enum\u003cstring>"},"expectedMonthlyVolume":{"type":"number","description":"The transaction volume expected each month, declared or assigned at onboarding. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","format":"float","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].expectedMonthlyVolume","typeLabel":"number\u003cfloat>"},"accountStatus":{"type":"string","description":"The account's status: active, frozen, closed, suspended, restricted or dormant.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].accountStatus","typeLabel":"string"},"beneficialOwnerRiskTier":{"type":"string","description":"The highest risk tier among the beneficial owners or directors.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].beneficialOwnerRiskTier","typeLabel":"string"},"productLimit":{"type":"number","description":"The configured transaction and daily limit for the account or product. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","format":"float","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].productLimit","typeLabel":"number\u003cfloat>"},"internalBlacklistFlag":{"type":"boolean","description":"true when the party is blocked because of a previously confirmed risk.","uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX].internalBlacklistFlag","typeLabel":"boolean"}},"required":["entityType","transferDetails"],"uniqueKey":"oneOf.0.data.parties.beneficiaries.items.[INDEX]","typeLabel":"object"},"minItems":1,"isRequired":true,"uniqueKey":"oneOf.0.data.parties.beneficiaries","typeLabel":"object[]"}},"required":["sender","beneficiaries"],"isRequired":true,"uniqueKey":"oneOf.0.data.parties","typeLabel":"object"},"creationDateTime":{"type":"string","description":"When the transaction was created at the source (UTC, ISO 8601).","isRequired":true,"uniqueKey":"oneOf.0.data.creationDateTime","typeLabel":"string"},"transactionReference":{"type":"string","description":"Your unique reference for this transaction. It identifies the transaction, not the event: the idempotency key is the event's externalEventId.","isRequired":true,"uniqueKey":"oneOf.0.data.transactionReference","typeLabel":"string"},"isInternational":{"type":"boolean","description":"Optional. Whether the transaction crosses a border. You decide; the platform never works it out from the countries. When left out, the transaction is not treated as international.","uniqueKey":"oneOf.0.data.isInternational","typeLabel":"boolean"},"isNight":{"type":"boolean","description":"Optional. Whether the transaction happened at night. You decide; the platform never works it out from the time. When left out, the transaction is not treated as a night transaction.","uniqueKey":"oneOf.0.data.isNight","typeLabel":"boolean"},"intermediaryBanks":{"type":"array","description":"Up to 3 intermediary banks the payment passes through, in order. They are screened. {","items":{"type":"object","description":"A bank or other financial institution.","properties":{"name":{"type":"string","description":"Name of the bank or institution (up to 140 characters).","maxLength":140,"uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX].name","typeLabel":"string"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country the bank is in.","maxLength":2,"minLength":2,"uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX].countryCode","typeLabel":"string"},"bic":{"type":"string","description":"The bank's SWIFT code (ISO 9362), 8 or 11 characters. It is screened against sanctioned institutions and high-risk countries.","pattern":"^(?:[A-Za-z0-9]{8}|[A-Za-z0-9]{11})$","uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX].bic","typeLabel":"string"},"clearingMemberId":{"type":"string","description":"The bank's domestic clearing identifier, for example a bank or NIBSS code.","uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX].clearingMemberId","typeLabel":"string"},"lei":{"type":"string","description":"The bank's Legal Entity Identifier, 20 characters.","maxLength":20,"minLength":20,"uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX].lei","typeLabel":"string"},"address":{"type":"object","description":"The bank's postal address.","properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code. Required whenever an address is sent.","maxLength":2,"minLength":2,"isRequired":true,"uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX].address.country","typeLabel":"string"},"streetName":{"type":"string","description":"Street name (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX].address.streetName","typeLabel":"string"},"buildingNumber":{"type":"string","description":"Building number (up to 16 characters).","maxLength":16,"uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX].address.buildingNumber","typeLabel":"string"},"buildingName":{"type":"string","description":"Building name (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX].address.buildingName","typeLabel":"string"},"floor":{"type":"string","description":"Floor or level (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX].address.floor","typeLabel":"string"},"postCode":{"type":"string","description":"Postal or ZIP code (up to 16 characters).","maxLength":16,"uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX].address.postCode","typeLabel":"string"},"townName":{"type":"string","description":"City or town (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX].address.townName","typeLabel":"string"},"districtName":{"type":"string","description":"District or neighbourhood (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX].address.districtName","typeLabel":"string"},"countrySubdivision":{"type":"string","description":"State, province or region, for example LA for Lagos (up to 35 characters).","maxLength":35,"uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX].address.countrySubdivision","typeLabel":"string"},"department":{"type":"string","description":"Department (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX].address.department","typeLabel":"string"},"subDepartment":{"type":"string","description":"Sub-department (up to 70 characters).","maxLength":70,"uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX].address.subDepartment","typeLabel":"string"},"addressLines":{"type":"array","description":"Up to 7 free-text address lines of up to 70 characters each. Use only when you cannot send the structured fields above. string maxLength: 70]","items":{"oneOf":[{}],"uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX].address.addressLines.items.[INDEX]","typeLabel":"any"},"maxItems":7,"uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX].address.addressLines","typeLabel":"any[]"}},"required":["country"],"uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX].address","typeLabel":"object"}},"uniqueKey":"oneOf.0.data.intermediaryBanks.items.[INDEX]","typeLabel":"object"},"maxItems":3,"uniqueKey":"oneOf.0.data.intermediaryBanks","typeLabel":"object[]"},"regulatoryReporting":{"type":"array","description":"Codes an authority requires you to report with the transaction. {","items":{"type":"object","description":"One reporting code for one authority.","properties":{"authorityCountry":{"type":"string","description":"ISO 3166-1 alpha-2 country of the reporting authority.","maxLength":2,"minLength":2,"uniqueKey":"oneOf.0.data.regulatoryReporting.items.[INDEX].authorityCountry","typeLabel":"string"},"detailsCode":{"type":"string","description":"A code the authority defines.","uniqueKey":"oneOf.0.data.regulatoryReporting.items.[INDEX].detailsCode","typeLabel":"string"},"detailsText":{"type":"string","description":"Free text (up to 35 characters per line).","uniqueKey":"oneOf.0.data.regulatoryReporting.items.[INDEX].detailsText","typeLabel":"string"}},"uniqueKey":"oneOf.0.data.regulatoryReporting.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.0.data.regulatoryReporting","typeLabel":"object[]"},"isoRef":{"type":"string","description":"The ISO 20022 message the transaction maps to, for example pacs.008. Informational.","uniqueKey":"oneOf.0.data.isoRef","typeLabel":"string"},"card":{"type":"object","description":"Card details. Required when paymentType.channel is CARD, and not allowed otherwise.","properties":{"panToken":{"type":"string","description":"A token standing in for the card number. Never send the raw PAN.","isRequired":true,"uniqueKey":"oneOf.0.data.card.panToken","typeLabel":"string"},"bin":{"type":"string","description":"The first 6 to 8 digits of the card number (the bank identification number).","pattern":"^\\d{6,8}$","isRequired":true,"uniqueKey":"oneOf.0.data.card.bin","typeLabel":"string"},"cardScheme":{"type":"string","description":"The card network.","isRequired":true,"uniqueKey":"oneOf.0.data.card.cardScheme","typeLabel":"string"},"authType":{"type":"string","description":"The kind of authorisation message.","isRequired":true,"uniqueKey":"oneOf.0.data.card.authType","typeLabel":"string"},"entryMode":{"type":"string","description":"How the card was read: CHIP, CONTACTLESS, SWIPE, MANUAL, ECOM (online), TOKEN_WALLET or FALLBACK.","enum":["CHIP","CONTACTLESS","SWIPE","MANUAL","ECOM","TOKEN_WALLET","FALLBACK"],"isRequired":true,"uniqueKey":"oneOf.0.data.card.entryMode","typeLabel":"enum\u003cstring>"},"stan":{"type":"string","description":"System trace audit number (ISO 8583 field 11).","isRequired":true,"uniqueKey":"oneOf.0.data.card.stan","typeLabel":"string"},"rrn":{"type":"string","description":"Retrieval reference number (ISO 8583 field 37).","isRequired":true,"uniqueKey":"oneOf.0.data.card.rrn","typeLabel":"string"},"mcc":{"type":"string","description":"The merchant category code (ISO 8583 field 18).","isRequired":true,"uniqueKey":"oneOf.0.data.card.mcc","typeLabel":"string"},"merchantId":{"type":"string","description":"The card acceptor (merchant) id (ISO 8583 field 42).","isRequired":true,"uniqueKey":"oneOf.0.data.card.merchantId","typeLabel":"string"},"terminalId":{"type":"string","description":"The terminal id (ISO 8583 field 41).","isRequired":true,"uniqueKey":"oneOf.0.data.card.terminalId","typeLabel":"string"},"acquirerId":{"type":"string","description":"The acquiring institution id (ISO 8583 field 32).","isRequired":true,"uniqueKey":"oneOf.0.data.card.acquirerId","typeLabel":"string"},"transmissionDateTime":{"type":"string","description":"When the message was transmitted (ISO 8583 field 7), ISO 8601.","isRequired":true,"uniqueKey":"oneOf.0.data.card.transmissionDateTime","typeLabel":"string"},"cardholderPresent":{"type":"boolean","description":"Whether the cardholder was physically present.","isRequired":true,"uniqueKey":"oneOf.0.data.card.cardholderPresent","typeLabel":"boolean"},"isCrossBorder":{"type":"boolean","description":"Whether the card's country differs from the merchant's country.","isRequired":true,"uniqueKey":"oneOf.0.data.card.isCrossBorder","typeLabel":"boolean"},"cardType":{"type":"string","description":"The kind of card.","uniqueKey":"oneOf.0.data.card.cardType","typeLabel":"string"},"cardCountry":{"type":"string","description":"ISO 3166-1 alpha-2 country that issued the card.","maxLength":2,"minLength":2,"uniqueKey":"oneOf.0.data.card.cardCountry","typeLabel":"string"},"cvvResult":{"type":"string","description":"The result of the card security code check.","uniqueKey":"oneOf.0.data.card.cvvResult","typeLabel":"string"},"threeDSecure":{"type":"object","description":"The 3-D Secure (online payment authentication) result. Required for ECOM.","properties":{"status":{"type":"string","description":"The 3-D Secure outcome: Y authenticated, N failed, A attempted, U unavailable, R rejected.","enum":["Y","N","A","U","R"],"uniqueKey":"oneOf.0.data.card.threeDSecure.status","typeLabel":"enum\u003cstring>"},"eci":{"type":"string","description":"The two-digit electronic commerce indicator the card network returns, for example 05.","uniqueKey":"oneOf.0.data.card.threeDSecure.eci","typeLabel":"string"},"version":{"type":"string","description":"The 3-D Secure version, for example 2.2.0.","uniqueKey":"oneOf.0.data.card.threeDSecure.version","typeLabel":"string"}},"uniqueKey":"oneOf.0.data.card.threeDSecure","typeLabel":"object"},"posConditionCode":{"type":"string","description":"Point-of-sale condition code: whether the card was present (ISO 8583 field 25).","uniqueKey":"oneOf.0.data.card.posConditionCode","typeLabel":"string"},"pinVerified":{"type":"boolean","description":"Whether the PIN was verified.","uniqueKey":"oneOf.0.data.card.pinVerified","typeLabel":"boolean"}},"required":["panToken","bin","cardScheme","authType","entryMode","stan","rrn","mcc","merchantId","terminalId","acquirerId","transmissionDateTime","cardholderPresent","isCrossBorder"],"uniqueKey":"oneOf.0.data.card","typeLabel":"object"},"status":{"type":"string","description":"Whether the transaction completed, is pending, or failed.","uniqueKey":"oneOf.0.data.status","typeLabel":"string"},"settled_at":{"type":"string","description":"When the transaction settled, if it has.","format":"date-time","uniqueKey":"oneOf.0.data.settled_at","typeLabel":"string\u003cdate-time>"},"processed_at":{"type":"string","description":"When the platform received or processed the transaction.","format":"date-time","uniqueKey":"oneOf.0.data.processed_at","typeLabel":"string\u003cdate-time>"},"fee_amount":{"oneOf":[{"type":"number","description":"The transaction fee, network fee, FX fee or service charge, as a number or a decimal string. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","uniqueKey":"oneOf.0.data.fee_amount.oneOf.0","typeLabel":"number"},{"type":"string","description":"The transaction fee, network fee, FX fee or service charge, as a number or a decimal string. In the currency's main unit, not its smallest one: naira, not kobo; dollars, not cents. Use decimals for the fraction, so 1500.50 is 1,500 naira and 50 kobo.","uniqueKey":"oneOf.0.data.fee_amount.oneOf.1","typeLabel":"string"}],"uniqueKey":"oneOf.0.data.fee_amount","typeLabel":"number | string"},"process_method":{"type":"string","description":"The raw, un-normalised value from your platform for how the transaction was processed.","uniqueKey":"oneOf.0.data.process_method","typeLabel":"string"},"is_approved":{"type":"boolean","description":"Whether the transaction was approved.","uniqueKey":"oneOf.0.data.is_approved","typeLabel":"boolean"},"is_reversal":{"type":"boolean","description":"Whether this transaction reverses an earlier one.","uniqueKey":"oneOf.0.data.is_reversal","typeLabel":"boolean"},"is_international_override":{"type":"boolean","description":"Whether the transaction crosses a border, when you want to override isInternational for this one variable.","uniqueKey":"oneOf.0.data.is_international_override","typeLabel":"boolean"},"is_triggered_by_user":{"type":"boolean","description":"Whether the user initiated the transaction directly, as opposed to the system or a schedule.","uniqueKey":"oneOf.0.data.is_triggered_by_user","typeLabel":"boolean"},"is_round_amount":{"type":"boolean","description":"Whether the amount is a round figure, for example 1,000, 5,000 or 10,000.","uniqueKey":"oneOf.0.data.is_round_amount","typeLabel":"boolean"},"is_large_transaction":{"type":"boolean","description":"Whether the amount exceeds a limit set by the bank, customer or product.","uniqueKey":"oneOf.0.data.is_large_transaction","typeLabel":"boolean"},"counterparty":{"type":"object","description":"What you know about the counterparty that we cannot work out from the parties themselves.","properties":{"industry":{"type":"object","description":"The counterparty's industry.","properties":{"code":{"type":"string","description":"The counterparty's industry or merchant category code.","uniqueKey":"oneOf.0.data.counterparty.industry.code","typeLabel":"string"}},"uniqueKey":"oneOf.0.data.counterparty.industry","typeLabel":"object"},"is_linked_account":{"type":"boolean","description":"Whether the counterparty's account is linked to the sender's own profile.","uniqueKey":"oneOf.0.data.counterparty.is_linked_account","typeLabel":"boolean"},"is_new":{"type":"boolean","description":"Whether the entity has never used this counterparty before.","uniqueKey":"oneOf.0.data.counterparty.is_new","typeLabel":"boolean"},"age_days":{"type":"number","description":"How long the counterparty relationship has existed, in days.","format":"float","uniqueKey":"oneOf.0.data.counterparty.age_days","typeLabel":"number\u003cfloat>"},"risk_tier":{"type":"string","description":"The risk score or tier you assigned the counterparty.","uniqueKey":"oneOf.0.data.counterparty.risk_tier","typeLabel":"string"},"is_watchlisted":{"type":"boolean","description":"Whether the counterparty is on an internal or external watchlist.","uniqueKey":"oneOf.0.data.counterparty.is_watchlisted","typeLabel":"boolean"}},"uniqueKey":"oneOf.0.data.counterparty","typeLabel":"object"},"device":{"type":"object","description":"The digital channel the transaction came through.","properties":{"is_proxy":{"type":"boolean","description":"Whether the device's IP address appears to use a VPN, proxy or TOR.","uniqueKey":"oneOf.0.data.device.is_proxy","typeLabel":"boolean"},"ipAddress":{"type":"string","description":"The client's public IP address (IPv4 or IPv6).","uniqueKey":"oneOf.0.data.device.ipAddress","typeLabel":"string"},"geoCountry":{"type":"string","description":"ISO 3166-1 alpha-2 country the device reports or the IP address maps to.","maxLength":2,"minLength":2,"uniqueKey":"oneOf.0.data.device.geoCountry","typeLabel":"string"},"sessionId":{"type":"string","description":"Your reference for the session.","uniqueKey":"oneOf.0.data.device.sessionId","typeLabel":"string"},"deviceFingerprint":{"type":"string","description":"A stable identifier for the device. It is compared with the entity's last login device.","uniqueKey":"oneOf.0.data.device.deviceFingerprint","typeLabel":"string"},"userAgent":{"type":"string","description":"The raw user agent string.","uniqueKey":"oneOf.0.data.device.userAgent","typeLabel":"string"},"geo":{"type":"object","description":"The device's position.","properties":{"lat":{"type":"number","description":"Latitude in degrees, -90 to 90.","format":"float","uniqueKey":"oneOf.0.data.device.geo.lat","typeLabel":"number\u003cfloat>"},"lon":{"type":"number","description":"Longitude in degrees, -180 to 180.","format":"float","uniqueKey":"oneOf.0.data.device.geo.lon","typeLabel":"number\u003cfloat>"},"accuracyM":{"type":"number","description":"How accurate the position is, in metres.","format":"float","uniqueKey":"oneOf.0.data.device.geo.accuracyM","typeLabel":"number\u003cfloat>"}},"uniqueKey":"oneOf.0.data.device.geo","typeLabel":"object"},"channelApp":{"type":"string","description":"The app or channel the customer used.","enum":["MOBILE_APP","WEB","USSD","ATM","POS","BRANCH","API"],"uniqueKey":"oneOf.0.data.device.channelApp","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.0.data.device","typeLabel":"object"},"crypto":{"type":"object","description":"Details of a crypto transaction.","properties":{"asset_type":{"type":"string","description":"The crypto asset, for example BTC, ETH, USDT, a stablecoin, a privacy coin or an NFT.","uniqueKey":"oneOf.0.data.crypto.asset_type","typeLabel":"string"},"wallet_address":{"type":"string","description":"The origin or destination blockchain address.","uniqueKey":"oneOf.0.data.crypto.wallet_address","typeLabel":"string"},"travel_rule_complete":{"type":"boolean","description":"Whether the originator and beneficiary information the travel rule requires is complete.","uniqueKey":"oneOf.0.data.crypto.travel_rule_complete","typeLabel":"boolean"},"mixer_exposure":{"type":"boolean","description":"Whether the wallet address has direct or indirect exposure to a mixer or tumbler.","uniqueKey":"oneOf.0.data.crypto.mixer_exposure","typeLabel":"boolean"},"sanctioned_address_exposure":{"type":"boolean","description":"Whether the wallet address has exposure to a sanctioned wallet, address or entity.","uniqueKey":"oneOf.0.data.crypto.sanctioned_address_exposure","typeLabel":"boolean"}},"uniqueKey":"oneOf.0.data.crypto","typeLabel":"object"}},"required":["paymentType","financials","parties","creationDateTime","transactionReference"],"isRequired":true,"uniqueKey":"oneOf.0.data","typeLabel":"object"},"schemaVersion":{"type":"string","description":"Version of this payload schema. Only major version 1 is supported.","pattern":"^1\\.\\d+$|^1\\.\\d+\\.\\d+$","example":"1.2","uniqueKey":"oneOf.0.schemaVersion","typeLabel":"string"},"lifecycleId":{"type":"string","description":"Your identifier tying together several events that belong to the same lifecycle, for example one session or one payment.","maxLength":128,"uniqueKey":"oneOf.0.lifecycleId","typeLabel":"string"},"metadata":{"type":"object","description":"Information about the event itself, the same on every event type. Any other key you add is kept and passed on.","properties":{"source":{"type":"string","description":"The system the event came from, for example core-banking.","uniqueKey":"oneOf.0.metadata.source","typeLabel":"string"},"appVersion":{"type":"string","description":"The version of your app that sent the event.","uniqueKey":"oneOf.0.metadata.appVersion","typeLabel":"string"},"traceId":{"type":"string","description":"A W3C trace id: 32 hex characters.","pattern":"^[0-9a-fA-F]{32}$","uniqueKey":"oneOf.0.metadata.traceId","typeLabel":"string"},"testMode":{"type":"boolean","description":"true evaluates and logs the event but never acts on it (no alerts, cases or shadow runs).","uniqueKey":"oneOf.0.metadata.testMode","typeLabel":"boolean"}},"uniqueKey":"oneOf.0.metadata","typeLabel":"object"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"TM account-activity event for a login (data.loginMethod; routed by eventCategory).","required":["eventType","externalEventId","eventStatus","eventCategory","data"],"properties":{"eventType":{"type":"string","description":"The kind of event: transaction or account_activity (a login or a card event).","enum":["account_activity"],"example":"account_activity","isRequired":true,"uniqueKey":"oneOf.1.eventType","typeLabel":"enum\u003cstring>"},"externalEventId":{"type":"string","description":"Your own unique id for this event. It is the idempotency key: sending the same id again returns the original evaluations instead of starting new ones.","maxLength":128,"isRequired":true,"uniqueKey":"oneOf.1.externalEventId","typeLabel":"string"},"eventStatus":{"type":"string","description":"Where the event is in its life. Only a triggering status starts a workflow (a transaction: acknowledged, pending; a login: attempted; a card event: requested, activated, pin_changed); any other status is stored and still updates the aggregates. Which statuses are allowed depends on the kind of event.","enum":["acknowledged","pending","completed","attempted","successful","requested","issued","activated","frozen","suspended","unfrozen","pin_changed","closed","canceled","failed","reversed"],"example":"acknowledged","isRequired":true,"uniqueKey":"oneOf.1.eventStatus","typeLabel":"enum\u003cstring>"},"eventCategory":{"type":"string","description":"Routes the event to the workflows tagged with this category, for example finance or kyc.","enum":["finance","kyc","travel_rule","user_event","gambling","audit_trail_event","crypto","insurance","investment"],"isRequired":true,"uniqueKey":"oneOf.1.eventCategory","typeLabel":"enum\u003cstring>"},"data":{"type":"object","description":"A login or a card event: one flat object. A login carries loginMethod, a card event cardAction.","properties":{"entityType":{"type":"string","description":"What the customer is: INDIVIDUAL or BUSINESS.","enum":["INDIVIDUAL","BUSINESS"],"isRequired":true,"uniqueKey":"oneOf.1.data.entityType","typeLabel":"enum\u003cstring>"},"entityId":{"type":"string","description":"Our id for the customer. Send it whenever you have it: it skips the lookup.","uniqueKey":"oneOf.1.data.entityId","typeLabel":"string"},"externalEntityId":{"type":"string","description":"Your own id for the customer. Required when entityId is not sent.","uniqueKey":"oneOf.1.data.externalEntityId","typeLabel":"string"},"name":{"type":"string","description":"The customer's full name. Required when entityId is not sent.","uniqueKey":"oneOf.1.data.name","typeLabel":"string"},"accountNumber":{"type":"string","description":"The customer's account number. Used to find or create the customer when entityId is not sent, which is when it is required.","uniqueKey":"oneOf.1.data.accountNumber","typeLabel":"string"},"loginMethod":{"type":"string","description":"How the customer logged in. Its presence makes this a login event; a card event carries cardAction instead, and exactly one of the two is required.","enum":["biometric","password","sso","passwordless"],"uniqueKey":"oneOf.1.data.loginMethod","typeLabel":"enum\u003cstring>"},"cardAction":{"type":"string","description":"Whether a card was created or updated. Its presence makes this a card event; a login carries loginMethod instead, and exactly one of the two is required.","enum":["created","updated"],"uniqueKey":"oneOf.1.data.cardAction","typeLabel":"enum\u003cstring>"},"timestamp":{"type":"string","description":"When it happened (ISO 8601). Required for a card event; for a login it defaults to the time the event is received.","format":"date-time","uniqueKey":"oneOf.1.data.timestamp","typeLabel":"string\u003cdate-time>"},"externalLoginId":{"type":"string","description":"Your own id for this login.","uniqueKey":"oneOf.1.data.externalLoginId","typeLabel":"string"},"externalSessionId":{"oneOf":[{"type":"string","description":"Your own id for the session the login opened, or null.","uniqueKey":"oneOf.1.data.externalSessionId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Your own id for the session the login opened, or null.","uniqueKey":"oneOf.1.data.externalSessionId.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.data.externalSessionId","typeLabel":"string | null"},"username":{"type":"string","description":"The username used to log in.","uniqueKey":"oneOf.1.data.username","typeLabel":"string"},"sso":{"type":"string","description":"The single-sign-on provider, when loginMethod is sso.","enum":["okta","google","apple"],"uniqueKey":"oneOf.1.data.sso","typeLabel":"enum\u003cstring>"},"loginStatus":{"type":"string","description":"How this login attempt went. This is a field of the login; the event's own eventStatus is separate.","enum":["attempted","failed","mfa","rejected","successful"],"uniqueKey":"oneOf.1.data.loginStatus","typeLabel":"enum\u003cstring>"},"device":{"type":"object","description":"The device the login was made from.","properties":{"registeredDevice":{"type":"boolean","description":"Whether the device is one the customer has registered with you.","uniqueKey":"oneOf.1.data.device.registeredDevice","typeLabel":"boolean"},"externalDeviceId":{"type":"string","description":"Your own stable id for the device.","uniqueKey":"oneOf.1.data.device.externalDeviceId","typeLabel":"string"},"ipAddressV4":{"type":"string","description":"The client's public IPv4 address.","uniqueKey":"oneOf.1.data.device.ipAddressV4","typeLabel":"string"},"ipAddressV6":{"type":"string","description":"The client's public IPv6 address.","uniqueKey":"oneOf.1.data.device.ipAddressV6","typeLabel":"string"},"ipAddressLatitude":{"type":"number","description":"Latitude of the place the IP address maps to.","format":"float","uniqueKey":"oneOf.1.data.device.ipAddressLatitude","typeLabel":"number\u003cfloat>"},"ipAddressLongitude":{"type":"number","description":"Longitude of the place the IP address maps to.","format":"float","uniqueKey":"oneOf.1.data.device.ipAddressLongitude","typeLabel":"number\u003cfloat>"},"ipAddressCity":{"type":"string","description":"City the IP address maps to.","uniqueKey":"oneOf.1.data.device.ipAddressCity","typeLabel":"string"},"ipAddressRegion":{"type":"string","description":"State or region the IP address maps to.","uniqueKey":"oneOf.1.data.device.ipAddressRegion","typeLabel":"string"},"ipAddressCountryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country the IP address maps to, for example NG.","uniqueKey":"oneOf.1.data.device.ipAddressCountryCode","typeLabel":"string"},"deviceIsp":{"type":"string","description":"The internet service provider or mobile operator, for example MTN Nigeria.","maxLength":2048,"uniqueKey":"oneOf.1.data.device.deviceIsp","typeLabel":"string"},"deviceType":{"type":"string","description":"The kind of device, for example mobile or desktop.","uniqueKey":"oneOf.1.data.device.deviceType","typeLabel":"string"},"deviceOs":{"type":"string","description":"The operating system and its version, for example iOS 18.1.","uniqueKey":"oneOf.1.data.device.deviceOs","typeLabel":"string"},"screenResolution":{"type":"string","description":"The screen size in pixels, for example 1179x2556.","uniqueKey":"oneOf.1.data.device.screenResolution","typeLabel":"string"},"timezoneOffset":{"type":"string","description":"The device's offset from UTC, for example +01:00.","uniqueKey":"oneOf.1.data.device.timezoneOffset","typeLabel":"string"},"browserType":{"type":"string","description":"The browser, for example Safari.","uniqueKey":"oneOf.1.data.device.browserType","typeLabel":"string"},"browserVersion":{"type":"string","description":"The browser's version, for example 18.1.","uniqueKey":"oneOf.1.data.device.browserVersion","typeLabel":"string"},"browserLanguage":{"type":"string","description":"The browser's language, for example en-NG.","uniqueKey":"oneOf.1.data.device.browserLanguage","typeLabel":"string"},"cookiesEnabled":{"type":"string","description":"Whether cookies are enabled: true or false, or not available, excluded or error when it could not be read.","enum":["true","false","not available","excluded","error"],"uniqueKey":"oneOf.1.data.device.cookiesEnabled","typeLabel":"enum\u003cstring>"},"javascriptEnabled":{"type":"string","description":"Whether JavaScript is enabled: true or false, or not available, excluded or error when it could not be read.","enum":["true","false","not available","excluded","error"],"uniqueKey":"oneOf.1.data.device.javascriptEnabled","typeLabel":"enum\u003cstring>"},"firstSeenAt":{"type":"string","description":"When you first saw this device (ISO 8601).","format":"date-time","uniqueKey":"oneOf.1.data.device.firstSeenAt","typeLabel":"string\u003cdate-time>"},"newDevice":{"type":"boolean","description":"Whether this device is new to the customer.","uniqueKey":"oneOf.1.data.device.newDevice","typeLabel":"boolean"}},"uniqueKey":"oneOf.1.data.device","typeLabel":"object"},"credentialChangeType":{"type":"string","description":"What was changed in the session this login opened.","enum":["password","email","phone","mfa_device","username"],"uniqueKey":"oneOf.1.data.credentialChangeType","typeLabel":"enum\u003cstring>"},"externalCardId":{"type":"string","description":"Your own id for the card.","uniqueKey":"oneOf.1.data.externalCardId","typeLabel":"string"},"cardName":{"type":"string","description":"The name shown on the card.","uniqueKey":"oneOf.1.data.cardName","typeLabel":"string"},"productName":{"type":"string","description":"The name of the card product, for example Platinum Virtual Debit.","uniqueKey":"oneOf.1.data.productName","typeLabel":"string"},"productCode":{"type":"string","description":"Your code for the card product.","uniqueKey":"oneOf.1.data.productCode","typeLabel":"string"},"cardType":{"type":"string","description":"The kind of card.","enum":["debit","credit","prepaid","charge"],"uniqueKey":"oneOf.1.data.cardType","typeLabel":"enum\u003cstring>"},"formFactor":{"type":"string","description":"Whether the card is physical or virtual.","enum":["physical","virtual"],"uniqueKey":"oneOf.1.data.formFactor","typeLabel":"enum\u003cstring>"},"issuedAt":{"type":"string","description":"When the card was issued (ISO 8601).","format":"date-time","uniqueKey":"oneOf.1.data.issuedAt","typeLabel":"string\u003cdate-time>"},"expiryMonth":{"type":"string","description":"The month the card expires, 1 to 12 or 01 to 12.","pattern":"^(0?[1-9]|1[0-2])$","uniqueKey":"oneOf.1.data.expiryMonth","typeLabel":"string"},"expiryYear":{"type":"string","description":"The year the card expires, four digits.","pattern":"^\\d{4}$","uniqueKey":"oneOf.1.data.expiryYear","typeLabel":"string"},"pinUpdatedAt":{"type":"string","description":"When the card's PIN was last changed (ISO 8601).","format":"date-time","uniqueKey":"oneOf.1.data.pinUpdatedAt","typeLabel":"string\u003cdate-time>"},"pinUpdateMethod":{"type":"string","description":"How the PIN was changed.","enum":["app","ivr","agent","atm","other"],"uniqueKey":"oneOf.1.data.pinUpdateMethod","typeLabel":"enum\u003cstring>"},"isLocked":{"type":"boolean","description":"Whether the card is locked.","uniqueKey":"oneOf.1.data.isLocked","typeLabel":"boolean"},"lockExpiresAt":{"type":"string","description":"When the lock on the card ends (ISO 8601).","format":"date-time","uniqueKey":"oneOf.1.data.lockExpiresAt","typeLabel":"string\u003cdate-time>"},"cardStatus":{"type":"string","description":"The card's status. This is a field of the card; the event's own eventStatus is separate.","enum":["active","inactive","deactivated","terminated","pending_activation","expired"],"uniqueKey":"oneOf.1.data.cardStatus","typeLabel":"enum\u003cstring>"},"statusDetail":{"type":"string","description":"Free text explaining the card's status, for example Awaiting first use.","uniqueKey":"oneOf.1.data.statusDetail","typeLabel":"string"},"channel":{"type":"string","description":"The channel the card event came through, for example mobile-app.","uniqueKey":"oneOf.1.data.channel","typeLabel":"string"},"role":{"type":"string","description":"What the entity is to the card, for example primary.","uniqueKey":"oneOf.1.data.role","typeLabel":"string"},"currency":{"type":"string","description":"ISO 4217 currency of the account.","maxLength":3,"minLength":3,"uniqueKey":"oneOf.1.data.currency","typeLabel":"string"},"replacesExternalCardId":{"type":"string","description":"Your id of the card this one replaces, when it is a replacement.","uniqueKey":"oneOf.1.data.replacesExternalCardId","typeLabel":"string"},"replacementReason":{"type":"string","description":"Why the card was replaced, for example lost.","uniqueKey":"oneOf.1.data.replacementReason","typeLabel":"string"}},"required":["entityType"],"isRequired":true,"uniqueKey":"oneOf.1.data","typeLabel":"object"},"schemaVersion":{"type":"string","description":"Version of this payload schema. Only major version 1 is supported.","pattern":"^1\\.\\d+$|^1\\.\\d+\\.\\d+$","example":"1.2","uniqueKey":"oneOf.1.schemaVersion","typeLabel":"string"},"lifecycleId":{"type":"string","description":"Your identifier tying together several events that belong to the same lifecycle, for example one session or one payment.","maxLength":128,"uniqueKey":"oneOf.1.lifecycleId","typeLabel":"string"},"metadata":{"type":"object","description":"Information about the event itself, the same on every event type. Any other key you add is kept and passed on.","properties":{"source":{"type":"string","description":"The system the event came from, for example core-banking.","uniqueKey":"oneOf.1.metadata.source","typeLabel":"string"},"appVersion":{"type":"string","description":"The version of your app that sent the event.","uniqueKey":"oneOf.1.metadata.appVersion","typeLabel":"string"},"traceId":{"type":"string","description":"A W3C trace id: 32 hex characters.","pattern":"^[0-9a-fA-F]{32}$","uniqueKey":"oneOf.1.metadata.traceId","typeLabel":"string"},"testMode":{"type":"boolean","description":"true evaluates and logs the event but never acts on it (no alerts, cases or shadow runs).","uniqueKey":"oneOf.1.metadata.testMode","typeLabel":"boolean"}},"uniqueKey":"oneOf.1.metadata","typeLabel":"object"}},"uniqueKey":"oneOf.1","typeLabel":"object"},{"type":"object","description":"TM account-activity event for a card (data.cardAction; routed by eventCategory).","required":["eventType","externalEventId","eventStatus","eventCategory","data"],"properties":{"eventType":{"type":"string","description":"The kind of event: transaction or account_activity (a login or a card event).","enum":["account_activity"],"example":"account_activity","isRequired":true,"uniqueKey":"oneOf.2.eventType","typeLabel":"enum\u003cstring>"},"externalEventId":{"type":"string","description":"Your own unique id for this event. It is the idempotency key: sending the same id again returns the original evaluations instead of starting new ones.","maxLength":128,"isRequired":true,"uniqueKey":"oneOf.2.externalEventId","typeLabel":"string"},"eventStatus":{"type":"string","description":"Where the event is in its life. Only a triggering status starts a workflow (a transaction: acknowledged, pending; a login: attempted; a card event: requested, activated, pin_changed); any other status is stored and still updates the aggregates. Which statuses are allowed depends on the kind of event.","enum":["acknowledged","pending","completed","attempted","successful","requested","issued","activated","frozen","suspended","unfrozen","pin_changed","closed","canceled","failed","reversed"],"example":"acknowledged","isRequired":true,"uniqueKey":"oneOf.2.eventStatus","typeLabel":"enum\u003cstring>"},"eventCategory":{"type":"string","description":"Routes the event to the workflows tagged with this category, for example finance or kyc.","enum":["finance","kyc","travel_rule","user_event","gambling","audit_trail_event","crypto","insurance","investment"],"isRequired":true,"uniqueKey":"oneOf.2.eventCategory","typeLabel":"enum\u003cstring>"},"data":{"type":"object","description":"A login or a card event: one flat object. A login carries loginMethod, a card event cardAction.","properties":{"entityType":{"type":"string","description":"What the customer is: INDIVIDUAL or BUSINESS.","enum":["INDIVIDUAL","BUSINESS"],"isRequired":true,"uniqueKey":"oneOf.2.data.entityType","typeLabel":"enum\u003cstring>"},"entityId":{"type":"string","description":"Our id for the customer. Send it whenever you have it: it skips the lookup.","uniqueKey":"oneOf.2.data.entityId","typeLabel":"string"},"externalEntityId":{"type":"string","description":"Your own id for the customer. Required when entityId is not sent.","uniqueKey":"oneOf.2.data.externalEntityId","typeLabel":"string"},"name":{"type":"string","description":"The customer's full name. Required when entityId is not sent.","uniqueKey":"oneOf.2.data.name","typeLabel":"string"},"accountNumber":{"type":"string","description":"The customer's account number. Used to find or create the customer when entityId is not sent, which is when it is required.","uniqueKey":"oneOf.2.data.accountNumber","typeLabel":"string"},"loginMethod":{"type":"string","description":"How the customer logged in. Its presence makes this a login event; a card event carries cardAction instead, and exactly one of the two is required.","enum":["biometric","password","sso","passwordless"],"uniqueKey":"oneOf.2.data.loginMethod","typeLabel":"enum\u003cstring>"},"cardAction":{"type":"string","description":"Whether a card was created or updated. Its presence makes this a card event; a login carries loginMethod instead, and exactly one of the two is required.","enum":["created","updated"],"uniqueKey":"oneOf.2.data.cardAction","typeLabel":"enum\u003cstring>"},"timestamp":{"type":"string","description":"When it happened (ISO 8601). Required for a card event; for a login it defaults to the time the event is received.","format":"date-time","uniqueKey":"oneOf.2.data.timestamp","typeLabel":"string\u003cdate-time>"},"externalLoginId":{"type":"string","description":"Your own id for this login.","uniqueKey":"oneOf.2.data.externalLoginId","typeLabel":"string"},"externalSessionId":{"oneOf":[{"type":"string","description":"Your own id for the session the login opened, or null.","uniqueKey":"oneOf.2.data.externalSessionId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Your own id for the session the login opened, or null.","uniqueKey":"oneOf.2.data.externalSessionId.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.2.data.externalSessionId","typeLabel":"string | null"},"username":{"type":"string","description":"The username used to log in.","uniqueKey":"oneOf.2.data.username","typeLabel":"string"},"sso":{"type":"string","description":"The single-sign-on provider, when loginMethod is sso.","enum":["okta","google","apple"],"uniqueKey":"oneOf.2.data.sso","typeLabel":"enum\u003cstring>"},"loginStatus":{"type":"string","description":"How this login attempt went. This is a field of the login; the event's own eventStatus is separate.","enum":["attempted","failed","mfa","rejected","successful"],"uniqueKey":"oneOf.2.data.loginStatus","typeLabel":"enum\u003cstring>"},"device":{"type":"object","description":"The device the login was made from.","properties":{"registeredDevice":{"type":"boolean","description":"Whether the device is one the customer has registered with you.","uniqueKey":"oneOf.2.data.device.registeredDevice","typeLabel":"boolean"},"externalDeviceId":{"type":"string","description":"Your own stable id for the device.","uniqueKey":"oneOf.2.data.device.externalDeviceId","typeLabel":"string"},"ipAddressV4":{"type":"string","description":"The client's public IPv4 address.","uniqueKey":"oneOf.2.data.device.ipAddressV4","typeLabel":"string"},"ipAddressV6":{"type":"string","description":"The client's public IPv6 address.","uniqueKey":"oneOf.2.data.device.ipAddressV6","typeLabel":"string"},"ipAddressLatitude":{"type":"number","description":"Latitude of the place the IP address maps to.","format":"float","uniqueKey":"oneOf.2.data.device.ipAddressLatitude","typeLabel":"number\u003cfloat>"},"ipAddressLongitude":{"type":"number","description":"Longitude of the place the IP address maps to.","format":"float","uniqueKey":"oneOf.2.data.device.ipAddressLongitude","typeLabel":"number\u003cfloat>"},"ipAddressCity":{"type":"string","description":"City the IP address maps to.","uniqueKey":"oneOf.2.data.device.ipAddressCity","typeLabel":"string"},"ipAddressRegion":{"type":"string","description":"State or region the IP address maps to.","uniqueKey":"oneOf.2.data.device.ipAddressRegion","typeLabel":"string"},"ipAddressCountryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country the IP address maps to, for example NG.","uniqueKey":"oneOf.2.data.device.ipAddressCountryCode","typeLabel":"string"},"deviceIsp":{"type":"string","description":"The internet service provider or mobile operator, for example MTN Nigeria.","maxLength":2048,"uniqueKey":"oneOf.2.data.device.deviceIsp","typeLabel":"string"},"deviceType":{"type":"string","description":"The kind of device, for example mobile or desktop.","uniqueKey":"oneOf.2.data.device.deviceType","typeLabel":"string"},"deviceOs":{"type":"string","description":"The operating system and its version, for example iOS 18.1.","uniqueKey":"oneOf.2.data.device.deviceOs","typeLabel":"string"},"screenResolution":{"type":"string","description":"The screen size in pixels, for example 1179x2556.","uniqueKey":"oneOf.2.data.device.screenResolution","typeLabel":"string"},"timezoneOffset":{"type":"string","description":"The device's offset from UTC, for example +01:00.","uniqueKey":"oneOf.2.data.device.timezoneOffset","typeLabel":"string"},"browserType":{"type":"string","description":"The browser, for example Safari.","uniqueKey":"oneOf.2.data.device.browserType","typeLabel":"string"},"browserVersion":{"type":"string","description":"The browser's version, for example 18.1.","uniqueKey":"oneOf.2.data.device.browserVersion","typeLabel":"string"},"browserLanguage":{"type":"string","description":"The browser's language, for example en-NG.","uniqueKey":"oneOf.2.data.device.browserLanguage","typeLabel":"string"},"cookiesEnabled":{"type":"string","description":"Whether cookies are enabled: true or false, or not available, excluded or error when it could not be read.","enum":["true","false","not available","excluded","error"],"uniqueKey":"oneOf.2.data.device.cookiesEnabled","typeLabel":"enum\u003cstring>"},"javascriptEnabled":{"type":"string","description":"Whether JavaScript is enabled: true or false, or not available, excluded or error when it could not be read.","enum":["true","false","not available","excluded","error"],"uniqueKey":"oneOf.2.data.device.javascriptEnabled","typeLabel":"enum\u003cstring>"},"firstSeenAt":{"type":"string","description":"When you first saw this device (ISO 8601).","format":"date-time","uniqueKey":"oneOf.2.data.device.firstSeenAt","typeLabel":"string\u003cdate-time>"},"newDevice":{"type":"boolean","description":"Whether this device is new to the customer.","uniqueKey":"oneOf.2.data.device.newDevice","typeLabel":"boolean"}},"uniqueKey":"oneOf.2.data.device","typeLabel":"object"},"credentialChangeType":{"type":"string","description":"What was changed in the session this login opened.","enum":["password","email","phone","mfa_device","username"],"uniqueKey":"oneOf.2.data.credentialChangeType","typeLabel":"enum\u003cstring>"},"externalCardId":{"type":"string","description":"Your own id for the card.","uniqueKey":"oneOf.2.data.externalCardId","typeLabel":"string"},"cardName":{"type":"string","description":"The name shown on the card.","uniqueKey":"oneOf.2.data.cardName","typeLabel":"string"},"productName":{"type":"string","description":"The name of the card product, for example Platinum Virtual Debit.","uniqueKey":"oneOf.2.data.productName","typeLabel":"string"},"productCode":{"type":"string","description":"Your code for the card product.","uniqueKey":"oneOf.2.data.productCode","typeLabel":"string"},"cardType":{"type":"string","description":"The kind of card.","enum":["debit","credit","prepaid","charge"],"uniqueKey":"oneOf.2.data.cardType","typeLabel":"enum\u003cstring>"},"formFactor":{"type":"string","description":"Whether the card is physical or virtual.","enum":["physical","virtual"],"uniqueKey":"oneOf.2.data.formFactor","typeLabel":"enum\u003cstring>"},"issuedAt":{"type":"string","description":"When the card was issued (ISO 8601).","format":"date-time","uniqueKey":"oneOf.2.data.issuedAt","typeLabel":"string\u003cdate-time>"},"expiryMonth":{"type":"string","description":"The month the card expires, 1 to 12 or 01 to 12.","pattern":"^(0?[1-9]|1[0-2])$","uniqueKey":"oneOf.2.data.expiryMonth","typeLabel":"string"},"expiryYear":{"type":"string","description":"The year the card expires, four digits.","pattern":"^\\d{4}$","uniqueKey":"oneOf.2.data.expiryYear","typeLabel":"string"},"pinUpdatedAt":{"type":"string","description":"When the card's PIN was last changed (ISO 8601).","format":"date-time","uniqueKey":"oneOf.2.data.pinUpdatedAt","typeLabel":"string\u003cdate-time>"},"pinUpdateMethod":{"type":"string","description":"How the PIN was changed.","enum":["app","ivr","agent","atm","other"],"uniqueKey":"oneOf.2.data.pinUpdateMethod","typeLabel":"enum\u003cstring>"},"isLocked":{"type":"boolean","description":"Whether the card is locked.","uniqueKey":"oneOf.2.data.isLocked","typeLabel":"boolean"},"lockExpiresAt":{"type":"string","description":"When the lock on the card ends (ISO 8601).","format":"date-time","uniqueKey":"oneOf.2.data.lockExpiresAt","typeLabel":"string\u003cdate-time>"},"cardStatus":{"type":"string","description":"The card's status. This is a field of the card; the event's own eventStatus is separate.","enum":["active","inactive","deactivated","terminated","pending_activation","expired"],"uniqueKey":"oneOf.2.data.cardStatus","typeLabel":"enum\u003cstring>"},"statusDetail":{"type":"string","description":"Free text explaining the card's status, for example Awaiting first use.","uniqueKey":"oneOf.2.data.statusDetail","typeLabel":"string"},"channel":{"type":"string","description":"The channel the card event came through, for example mobile-app.","uniqueKey":"oneOf.2.data.channel","typeLabel":"string"},"role":{"type":"string","description":"What the entity is to the card, for example primary.","uniqueKey":"oneOf.2.data.role","typeLabel":"string"},"currency":{"type":"string","description":"ISO 4217 currency of the account.","maxLength":3,"minLength":3,"uniqueKey":"oneOf.2.data.currency","typeLabel":"string"},"replacesExternalCardId":{"type":"string","description":"Your id of the card this one replaces, when it is a replacement.","uniqueKey":"oneOf.2.data.replacesExternalCardId","typeLabel":"string"},"replacementReason":{"type":"string","description":"Why the card was replaced, for example lost.","uniqueKey":"oneOf.2.data.replacementReason","typeLabel":"string"}},"required":["entityType"],"isRequired":true,"uniqueKey":"oneOf.2.data","typeLabel":"object"},"schemaVersion":{"type":"string","description":"Version of this payload schema. Only major version 1 is supported.","pattern":"^1\\.\\d+$|^1\\.\\d+\\.\\d+$","example":"1.2","uniqueKey":"oneOf.2.schemaVersion","typeLabel":"string"},"lifecycleId":{"type":"string","description":"Your identifier tying together several events that belong to the same lifecycle, for example one session or one payment.","maxLength":128,"uniqueKey":"oneOf.2.lifecycleId","typeLabel":"string"},"metadata":{"type":"object","description":"Information about the event itself, the same on every event type. Any other key you add is kept and passed on.","properties":{"source":{"type":"string","description":"The system the event came from, for example core-banking.","uniqueKey":"oneOf.2.metadata.source","typeLabel":"string"},"appVersion":{"type":"string","description":"The version of your app that sent the event.","uniqueKey":"oneOf.2.metadata.appVersion","typeLabel":"string"},"traceId":{"type":"string","description":"A W3C trace id: 32 hex characters.","pattern":"^[0-9a-fA-F]{32}$","uniqueKey":"oneOf.2.metadata.traceId","typeLabel":"string"},"testMode":{"type":"boolean","description":"true evaluates and logs the event but never acts on it (no alerts, cases or shadow runs).","uniqueKey":"oneOf.2.metadata.testMode","typeLabel":"boolean"}},"uniqueKey":"oneOf.2.metadata","typeLabel":"object"}},"uniqueKey":"oneOf.2","typeLabel":"object"},{"type":"object","description":"Customer Onboarding (CO) event. Routed by `workflowId` and `workflowVersion`, not by `eventCategory`.","required":["eventType","externalEventId","eventStatus","workflowId","workflowVersion","data"],"properties":{"eventType":{"type":"string","enum":["onboarding"],"description":"The kind of event. Always `onboarding` for a Customer Onboarding event.","example":"onboarding","isRequired":true,"uniqueKey":"oneOf.3.eventType","typeLabel":"enum\u003cstring>"},"externalEventId":{"type":"string","description":"Your own unique id for this event. It is the idempotency key: sending the same id again returns the original evaluations instead of starting new ones.","maxLength":128,"isRequired":true,"uniqueKey":"oneOf.3.externalEventId","typeLabel":"string"},"eventStatus":{"type":"string","description":"Where the event is in its life.","example":"pending","isRequired":true,"uniqueKey":"oneOf.3.eventStatus","typeLabel":"string"},"workflowId":{"type":"string","description":"The id of the Customer Onboarding workflow to run. Copy it from the workflow's request payload in Cowork.","example":"wfw_6aec90ccc34dc00ea4303800","isRequired":true,"uniqueKey":"oneOf.3.workflowId","typeLabel":"string"},"workflowVersion":{"type":"integer","description":"The version of the workflow to run.","example":1,"isRequired":true,"uniqueKey":"oneOf.3.workflowVersion","typeLabel":"integer"},"data":{"type":"object","description":"The entity being onboarded, plus any extra fields the workflow's Initiator node asks for.","required":["externalEntityId","entityType"],"properties":{"externalEntityId":{"type":"string","description":"Your own id for the entity being onboarded.","isRequired":true,"uniqueKey":"oneOf.3.data.externalEntityId","typeLabel":"string"},"entityType":{"type":"string","enum":["INDIVIDUAL","BUSINESS"],"description":"What the entity is: INDIVIDUAL or BUSINESS.","isRequired":true,"uniqueKey":"oneOf.3.data.entityType","typeLabel":"enum\u003cstring>"},"entityId":{"type":"string","description":"Youverify entity id. Send it when the workflow is for an existing entity.","uniqueKey":"oneOf.3.data.entityId","typeLabel":"string"}},"additionalProperties":true,"isRequired":true,"uniqueKey":"oneOf.3.data","typeLabel":"object"},"metadata":{"type":"object","description":"Free-form metadata about the event.","additionalProperties":true,"uniqueKey":"oneOf.3.metadata","typeLabel":"object"}},"uniqueKey":"oneOf.3","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"transaction":{"title":"transaction","description":"A NIP transfer from an individual to a business beneficiary.","value":{"eventType":"transaction","schemaVersion":"1.2","eventCategory":"finance","eventStatus":"acknowledged","externalEventId":"EVT-20261030-0001","lifecycleId":"LC-5521-session-88","metadata":{"source":"mobile-app","appVersion":"4.12.0"},"data":{"transactionReference":"TXN-20261030-0001","creationDateTime":"2026-10-30T10:04:12.000Z","paymentType":{"channel":"TRANSFER","rail":"NIP","direction":"OUTBOUND","instrument":"CREDIT_TRANSFER","clearingSystem":"NIBSS","localInstrument":"NIP-INSTANT","categoryPurpose":"SUPP"},"financials":{"totalAmount":"4950000.00","currency":"NGN","totalBaseAmount":"3300.00","baseCurrency":"USD","exchangeRate":"1500.00","rateSource":"CBN","rateTimestamp":"2026-10-30T10:00:00.000Z","chargeBearer":"SHAR"},"parties":{"sender":{"entityId":"6ae459c0b99fb556a487f12f","externalEntityId":"cust-1042","entityType":"INDIVIDUAL","name":"Chinedu Okafor","accountNumber":"0123456789","nationality":"NG","countryOfResidence":"NG","dateOfBirth":"1988-04-17","placeOfBirth":{"city":"Enugu","country":"NG"},"address":{"streetName":"Adeola Odeku Street","buildingNumber":"12","townName":"Victoria Island","countrySubdivision":"Lagos","postCode":"101241","country":"NG"},"identification":[{"scheme":"BVN","id":"22123456789","issuerCountry":"NG"}],"account":{"id":"0123456789","scheme":"NUBAN","currency":"NGN","type":"CURRENT","name":"Chinedu Okafor","balance":"9800000.00"},"bank":{"name":"Example Bank Plc","countryCode":"NG","bic":"EXBKNGLA"},"contact":{"email":"chinedu@example.com","phone":"+2348012345678"},"riskRating":"medium","accountAge":420,"accountAgeUnit":"days","expectedMonthlyVolume":3000000,"accountStatus":"active","productLimit":10000000,"internalBlacklistFlag":false},"beneficiaries":[{"externalEntityId":"ben-7731","entityType":"BUSINESS","name":"Adeyemi Trading Ltd","accountNumber":"2012345678","address":{"townName":"Accra","country":"GH"},"account":{"id":"2012345678","scheme":"BBAN","currency":"GHS"},"bank":{"name":"Example Ghana Bank","countryCode":"GH","bic":"EXGHGHAC"},"transferDetails":{"paymentItemId":"1","endToEndId":"E2E-20261030-0001","amount":"4950000.00","currency":"NGN","creditAmount":"49500.00","creditCurrency":"GHS","purposeCode":"SUPP","remittanceInfo":"Invoice INV-2209"}}]},"device":{"ipAddress":"102.89.1.55","geoCountry":"NG","sessionId":"sess-88","deviceFingerprint":"dfp-3f9a2c","userAgent":"ExampleApp/4.12.0 (iOS 18.1)","channelApp":"MOBILE_APP","geo":{"lat":6.4281,"lon":3.4219,"accuracyM":30}},"isInternational":true,"isNight":false}}},"login":{"title":"login","description":"A login attempt (account_activity with data.loginMethod).","value":{"eventType":"account_activity","schemaVersion":"1.2","eventCategory":"user_event","eventStatus":"attempted","externalEventId":"EVT-LOGIN-20261030-0001","lifecycleId":"LC-5521-session-88","data":{"entityId":"6ae459c0b99fb556a487f12f","externalEntityId":"cust-1042","entityType":"INDIVIDUAL","timestamp":"2026-10-30T10:02:30.000Z","externalLoginId":"login-90017","externalSessionId":"sess-88","username":"chinedu.okafor","loginMethod":"password","loginStatus":"successful","credentialChangeType":"password","device":{"registeredDevice":false,"newDevice":true,"externalDeviceId":"dfp-3f9a2c","ipAddressV4":"102.89.1.55","ipAddressLatitude":6.4281,"ipAddressLongitude":3.4219,"ipAddressCity":"Lagos","ipAddressRegion":"Lagos","ipAddressCountryCode":"NG","deviceIsp":"MTN Nigeria","deviceType":"mobile","deviceOs":"iOS 18.1","screenResolution":"1179x2556","timezoneOffset":"+01:00","browserType":"Safari","browserVersion":"18.1","browserLanguage":"en-NG","cookiesEnabled":"true","javascriptEnabled":"true","firstSeenAt":"2026-10-30T10:02:30.000Z"}},"metadata":{"appVersion":"4.12.0"}}},"onboarding":{"title":"onboarding","description":"A Customer Onboarding event for a business. Fields in `data` beyond the entity fields depend on the workflow (here, a CAC registration number).","value":{"eventType":"onboarding","externalEventId":"EVT-ONB-20261106-0001","eventStatus":"pending","workflowId":"wfw_6aec90ccc34dc00ea4303800","workflowVersion":1,"metadata":{},"data":{"externalEntityId":"cust-2087","entityType":"BUSINESS","cac_rc_number_registrationNumber":"RC1234567"}}},"card":{"title":"card","description":"A card created event (account_activity with data.cardAction).","value":{"eventType":"account_activity","schemaVersion":"1.2","eventCategory":"user_event","eventStatus":"requested","externalEventId":"EVT-CARD-20261030-0001","lifecycleId":"LC-5521-session-88","data":{"entityId":"6ae459c0b99fb556a487f12f","externalEntityId":"cust-1042","entityType":"INDIVIDUAL","timestamp":"2026-10-30T10:03:00.000Z","cardAction":"created","externalCardId":"card-55012","cardName":"Chinedu O.","productName":"Platinum Virtual Debit","productCode":"PLT-VDC","cardType":"debit","formFactor":"virtual","issuedAt":"2026-10-30T10:03:00.000Z","expiryMonth":"10","expiryYear":"2030","pinUpdatedAt":"2026-10-30T10:03:30.000Z","pinUpdateMethod":"app","isLocked":false,"lockExpiresAt":"2026-10-31T10:03:00.000Z","cardStatus":"pending_activation","statusDetail":"Awaiting first use","replacesExternalCardId":"card-44871","replacementReason":"lost","channel":"mobile-app","role":"primary","accountNumber":"0123456789","currency":"NGN"},"metadata":{"source":"mobile-app"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"7b4fbd3d-7dc2-4441-8cd7-21cf2b07c812":{"description":"Event accepted. `evaluations` lists any evaluations the event started.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","example":true,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"statusCode":{"type":"integer","enum":[202],"example":202,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"enum\u003cinteger>"},"message":{"type":"string","enum":["Event accepted"],"example":"Event accepted","isRequired":true,"uniqueKey":"message","typeLabel":"enum\u003cstring>"},"data":{"type":"object","properties":{"eventId":{"type":"string","isRequired":true,"uniqueKey":"data.eventId","typeLabel":"string"},"eventType":{"type":"string","isRequired":true,"uniqueKey":"data.eventType","typeLabel":"string"},"eventCategory":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.eventCategory.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.eventCategory.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.eventCategory","typeLabel":"string | null"},"eventStatus":{"type":"string","description":"PROCESSING while an evaluation the event started is still running, else PROCESSED. The event's own status (acknowledged, completed...) is on the thread.","enum":["PROCESSING","PROCESSED"],"isRequired":true,"uniqueKey":"data.eventStatus","typeLabel":"enum\u003cstring>"},"externalEventId":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.externalEventId.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.externalEventId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.externalEventId","typeLabel":"string | null"},"evaluations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].id","typeLabel":"string"},"status":{"type":"string","enum":["PENDING","RUNNING","PAUSED","SUCCESS","SUCCESS_PENDING_AML_CHECK","SUCCESS_PENDING_CASE_RESOLUTION","FAILED"],"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"decision":{"oneOf":[{"type":"string","enum":["BLOCK","FREEZE","HOLD","REVIEW","ALERT","ALLOW"],"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].decision.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["BLOCK","FREEZE","HOLD","REVIEW","ALERT","ALLOW"],"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].decision.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].decision","typeLabel":"enum\u003cstring> | null"},"decisionReason":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].decisionReason.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].decisionReason.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].decisionReason","typeLabel":"string | null"},"decisionFinal":{"type":"boolean","isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].decisionFinal","typeLabel":"boolean"},"riskScore":{"oneOf":[{"type":"number","format":"float","isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].riskScore.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].riskScore.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].riskScore","typeLabel":"number\u003cfloat> | null"},"actionsApplied":{"type":"array","items":{"type":"string","uniqueKey":"data.evaluations.items.[INDEX].actionsApplied.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].actionsApplied","typeLabel":"string[]"},"outcome":{"type":"object","properties":{"result":{"oneOf":[{"type":"string","enum":["approved","denied","manual_review","pending","no_action_defined"],"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].outcome.result.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["approved","denied","manual_review","pending","no_action_defined"],"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].outcome.result.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].outcome.result","typeLabel":"enum\u003cstring> | null"},"flagged":{"type":"array","items":{"type":"string","uniqueKey":"data.evaluations.items.[INDEX].outcome.flagged.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].outcome.flagged","typeLabel":"string[]"}},"required":["result","flagged"],"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].outcome","typeLabel":"object"},"entityId":{"oneOf":[{"type":"string","description":"CO evaluations only: the entity onboarded; null until a new one is known","uniqueKey":"data.evaluations.items.[INDEX].entityId.oneOf.0","typeLabel":"string"},{"type":"null","description":"CO evaluations only: the entity onboarded; null until a new one is known","uniqueKey":"data.evaluations.items.[INDEX].entityId.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.evaluations.items.[INDEX].entityId","typeLabel":"string | null"},"entityName":{"oneOf":[{"type":"string","description":"CO evaluations only","uniqueKey":"data.evaluations.items.[INDEX].entityName.oneOf.0","typeLabel":"string"},{"type":"null","description":"CO evaluations only","uniqueKey":"data.evaluations.items.[INDEX].entityName.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.evaluations.items.[INDEX].entityName","typeLabel":"string | null"},"workflow":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].workflow.id","typeLabel":"string"},"type":{"type":"string","enum":["TM_WORKFLOW"],"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].workflow.type","typeLabel":"enum\u003cstring>"},"monitoringType":{"oneOf":[{"type":"string","description":"REALTIME blocks in-stream; T_PLUS_1 runs after the transaction. Null for a backtest.","enum":["REALTIME","T_PLUS_1"],"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].workflow.monitoringType.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"REALTIME blocks in-stream; T_PLUS_1 runs after the transaction. Null for a backtest.","enum":["REALTIME","T_PLUS_1"],"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].workflow.monitoringType.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].workflow.monitoringType","typeLabel":"enum\u003cstring> | null"},"version":{"oneOf":[{"type":"integer","isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].workflow.version.oneOf.0","typeLabel":"integer"},{"type":"string","enum":["DRAFT"],"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].workflow.version.oneOf.1","typeLabel":"enum\u003cstring>"}],"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].workflow.version","typeLabel":"integer | enum\u003cstring>"}},"required":["id","type","monitoringType","version"],"uniqueKey":"data.evaluations.items.[INDEX].workflow","typeLabel":"object"},"timing":{"type":"object","properties":{"startedAt":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].timing.startedAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].timing.startedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].timing.startedAt","typeLabel":"string\u003cdate-time> | null"},"executionTimeMs":{"oneOf":[{"type":"number","format":"float","isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].timing.executionTimeMs.oneOf.0","typeLabel":"number\u003cfloat>"},{"type":"null","format":"float","isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].timing.executionTimeMs.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].timing.executionTimeMs","typeLabel":"number\u003cfloat> | null"}},"required":["startedAt","executionTimeMs"],"uniqueKey":"data.evaluations.items.[INDEX].timing","typeLabel":"object"},"lifecycleState":{"type":"string","description":"Where the evaluation stands after the engine ran; status is the engine's own.","enum":["COMPLETED","IN_PROGRESS","PENDING_AML_CHECK","PENDING_CASE_RESOLUTION","FAILED"],"uniqueKey":"data.evaluations.items.[INDEX].lifecycleState","typeLabel":"enum\u003cstring>"},"riskProfile":{"type":"object","description":"The risk profile behind the score.","properties":{"score":{"type":"number","description":"Overall risk score.","uniqueKey":"data.evaluations.items.[INDEX].riskProfile.score","typeLabel":"number"},"contributingFactors":{"type":"array","description":"What contributed to the score.","items":{"type":"object","properties":{"factor":{"type":"string","uniqueKey":"data.evaluations.items.[INDEX].riskProfile.contributingFactors.items.[INDEX].factor","typeLabel":"string"},"score":{"type":"number","uniqueKey":"data.evaluations.items.[INDEX].riskProfile.contributingFactors.items.[INDEX].score","typeLabel":"number"}},"uniqueKey":"data.evaluations.items.[INDEX].riskProfile.contributingFactors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.evaluations.items.[INDEX].riskProfile.contributingFactors","typeLabel":"object[]"}},"uniqueKey":"data.evaluations.items.[INDEX].riskProfile","typeLabel":"object"},"rulesMatched":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string","isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].rulesMatched.items.[INDEX].ruleId","typeLabel":"string"},"nodeId":{"type":"string","isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].rulesMatched.items.[INDEX].nodeId","typeLabel":"string"},"valueTriggered":{"type":"number","description":"The value at risk","format":"float","isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].rulesMatched.items.[INDEX].valueTriggered","typeLabel":"number\u003cfloat>"}},"required":["ruleId","nodeId","valueTriggered"],"uniqueKey":"data.evaluations.items.[INDEX].rulesMatched.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.evaluations.items.[INDEX].rulesMatched","typeLabel":"object[]"},"actions":{"type":"array","items":{"type":"object","properties":{"actionType":{"type":"string","isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].actions.items.[INDEX].actionType","typeLabel":"string"},"details":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].actions.items.[INDEX].details.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].actions.items.[INDEX].details.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.evaluations.items.[INDEX].actions.items.[INDEX].details","typeLabel":"string | null"}},"required":["actionType","details"],"uniqueKey":"data.evaluations.items.[INDEX].actions.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.evaluations.items.[INDEX].actions","typeLabel":"object[]"}},"required":["id","status","decision","decisionReason","decisionFinal","riskScore","actionsApplied","outcome"],"uniqueKey":"data.evaluations.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.evaluations","typeLabel":"object[]"},"count":{"type":"integer","isRequired":true,"uniqueKey":"data.count","typeLabel":"integer"},"replayed":{"type":"boolean","isRequired":true,"uniqueKey":"data.replayed","typeLabel":"boolean"}},"required":["eventId","eventType","eventCategory","eventStatus","externalEventId","evaluations","count","replayed"],"isRequired":true,"uniqueKey":"data","typeLabel":"object"},"links":{"type":"array","items":{"type":"object","uniqueKey":"links.items.[INDEX]","typeLabel":"object"},"uniqueKey":"links","typeLabel":"object[]"}},"required":["success","statusCode","message","data"],"uniqueKey":"","typeLabel":"object"},"example":{"success":true,"statusCode":202,"message":"Event accepted","data":{"eventId":"6aeb1d628cae1179877dab7f","eventType":"transaction","eventCategory":"finance","eventStatus":"PROCESSED","externalEventId":"EVT-mvsh54ho-2","evaluations":[{"id":"6aeb1d628cae1179877dab80","status":"SUCCESS","decision":"REVIEW","decisionReason":"Rule 'High-value outbound transfer' triggered: amount above 1,000,000 NGN","decisionFinal":true,"riskScore":62,"actionsApplied":["generate_alert","create_case"],"outcome":{"result":"manual_review","flagged":["Transfer amount above 1,000,000 NGN"]},"workflow":{"id":"6aeb1d628cae1179877dab01","type":"TM_WORKFLOW","monitoringType":"REALTIME","version":3},"timing":{"startedAt":"2026-11-04T19:20:00.000Z","executionTimeMs":45},"lifecycleState":"PENDING_CASE_RESOLUTION","riskProfile":{"score":62,"contributingFactors":[{"factor":"High-value outbound transfer","score":62}]},"rulesMatched":[{"ruleId":"rule_high_value","nodeId":"node_high_value","valueTriggered":1250000}],"actions":[{"actionType":"GENERATE_ALERT","details":null},{"actionType":"CREATE_CASE","details":"Routed to L1_AML_Queue"}]}],"count":1,"replayed":false},"links":[{}]},"examples":{"Example":{"title":"Example","value":{"success":true,"statusCode":202,"message":"Event accepted","data":{"eventId":"6aeb1d628cae1179877dab7f","eventType":"transaction","eventCategory":"finance","eventStatus":"PROCESSED","externalEventId":"EVT-mvsh54ho-2","evaluations":[{"id":"6aeb1d628cae1179877dab80","status":"SUCCESS","decision":"REVIEW","decisionReason":"Rule 'High-value outbound transfer' triggered: amount above 1,000,000 NGN","decisionFinal":true,"riskScore":62,"actionsApplied":["generate_alert","create_case"],"outcome":{"result":"manual_review","flagged":["Transfer amount above 1,000,000 NGN"]},"workflow":{"id":"6aeb1d628cae1179877dab01","type":"TM_WORKFLOW","monitoringType":"REALTIME","version":3},"timing":{"startedAt":"2026-11-04T19:20:00.000Z","executionTimeMs":45},"lifecycleState":"PENDING_CASE_RESOLUTION","riskProfile":{"score":62,"contributingFactors":[{"factor":"High-value outbound transfer","score":62}]},"rulesMatched":[{"ruleId":"rule_high_value","nodeId":"node_high_value","valueTriggered":1250000}],"actions":[{"actionType":"GENERATE_ALERT","details":null},{"actionType":"CREATE_CASE","details":"Routed to L1_AML_Queue"}]}],"count":1,"replayed":false},"links":[{}]}}},"exampleType":"examples"}},"exampleType":"examples"},"dcb55974-4091-484d-952c-4de5a66c5086":{"description":"Unauthorized — the token header is missing or invalid.","content":{"application/json":{"example":{"success":false,"statusCode":401,"message":"Permission denied","name":"UnauthorizedError","data":{}},"examples":{"Example":{"title":"Example","value":{"success":false,"statusCode":401,"message":"Permission denied","name":"UnauthorizedError","data":{}}}},"exampleType":"examples"}},"exampleType":"examples"},"6560b6e5-3007-4871-84cf-4cbb032118b4":{"description":"Too Many Requests — you have exceeded the rate limit; wait and retry.","content":{"application/json":{"example":{"success":false,"statusCode":429,"message":"Too many requests","name":"RateLimitError","data":{}},"examples":{"Example":{"title":"Example","value":{"success":false,"statusCode":429,"message":"Too many requests","name":"RateLimitError","data":{}}}},"exampleType":"examples"}},"exampleType":"examples"},"8c982336-86b2-409f-b33b-a2250decf69b":{"description":"Internal Server Error — a rare, unexpected failure on Youverify's side. Contact support@youverify.co if it persists.","content":{"application/json":{"example":{"success":false,"statusCode":500,"message":"Internal Server Error","name":"Error","data":{}},"examples":{"Example":{"title":"Example","value":{"success":false,"statusCode":500,"message":"Internal Server Error","name":"Error","data":{}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"39719aef-b4cc-402d-a267-540cad498841":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"token","description":"Your Youverify API secret key. Never expose client-side.","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"49a36cd0-cd2c-4da6-ba70-b7321387b7d2":{"url":"https://api.youverify.co","description":"Production (live, billed)"},"509d3856-c369-4c89-b879-31478ee0975e":{"url":"https://api.sandbox.youverify.co","description":"Sandbox (test data, not billed)"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"token","description":"Your Youverify API secret key. Never expose client-side.","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"token","type":"string","description":"Your Youverify API secret key. Never expose client-side.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"token"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"api-reference/specs/cowork.json"},"subdomain":"youverify","siteName":"Youverify","title":"Send an Event - Youverify","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/cowork/workflow-events-management/send-an-event","matchLevel":0},"fr":{"href":"/fr/introduction","matchLevel":4}}},"lastModified":"2026-11-06T08:07:10.487Z","originalFileLocation":"api-reference/cowork/workflow-events-management/send-an-event.mdx","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=\"One entry point for every event type. Send an event when something happens that your workflows should see, such as a payment, a login or a card action. Triggering events start evaluations; every other event is accepted and stored. ### Event types Pick the request variant that matches eventType. Every field in the schema lists its type, whether it is required and what it means. Use the Examples selector to see a complete payload for each variant. | Event | eventType | What it describes | Workflow type | | --- | --- | --- | --- | | Transaction | transaction | A payment, with its sender and beneficiaries in data. | Transaction Monitoring (TM) | | Login | account_activity | A customer login. Carries data.loginMethod. | Transaction Monitoring (TM) | | Card | account_activity | A card event. Carries data.cardAction (created or updated). | Transaction Monitoring (TM) | | Onboarding | onboarding | A customer onboarding event. Carries data.externalEntityId (required) and data.entityId when the workflow is for an existing entity. | Customer Onboarding (CO) | A login and a card event are both account_activity. Never send loginMethod and cardAction together. Pick the matching request variant below. The fields inside an onboarding event\u0026#x27;s data beyond the entity fields depend on the workflow you are running. ### Routing - transaction and account_activity events carry an eventCategory. Every event runs the live TM workflows tagged with that category whose eventTypes includes the event\u0026#x27;s type. A TM workflow must list at least one event type to be saved or published. - onboarding events are routed by workflowId and workflowVersion. - eventTypes decides which events start a workflow, not what the workflow can read. Any TM workflow can use the behavioural_insights.* variables, including those learned from account activity. - An account_activity event runs on { account_activity: data }. ### Which statuses start an evaluation | Event | Triggering eventStatus | | --- | --- | | Transaction | acknowledged, pending | | Login | attempted | | Card | requested, activated, pin_changed | | Any kind | processing | Any other status (for example completed, successful, failed, issued, frozen, processed) is stored without a run, and still updates the aggregates. Which statuses are allowed depends on the kind of event. ### Identifying the entity There is no externalEntityId on the event itself. Each entity identifies itself inside data: - On a transaction, the sender and each beneficiary carry their own entityId (the Youverify id) or their own externalEntityId (your id), with a name and accountNumber. - On an account_activity event, the same fields sit at the root of data. - entityType (INDIVIDUAL or BUSINESS) is required inside data: at the root of data for account_activity and onboarding events, and on the sender and each beneficiary of a transaction. Send the entityId whenever you have it. We then skip resolving the entity from your externalEntityId, so the event is processed and enriched faster. ### Idempotency externalEventId is the idempotency key. Sending the same externalEventId again returns the original evaluations with replayed: true and runs nothing. The repeat\u0026#x27;s payload is ignored even if it differs. An externalEventId with no live evaluation yet runs as normal. A transaction\u0026#x27;s transactionReference identifies the transaction, not the event. ### Lifecycle An event has a lifecycleId only if you send one; we never generate it. An event without one is connected to no other event and adds nothing to session-risk counters. Send the same lifecycleId on related events, such as one session or one payment.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Youverify\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/x-icon\" sizes=\"180x180\" href=\"https://youverify.co/favicon.ico\">\u003clink data-mint-head rel=\"icon\" type=\"image/x-icon\" sizes=\"32x32\" href=\"https://youverify.co/favicon.ico\">\u003clink data-mint-head rel=\"icon\" type=\"image/x-icon\" sizes=\"16x16\" href=\"https://youverify.co/favicon.ico\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"https://youverify.co/favicon.ico\">\u003cmeta data-mint-head property=\"og:title\" content=\"Send an Event - Youverify\">\u003cmeta data-mint-head property=\"og:description\" content=\"One entry point for every event type. Send an event when something happens that your workflows should see, such as a payment, a login or a card action. Triggering events start evaluations; every other event is accepted and stored. ### Event types Pick the request variant that matches eventType. Every field in the schema lists its type, whether it is required and what it means. Use the Examples selector to see a complete payload for each variant. | Event | eventType | What it describes | Workflow type | | --- | --- | --- | --- | | Transaction | transaction | A payment, with its sender and beneficiaries in data. | Transaction Monitoring (TM) | | Login | account_activity | A customer login. Carries data.loginMethod. | Transaction Monitoring (TM) | | Card | account_activity | A card event. Carries data.cardAction (created or updated). | Transaction Monitoring (TM) | | Onboarding | onboarding | A customer onboarding event. Carries data.externalEntityId (required) and data.entityId when the workflow is for an existing entity. | Customer Onboarding (CO) | A login and a card event are both account_activity. Never send loginMethod and cardAction together. Pick the matching request variant below. The fields inside an onboarding event\u0026#x27;s data beyond the entity fields depend on the workflow you are running. ### Routing - transaction and account_activity events carry an eventCategory. Every event runs the live TM workflows tagged with that category whose eventTypes includes the event\u0026#x27;s type. A TM workflow must list at least one event type to be saved or published. - onboarding events are routed by workflowId and workflowVersion. - eventTypes decides which events start a workflow, not what the workflow can read. Any TM workflow can use the behavioural_insights.* variables, including those learned from account activity. - An account_activity event runs on { account_activity: data }. ### Which statuses start an evaluation | Event | Triggering eventStatus | | --- | --- | | Transaction | acknowledged, pending | | Login | attempted | | Card | requested, activated, pin_changed | | Any kind | processing | Any other status (for example completed, successful, failed, issued, frozen, processed) is stored without a run, and still updates the aggregates. Which statuses are allowed depends on the kind of event. ### Identifying the entity There is no externalEntityId on the event itself. Each entity identifies itself inside data: - On a transaction, the sender and each beneficiary carry their own entityId (the Youverify id) or their own externalEntityId (your id), with a name and accountNumber. - On an account_activity event, the same fields sit at the root of data. - entityType (INDIVIDUAL or BUSINESS) is required inside data: at the root of data for account_activity and onboarding events, and on the sender and each beneficiary of a transaction. Send the entityId whenever you have it. We then skip resolving the entity from your externalEntityId, so the event is processed and enriched faster. ### Idempotency externalEventId is the idempotency key. Sending the same externalEventId again returns the original evaluations with replayed: true and runs nothing. The repeat\u0026#x27;s payload is ignored even if it differs. An externalEventId with no live evaluation yet runs as normal. A transaction\u0026#x27;s transactionReference identifies the transaction, not the event. ### Lifecycle An event has a lifecycleId only if you send one; we never generate it. An event without one is connected to no other event and adds nothing to session-risk counters. Send the same lifecycleId on related events, such as one session or one payment.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Youverify\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://doc.youverify.co/api-reference/cowork/workflow-events-management/send-an-event\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://youverify.mintlify.site/_mintlify/api/og/v2?division=Workflow+Events+Management\u0026amp;title=Send+an+Event\u0026amp;description=One+entry+point+for+every+event+type.+Send+an+event+when+something+happens+that+your+workflows+should+see%2C+such+as+a+payment%2C+a+login+or+a+card+action.+**Trigge\u0026amp;theme=fceb93ee2c97f47f2b059351\u0026amp;signature=bd98ddd562b6d235ca60f03a068609d594ed5896c32806999a25188e18e77262\">\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=\"Send an Event - Youverify\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"One entry point for every event type. Send an event when something happens that your workflows should see, such as a payment, a login or a card action. Triggering events start evaluations; every other event is accepted and stored. ### Event types Pick the request variant that matches eventType. Every field in the schema lists its type, whether it is required and what it means. Use the Examples selector to see a complete payload for each variant. | Event | eventType | What it describes | Workflow type | | --- | --- | --- | --- | | Transaction | transaction | A payment, with its sender and beneficiaries in data. | Transaction Monitoring (TM) | | Login | account_activity | A customer login. Carries data.loginMethod. | Transaction Monitoring (TM) | | Card | account_activity | A card event. Carries data.cardAction (created or updated). | Transaction Monitoring (TM) | | Onboarding | onboarding | A customer onboarding event. Carries data.externalEntityId (required) and data.entityId when the workflow is for an existing entity. | Customer Onboarding (CO) | A login and a card event are both account_activity. Never send loginMethod and cardAction together. Pick the matching request variant below. The fields inside an onboarding event\u0026#x27;s data beyond the entity fields depend on the workflow you are running. ### Routing - transaction and account_activity events carry an eventCategory. Every event runs the live TM workflows tagged with that category whose eventTypes includes the event\u0026#x27;s type. A TM workflow must list at least one event type to be saved or published. - onboarding events are routed by workflowId and workflowVersion. - eventTypes decides which events start a workflow, not what the workflow can read. Any TM workflow can use the behavioural_insights.* variables, including those learned from account activity. - An account_activity event runs on { account_activity: data }. ### Which statuses start an evaluation | Event | Triggering eventStatus | | --- | --- | | Transaction | acknowledged, pending | | Login | attempted | | Card | requested, activated, pin_changed | | Any kind | processing | Any other status (for example completed, successful, failed, issued, frozen, processed) is stored without a run, and still updates the aggregates. Which statuses are allowed depends on the kind of event. ### Identifying the entity There is no externalEntityId on the event itself. Each entity identifies itself inside data: - On a transaction, the sender and each beneficiary carry their own entityId (the Youverify id) or their own externalEntityId (your id), with a name and accountNumber. - On an account_activity event, the same fields sit at the root of data. - entityType (INDIVIDUAL or BUSINESS) is required inside data: at the root of data for account_activity and onboarding events, and on the sender and each beneficiary of a transaction. Send the entityId whenever you have it. We then skip resolving the entity from your externalEntityId, so the event is processed and enriched faster. ### Idempotency externalEventId is the idempotency key. Sending the same externalEventId again returns the original evaluations with replayed: true and runs nothing. The repeat\u0026#x27;s payload is ignored even if it differs. An externalEventId with no live evaluation yet runs as normal. A transaction\u0026#x27;s transactionReference identifies the transaction, not the event. ### Lifecycle An event has a lifecycleId only if you send one; we never generate it. An event without one is connected to no other event and adds nothing to session-risk counters. Send the same lifecycleId on related events, such as one session or one payment.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://youverify.mintlify.site/_mintlify/api/og/v2?division=Workflow+Events+Management\u0026amp;title=Send+an+Event\u0026amp;description=One+entry+point+for+every+event+type.+Send+an+event+when+something+happens+that+your+workflows+should+see%2C+such+as+a+payment%2C+a+login+or+a+card+action.+**Trigge\u0026amp;theme=fceb93ee2c97f47f2b059351\u0026amp;signature=bd98ddd562b6d235ca60f03a068609d594ed5896c32806999a25188e18e77262\">\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=\"https://mintlify.s3.us-west-1.amazonaws.com/youverify/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Youverify\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#277A93\">\u003clink data-mint-head rel=\"canonical\" href=\"https://doc.youverify.co/api-reference/cowork/workflow-events-management/send-an-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/cowork/workflow-events-management/send-an-event.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://doc.youverify.co/#organization\",\"name\":\"Youverify\",\"url\":\"https://doc.youverify.co\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/youverify/1dd8Ykqjzgp3lT04/images/Youverify-logo-teal-tag.svg?fit=max\u0026auto=format\u0026n=1dd8Ykqjzgp3lT04\u0026q=85\u0026s=58de2cb29492afc5c7759beb95948f58\"}},{\"@type\":\"WebSite\",\"@id\":\"https://doc.youverify.co#website\",\"name\":\"Youverify\",\"url\":\"https://doc.youverify.co\",\"publisher\":{\"@id\":\"https://doc.youverify.co/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://doc.youverify.co/api-reference/cowork/workflow-events-management/send-an-event#webpage\",\"url\":\"https://doc.youverify.co/api-reference/cowork/workflow-events-management/send-an-event\",\"name\":\"Send an Event\",\"description\":\"One entry point for every event type. Send an event when something happens that your workflows should see, such as a payment, a login or a card action. Triggering events start evaluations; every other event is accepted and stored. ### Event types Pick the request variant that matches eventType. Every field in the schema lists its type, whether it is required and what it means. Use the Examples selector to see a complete payload for each variant. | Event | eventType | What it describes | Workflow type | | --- | --- | --- | --- | | Transaction | transaction | A payment, with its sender and beneficiaries in data. | Transaction Monitoring (TM) | | Login | account_activity | A customer login. Carries data.loginMethod. | Transaction Monitoring (TM) | | Card | account_activity | A card event. Carries data.cardAction (created or updated). | Transaction Monitoring (TM) | | Onboarding | onboarding | A customer onboarding event. Carries data.externalEntityId (required) and data.entityId when the workflow is for an existing entity. | Customer Onboarding (CO) | A login and a card event are both account_activity. Never send loginMethod and cardAction together. Pick the matching request variant below. The fields inside an onboarding event's data beyond the entity fields depend on the workflow you are running. ### Routing - transaction and account_activity events carry an eventCategory. Every event runs the live TM workflows tagged with that category whose eventTypes includes the event's type. A TM workflow must list at least one event type to be saved or published. - onboarding events are routed by workflowId and workflowVersion. - eventTypes decides which events start a workflow, not what the workflow can read. Any TM workflow can use the behavioural_insights.* variables, including those learned from account activity. - An account_activity event runs on { account_activity: data }. ### Which statuses start an evaluation | Event | Triggering eventStatus | | --- | --- | | Transaction | acknowledged, pending | | Login | attempted | | Card | requested, activated, pin_changed | | Any kind | processing | Any other status (for example completed, successful, failed, issued, frozen, processed) is stored without a run, and still updates the aggregates. Which statuses are allowed depends on the kind of event. ### Identifying the entity There is no externalEntityId on the event itself. Each entity identifies itself inside data: - On a transaction, the sender and each beneficiary carry their own entityId (the Youverify id) or their own externalEntityId (your id), with a name and accountNumber. - On an account_activity event, the same fields sit at the root of data. - entityType (INDIVIDUAL or BUSINESS) is required inside data: at the root of data for account_activity and onboarding events, and on the sender and each beneficiary of a transaction. Send the entityId whenever you have it. We then skip resolving the entity from your externalEntityId, so the event is processed and enriched faster. ### Idempotency externalEventId is the idempotency key. Sending the same externalEventId again returns the original evaluations with replayed: true and runs nothing. The repeat's payload is ignored even if it differs. An externalEventId with no live evaluation yet runs as normal. A transaction's transactionReference identifies the transaction, not the event. ### Lifecycle An event has a lifecycleId only if you send one; we never generate it. An event without one is connected to no other event and adds nothing to session-risk counters. Send the same lifecycleId on related events, such as one session or one payment.\",\"dateModified\":\"2026-11-06T08:07:10.487Z\",\"isPartOf\":{\"@id\":\"https://doc.youverify.co#website\"},\"breadcrumb\":{\"@id\":\"https://doc.youverify.co/api-reference/cowork/workflow-events-management/send-an-event#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://doc.youverify.co/api-reference/cowork/workflow-events-management/send-an-event#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Cowork API\",\"item\":\"https://doc.youverify.co/api-reference/cowork/entity-management/get-all-entity\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Send an Event\",\"item\":\"https://doc.youverify.co/api-reference/cowork/workflow-events-management/send-an-event\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://doc.youverify.co/api-reference/cowork/workflow-events-management/send-an-event#apireference\",\"headline\":\"Send an Event\",\"name\":\"Send an Event\",\"description\":\"One entry point for every event type. Send an event when something happens that your workflows should see, such as a payment, a login or a card action. Triggering events start evaluations; every other event is accepted and stored. ### Event types Pick the request variant that matches eventType. Every field in the schema lists its type, whether it is required and what it means. Use the Examples selector to see a complete payload for each variant. | Event | eventType | What it describes | Workflow type | | --- | --- | --- | --- | | Transaction | transaction | A payment, with its sender and beneficiaries in data. | Transaction Monitoring (TM) | | Login | account_activity | A customer login. Carries data.loginMethod. | Transaction Monitoring (TM) | | Card | account_activity | A card event. Carries data.cardAction (created or updated). | Transaction Monitoring (TM) | | Onboarding | onboarding | A customer onboarding event. Carries data.externalEntityId (required) and data.entityId when the workflow is for an existing entity. | Customer Onboarding (CO) | A login and a card event are both account_activity. Never send loginMethod and cardAction together. Pick the matching request variant below. The fields inside an onboarding event's data beyond the entity fields depend on the workflow you are running. ### Routing - transaction and account_activity events carry an eventCategory. Every event runs the live TM workflows tagged with that category whose eventTypes includes the event's type. A TM workflow must list at least one event type to be saved or published. - onboarding events are routed by workflowId and workflowVersion. - eventTypes decides which events start a workflow, not what the workflow can read. Any TM workflow can use the behavioural_insights.* variables, including those learned from account activity. - An account_activity event runs on { account_activity: data }. ### Which statuses start an evaluation | Event | Triggering eventStatus | | --- | --- | | Transaction | acknowledged, pending | | Login | attempted | | Card | requested, activated, pin_changed | | Any kind | processing | Any other status (for example completed, successful, failed, issued, frozen, processed) is stored without a run, and still updates the aggregates. Which statuses are allowed depends on the kind of event. ### Identifying the entity There is no externalEntityId on the event itself. Each entity identifies itself inside data: - On a transaction, the sender and each beneficiary carry their own entityId (the Youverify id) or their own externalEntityId (your id), with a name and accountNumber. - On an account_activity event, the same fields sit at the root of data. - entityType (INDIVIDUAL or BUSINESS) is required inside data: at the root of data for account_activity and onboarding events, and on the sender and each beneficiary of a transaction. Send the entityId whenever you have it. We then skip resolving the entity from your externalEntityId, so the event is processed and enriched faster. ### Idempotency externalEventId is the idempotency key. Sending the same externalEventId again returns the original evaluations with replayed: true and runs nothing. The repeat's payload is ignored even if it differs. An externalEventId with no live evaluation yet runs as normal. A transaction's transactionReference identifies the transaction, not the event. ### Lifecycle An event has a lifecycleId only if you send one; we never generate it. An event without one is connected to no other event and adds nothing to session-risk counters. Send the same lifecycleId on related events, such as one session or one payment.\",\"url\":\"https://doc.youverify.co/api-reference/cowork/workflow-events-management/send-an-event\",\"mainEntityOfPage\":{\"@id\":\"https://doc.youverify.co/api-reference/cowork/workflow-events-management/send-an-event#webpage\"},\"dateModified\":\"2026-11-06T08:07:10.487Z\",\"publisher\":{\"@id\":\"https://doc.youverify.co/#organization\"},\"isPartOf\":{\"@id\":\"https://doc.youverify.co#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Youverify\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Youverify","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Product Guide","pages":[{"title":"Product Guide","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"Cowork API","pages":[{"group":"Entity Management","pages":[{"title":"Get All Entity","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json get /v2/api/entities","href":"/api-reference/cowork/entity-management/get-all-entity"},{"title":"Create Entity","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json post /v2/api/entities","href":"/api-reference/cowork/entity-management/create-entity"},{"title":"Get Entity using ID","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json get /v2/api/entities/{entityId}","href":"/api-reference/cowork/entity-management/get-entity-using-id"},{"title":"Verify Entity (AML)","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json post /v2/api/entities/{entityId}/amlChecks","href":"/api-reference/cowork/entity-management/verify-entity-aml"},{"title":"Verify Entity (KYB)","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json post /v2/api/entities/{entityId}/company","href":"/api-reference/cowork/entity-management/verify-entity-kyb"},{"title":"Get Supported Countries and Regions","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json get /v2/api/verifications/global/supported-countries-and-region","href":"/api-reference/cowork/entity-management/get-supported-countries-and-regions"},{"title":"Verify Entity (KYC)","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json post /v2/api/entities/identity","href":"/api-reference/cowork/entity-management/verify-entity-kyc"}]},{"group":"Activity Management","pages":[{"title":"Retrieve an Activity","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json get /v2/api/activities","href":"/api-reference/cowork/activity-management/retrieve-an-activity"},{"title":"Retrieve an Activity using ID","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json get /v2/api/activities/{activityId}","href":"/api-reference/cowork/activity-management/retrieve-an-activity-using-id"},{"title":"Get Verification Types","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json get /v2/api/activities/verification-types","href":"/api-reference/cowork/activity-management/get-verification-types"}]},{"group":"Signal Management","pages":[{"title":"Get Signals using ID","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json get /v2/api/signals/{signalId}","href":"/api-reference/cowork/signal-management/get-signals-using-id"},{"title":"List Event using Signals ID (Cursor)","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json get /v2/api/signals/{signalId}/events/cursor","href":"/api-reference/cowork/signal-management/list-event-using-signals-id-cursor"},{"title":"List Signals by Business (Cursor)","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json get /v2/api/signals/cursor","href":"/api-reference/cowork/signal-management/list-signals-by-business-cursor"},{"title":"List Signals by Business ID (Cursor)","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json get /v2/api/signals/business/{businessId}/cursor","href":"/api-reference/cowork/signal-management/list-signals-by-business-id-cursor"},{"title":"List Signals by Business","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json get /v2/api/signals","href":"/api-reference/cowork/signal-management/list-signals-by-business"},{"title":"List Signals by Entity (Cursor)","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json get /v2/api/signals/entity/{entityId}/cursor","href":"/api-reference/cowork/signal-management/list-signals-by-entity-cursor"},{"title":"List Signals by Entity","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json get /v2/api/signals/entity/{entityId}","href":"/api-reference/cowork/signal-management/list-signals-by-entity"}]},{"group":"Case Management","pages":[{"title":"Retrieve All Cases","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json get /v2/api/cases","href":"/api-reference/cowork/case-management/retrieve-all-cases"},{"title":"Create a Case","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json post /v2/api/cases","href":"/api-reference/cowork/case-management/create-a-case"},{"title":"Get Case AI Summary","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json put /v2/api/cases/{caseId}/summary","href":"/api-reference/cowork/case-management/get-case-ai-summary"},{"title":"Retrieve a Case","description":"Fetches the full details of a single case by its unique case ID, including case stages, tasks, linked issues and activity log.","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json get /v2/api/cases/{caseId}","href":"/api-reference/cowork/case-management/retrieve-a-case"}]},{"group":"Workflow Events Management","pages":[{"title":"Send an Event","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json post /v2/workflows/events","href":"/api-reference/cowork/workflow-events-management/send-an-event"},{"title":"List Evaluations","description":"Lists the business's workflow runs (evaluations) for both Transaction Monitoring and Customer Onboarding, cursor-paginated. Scoped to the API key's business.\n\nFilters: `workflowId`, `version`, `status`, `startDate`, `endDate`, `eventType`, `eventCategory`, `eventStatus`, `lifecycleId`, `entityId`, `decision`. With no filter the list is read from MongoDB; any filter reads from Elasticsearch.","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json get /v2/workflows/evaluations","href":"/api-reference/cowork/workflow-events-management/list-evaluations"},{"title":"Retrieve an Evaluation","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json get /v2/workflows/evaluations/{evaluationId}","href":"/api-reference/cowork/workflow-events-management/retrieve-an-evaluation"},{"title":"List Workflows","deprecated":null,"version":null,"openapi":"/api-reference/specs/cowork.json get /v2/workflows","href":"/api-reference/cowork/workflow-events-management/list-workflows"}]}]},{"group":"Quick Check API","pages":[{"group":"KYC - Global","pages":[{"title":"Global ID Validation","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/global/validate","href":"/api-reference/quickcheck/kyc--global/global-id-validation"}]},{"group":"KYC - South Africa","pages":[{"title":"Verify South African ID Number (SAID)","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/za/said","href":"/api-reference/quickcheck/kyc--south-africa/verify-south-african-id-number-said"},{"title":"Verify South African Phone Number","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/za/phone","href":"/api-reference/quickcheck/kyc--south-africa/verify-south-african-phone-number"},{"title":"Bank Account Verification","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/za/bav","href":"/api-reference/quickcheck/kyc--south-africa/bank-account-verification"},{"title":"Proof of Address Verification","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/za/poa","href":"/api-reference/quickcheck/kyc--south-africa/proof-of-address-verification"}]},{"group":"KYC - Kenya","pages":[{"title":"Verify International Passport","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ke/passport","href":"/api-reference/quickcheck/kyc--kenya/verify-international-passport"},{"title":"Verify Alien ID","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ke/alien-id","href":"/api-reference/quickcheck/kyc--kenya/verify-alien-id"},{"title":"Verify Drivers License","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ke/drivers-license","href":"/api-reference/quickcheck/kyc--kenya/verify-drivers-license"},{"title":"Verify National ID","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ke/national-id","href":"/api-reference/quickcheck/kyc--kenya/verify-national-id"},{"title":"Verify Plate Number","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ke/plate-number","href":"/api-reference/quickcheck/kyc--kenya/verify-plate-number"},{"title":"Verify Collateral ID","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ke/vehicle-collateral","href":"/api-reference/quickcheck/kyc--kenya/verify-collateral-id"},{"title":"Kenyan Bank Account Verification","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ke/bav","href":"/api-reference/quickcheck/kyc--kenya/kenyan-bank-account-verification"},{"title":"Bank List","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json get /v2/api/identity/ke/banks","href":"/api-reference/quickcheck/kyc--kenya/bank-list"},{"title":"Credit History","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/verifications/identity/ke/credit-history","href":"/api-reference/quickcheck/kyc--kenya/credit-history"},{"title":"Employment History","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/verifications/identity/ke/employment","href":"/api-reference/quickcheck/kyc--kenya/employment-history"},{"title":"Verify Address Information","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ke/address","href":"/api-reference/quickcheck/kyc--kenya/verify-address-information"},{"title":"Verify Phone Number","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ke/phone","href":"/api-reference/quickcheck/kyc--kenya/verify-phone-number"},{"title":"Verify Identity Number","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ke/id-scrub","href":"/api-reference/quickcheck/kyc--kenya/verify-identity-number"},{"title":"Verify Tax PIN","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ke/pin-check","href":"/api-reference/quickcheck/kyc--kenya/verify-tax-pin"},{"title":"Verify KRA PIN","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ke/kra-pin","href":"/api-reference/quickcheck/kyc--kenya/verify-kra-pin"}]},{"group":"KYC - Ghana","pages":[{"title":"Verify International Passport","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/gh/passport","href":"/api-reference/quickcheck/kyc--ghana/verify-international-passport"},{"title":"Verify Social Security and National Insurance Trust (SSNIT)","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/gh/ssnit","href":"/api-reference/quickcheck/kyc--ghana/verify-social-security-and-national-insurance-trust-ssnit"},{"title":"Verify Ghana Voters Card (GVC)","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/gh/voter","href":"/api-reference/quickcheck/kyc--ghana/verify-ghana-voters-card-gvc"}]},{"group":"KYC - Nigeria","pages":[{"title":"Verify Bank Verification Number (BVN)","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ng/bvn","href":"/api-reference/quickcheck/kyc--nigeria/verify-bank-verification-number-bvn"},{"title":"Verify Bank Verification Number (BVN Premium)","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ng/bvn-premium","href":"/api-reference/quickcheck/kyc--nigeria/verify-bank-verification-number-bvn-premium"},{"title":"Verify National Identification Number (NIN)","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ng/nin","href":"/api-reference/quickcheck/kyc--nigeria/verify-national-identification-number-nin"},{"title":"Verify Nigerian Driver's License","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ng/drivers-license","href":"/api-reference/quickcheck/kyc--nigeria/verify-nigerian-drivers-license"},{"title":"Advanced Phone Search","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ng/nin-phone","href":"/api-reference/quickcheck/kyc--nigeria/advanced-phone-search"},{"title":"Verify Phone Number","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ng/phone","href":"/api-reference/quickcheck/kyc--nigeria/verify-phone-number"},{"title":"Individual Credit Report","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/credit-report/ng/individual","href":"/api-reference/quickcheck/kyc--nigeria/individual-credit-report"},{"title":"Basic Bank Account Verification","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ng/bank-account-number/resolve","href":"/api-reference/quickcheck/kyc--nigeria/basic-bank-account-verification"},{"title":"Premium Bank Account Verification","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ng/premium-bav/resolve","href":"/api-reference/quickcheck/kyc--nigeria/premium-bank-account-verification"},{"title":"Getting the List of Banks for Basic Bank Account","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json get /v2/api/identity/ng/bank-account-number/bank-list","href":"/api-reference/quickcheck/kyc--nigeria/getting-the-list-of-banks-for-basic-bank-account"},{"title":"Getting the List of Banks for Premium Bank Account","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json get /v2/api/identity/ng/premium-bav/bank-list","href":"/api-reference/quickcheck/kyc--nigeria/getting-the-list-of-banks-for-premium-bank-account"},{"title":"Verify Individual Tax ID","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ng/tax-id","href":"/api-reference/quickcheck/kyc--nigeria/verify-individual-tax-id"}]},{"group":"KYC - Cote D'Ivoire","pages":[{"title":"Verify National ID","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ci/national-id","href":"/api-reference/quickcheck/kyc--cote-divoire/verify-national-id"},{"title":"Verify Old National ID","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ci/old-national-id","href":"/api-reference/quickcheck/kyc--cote-divoire/verify-old-national-id"},{"title":"Verify Residence Card","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/ci/residence-card","href":"/api-reference/quickcheck/kyc--cote-divoire/verify-residence-card"}]},{"group":"KYC - General","pages":[{"title":"Retrieve an Identity","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json get /v2/api/identity/{identityId}","href":"/api-reference/quickcheck/kyc--general/retrieve-an-identity"},{"title":"Identity History","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json get /v2/api/identity/history","href":"/api-reference/quickcheck/kyc--general/identity-history"},{"title":"Facial Comparison","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/compare-image","href":"/api-reference/quickcheck/kyc--general/facial-comparison"}]},{"group":"KYC - Address Verification (Individuals)","pages":[{"title":"Create a Candidate via Identity","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/addresses/candidates/identity","href":"/api-reference/quickcheck/kyc--address-verification-individuals/create-a-candidate-via-identity"},{"title":"Create a Candidate via Form","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/addresses/candidates","href":"/api-reference/quickcheck/kyc--address-verification-individuals/create-a-candidate-via-form"},{"title":"Search for a Candidate","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json get /v2/api/addresses/candidates/{candidateId}","href":"/api-reference/quickcheck/kyc--address-verification-individuals/search-for-a-candidate"},{"title":"Get States","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json get /v2/api/states","href":"/api-reference/quickcheck/kyc--address-verification-individuals/get-states"},{"title":"Request an Individual Address Verification","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/addresses/individual/request","href":"/api-reference/quickcheck/kyc--address-verification-individuals/request-an-individual-address-verification"},{"title":"Request a Guarantor Address Verification","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/addresses/guarantor/request","href":"/api-reference/quickcheck/kyc--address-verification-individuals/request-a-guarantor-address-verification"},{"title":"Retrieve an Address Verification","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json get /v2/api/addresses/{addressId}","href":"/api-reference/quickcheck/kyc--address-verification-individuals/retrieve-an-address-verification"},{"title":"Digital Address Verification Service","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/digital-addresses/lookup","href":"/api-reference/quickcheck/kyc--address-verification-individuals/digital-address-verification-service"},{"title":"Address History","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json get /v2/api/addresses/history","href":"/api-reference/quickcheck/kyc--address-verification-individuals/address-history"}]},{"group":"KYB - Global","pages":[{"title":"Premium Company Search","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/verifications/global/company-advance-check","href":"/api-reference/quickcheck/kyb--global/premium-company-search"},{"title":"Search for Businesses","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json get /v2/api/verifications/global/search-companies","href":"/api-reference/quickcheck/kyb--global/search-for-businesses"},{"title":"KYB Bulk Upload","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/verifications/global/bulk-upload","href":"/api-reference/quickcheck/kyb--global/kyb-bulk-upload"},{"title":"Retrieve Business Details","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json get /v2/api/verifications/ng/company-details/{verificationId}","href":"/api-reference/quickcheck/kyb--global/retrieve-business-details"}]},{"group":"KYB - Nigeria","pages":[{"title":"KYB Basic","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/verifications/ng/company/basic","href":"/api-reference/quickcheck/kyb--nigeria/kyb-basic"},{"title":"Request a Business Address Verification","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/addresses/business/request","href":"/api-reference/quickcheck/kyb--nigeria/request-a-business-address-verification"},{"title":"Verify Business Tax ID","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/verifications/ng/tax-id","href":"/api-reference/quickcheck/kyb--nigeria/verify-business-tax-id"},{"title":"Verify Business TIN","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/verifications/ng/tin","href":"/api-reference/quickcheck/kyb--nigeria/verify-business-tin"},{"title":"TaxID and Business Verification","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/verifications/ng/advance-check-with-tax","href":"/api-reference/quickcheck/kyb--nigeria/taxid-and-business-verification"}]},{"group":"KYB - South Africa","pages":[{"title":"Business Account Verification","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/verifications/za/business-account","href":"/api-reference/quickcheck/kyb--south-africa/business-account-verification"},{"title":"Business Address Verification","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/verifications/za/business-address","href":"/api-reference/quickcheck/kyb--south-africa/business-address-verification"}]},{"group":"KYB - Cote D'Ivoire","pages":[{"title":"Company Filings","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/verifications/ci/company-filings","href":"/api-reference/quickcheck/kyb--cote-divoire/company-filings"}]},{"group":"AML Screening","pages":[{"title":"Advanced AML","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/verifications/advanced/consolidated-aml","href":"/api-reference/quickcheck/aml-screening/advanced-aml"},{"title":"Search using Name","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/verifications/advanced/name/aml-checks","href":"/api-reference/quickcheck/aml-screening/search-using-name"},{"title":"Search using Identity","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/verifications/advanced/identity/aml-checks","href":"/api-reference/quickcheck/aml-screening/search-using-identity"},{"title":"Search using Crypto","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/verifications/advanced/crypto/aml-checks","href":"/api-reference/quickcheck/aml-screening/search-using-crypto"},{"title":"Retrieve a PEP and Sanction Screening Search","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json get /v2/api/verifications/aml-checks/{verificationId}","href":"/api-reference/quickcheck/aml-screening/retrieve-a-pep-and-sanction-screening-search"},{"title":"PEP+ Search","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/verifications/advanced/domestic-pep","href":"/api-reference/quickcheck/aml-screening/pep+-search"},{"title":"Adverse Media Intelligence","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/identity/adverse-media","href":"/api-reference/quickcheck/aml-screening/adverse-media-intelligence"}]},{"group":"AML Watchlist","pages":[{"title":"AML Watchlist (Sample list)","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json get /v2/api/verifications/watchlist/sample","href":"/api-reference/quickcheck/aml-watchlist/aml-watchlist-sample-list"},{"title":"AML Watchlist Upload","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json post /v2/api/verifications/watchlist/upload","href":"/api-reference/quickcheck/aml-watchlist/aml-watchlist-upload"},{"title":"Retrieve AML Watchlist","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json get /v2/api/verifications/watchlist","href":"/api-reference/quickcheck/aml-watchlist/retrieve-aml-watchlist"},{"title":"AML Watchlist Entity Update","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json put /v2/api/verifications/watchlist/{entityId}","href":"/api-reference/quickcheck/aml-watchlist/aml-watchlist-entity-update"},{"title":"AML Watchlist Entity Removal","deprecated":null,"version":null,"openapi":"/api-reference/specs/quickcheck.json delete /v2/api/verifications/watchlist/{entityId}","href":"/api-reference/quickcheck/aml-watchlist/aml-watchlist-entity-removal"}]}]},{"group":"SDK API","pages":[{"group":"SDK Utilities","pages":[{"title":"SDK Settings","deprecated":null,"version":null,"openapi":"/api-reference/specs/sdk.json post /v2/sdk/identity/liveness/settings","href":"/api-reference/sdk/sdk-utilities/sdk-settings"},{"title":"Generate SDK Liveness Token","deprecated":null,"version":null,"openapi":"/api-reference/specs/sdk.json post /v2/api/identity/sdk/liveness/token","href":"/api-reference/sdk/sdk-utilities/generate-sdk-liveness-token"},{"title":"Generate SDK Session ID","deprecated":null,"version":null,"openapi":"/api-reference/specs/sdk.json post /v2/api/identity/sdk/session/generate","href":"/api-reference/sdk/sdk-utilities/generate-sdk-session-id"},{"title":"Liveness History","deprecated":null,"version":null,"openapi":"/api-reference/specs/sdk.json get /v2/api/identity/liveness","href":"/api-reference/sdk/sdk-utilities/liveness-history"}]}]}]},{"tab":"How-to Guides","pages":[{"title":"How-to Guides","href":"/how-to/overview"}]}]},{"language":"fr","pages":[{"title":"fr","href":"/fr/introduction"}]}]},"basePath":"","title":"Send an Event - Youverify","buildId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","deploymentId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-Myd8dsju.js","utils-C2HkQgW0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-8rSppmTv.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B6MjiCFm.js","snippetPresets-DwrSAONL.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-CxAy5y67.js","ApiExamples-1-a5UQKQ.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C541m7wZ.js","shallow-CWELCZ77.js","getApiPlaygroundDisplay-CTo5Zn03.js","CodeSnippet-D--dzvnl.js","CodeSnippets-DM3cXEDh.js","getPastedJson-C-VECgcL.js","icon-BPq2-Mg3.js","MethodPill-D9J5cUHd.js","DuplicateIcon-BqHaxUnD.js","createIcon-CIbcZHp9.js","DynamicMarkdown-BKiHAm_d.js","SectionHeading-DstQXt3H.js","axios-vUo_bRtp.js","Markdown-CpxgzsKA.js","clsx-C5EfhVm0.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CJ9Oly2E.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Mk6P3qvh.js"]}