Onboarding Webhooks

Onboarding Webhook Events

Onboarding End-State Webhook Event

Quadrata will emit a webhook event (HTTP Request) whenever an onboarding passport has reached an end-state. The payload for this request will contain all attributes and statuses known for the Passport at the time of the event.

An application's end-state is triggered when all attributes for an application type have been verified, and the application's status is set to either IN REVIEW, APPROVED, or REJECTED.

Supported ApplicationsDescription

KYC

Emitted when a KYC application reaches an end-state.

AML

Emitted when an AML application reaches an end-state.

Accreditation

Emitted when an Accredited Investor's application reaches an end-state.

Business

Emitted when a KYB application reaches an end-state.

Payload Structure

Webhooks are sent over HTTPS with a signature verification header. Each payload will include the following data:

Request Header

Each webhook request that Quadrata emits will contain a header signature that an integrating application can use to verify the authenticity of the message.

  • X-WEBHOOK-SIGNATURE - Base64 Encoded SHA384 request signature.

See Webhook Request Signaturefor more information on how to verify the webhook request signature.

Request Body

  • attributes - JSON payload of all known attributes at the time of the event

  • eventId - The UUID for the event that triggered this webhook

  • nonce - To ensure the signature is always unique

  • timestamp - Unix epoch representing the time when the notification was triggered

  • type - Representing the type of notification, ONBOARDING

  • walletAddresses - Array of wallet addresses associated to the onboarding application.

For business applications, each wallet address related to the business entity will be included in the payload.

For individual applications, only the single passport wallet address will be included in the payload.

Quadrata will attempt to deliver a webhook payload up to 3 times for each configured URI, if an HTTP response status code is returned outside of the 2xx range (200, 201, etc).

{
  "attributes": {
    "AML": { "status": "READY", "verifiedAt": 1703207512 },
    "COUNTRY": { "status": "IN_REVIEW", "verifiedAt": 1703207483 },
    "DID": { "status": "IN_REVIEW", "verifiedAt": 1703207483 }
  },
  "eventId": "447849bc-db53-4b8d-b9ba-dbfec82839e4",
  "nonce": "3a186e5f",
  "timestamp": 1703207849,
  "type": "ONBOARDING",
  "walletAddresses": [ 
    "0xB343DB0FAB970eca78422505A82294304cE8c3eb"
  ]
}

See Passport Attributes for a list of supported attributes.

Company Offering Webhook Event

Quadrata will emit a webhook event (HTTP Request) whenever an onboarding passport has verified their INVESTOR_STATUS for a company offering. The payload for this request will contain all attributes and statuses known for the Passport at the time of the event, along with the verification status for the specific offering.

Payload Structure

Webhooks are sent over HTTPS with a signature verification header. Each payload will include the following data:

Request Header

Each webhook request that Quadrata emits will contain a header signature that an integrating application can use to verify the authenticity of the message.

  • X-WEBHOOK-SIGNATURE - Base64 Encoded SHA384 request signature.

See Webhook Request Signaturefor more information on how to verify the webhook request signature.

Request Body

  • attributes - JSON payload of all known attributes at the time of the event

  • eventId - The UUID for the event that triggered this webhook

  • nonce - To ensure the signature is always unique

  • offering - JSON payload of all attributes associated with offering, including the offering id

  • timestamp - Unix epoch representing the time when the notification was triggered

  • type - Representing the type of notification, ONBOARDING

  • walletAddresses - Array of wallet addresses associated to the onboarding application.

{
  "attributes": {
    "AML": { "status": "READY", "verifiedAt": 1707251302 },
    "COUNTRY": { "status": "READY", "verifiedAt": 1707251223 },
    "DID": { "status": "READY", "verifiedAt": 1707251223 },
    "INVESTOR_STATUS": { "status": "READY", "verifiedAt": 1707251445 }
  },
  "eventId": "298740c4-a5ac-4fa0-9c0e-031fcdcc5e86",
  "nonce": "c730107c",
  "offering": {
    "attributes": {
      "INVESTOR_STATUS": { "status": "READY", "verifiedAt": 1707251445 }
    },
    "id": "company-offering-id"
  },
  "timestamp": 1707251736,
  "type": "OFFERING",
  "walletAddresses": [ 
    "0xB343DB0FAB970eca78422505A82294304cE8c3eb"
  ]
}

Last updated