Webhooks
Overview
Those webhooks allow you to receive real-time notifications about status changes and important events related to the Commercial Paper issuance process. When an event occurs, QI Tech automatically sends an HTTP POST payload to the configured URL in your system.
Webhook Configuration
To receive webhooks, you need to configure an endpoint URL in your system. See the webhook configuration documentation for more details on how to register and manage your webhook URLs.
Authentication and Security
All webhooks sent by QI Tech include an HMAC-SHA256 signature in the Signature header. This signature must be validated in your system to ensure the authenticity and integrity of the received data. For more information about the validation process, see the webhook authentication documentation.
Available Events
Issuer Management
Issuer Registration Approved
Sent when an issuer registration is approved by compliance.
Event Type: issuer_management.issuer_status_change
Payload:
{
"event_type": "issuer_management.issuer_status_change",
"event_datetime": "2025-07-30T15:32:00Z",
"event_data": {
"issuer_key": "18c4d162-1b1b-4c3a-b7a7-5f1200723c43",
"status": "approved"
}
}
Issuer Registration Rejected
Sent when an issuer registration is rejected by compliance.
Event Type: issuer_management.issuer_status_change
Payload:
{
"event_type": "issuer_management.issuer_status_change",
"event_datetime": "2025-07-30T15:32:00Z",
"event_data": {
"issuer_key": "18c4d162-1b1b-4c3a-b7a7-5f1200723c43",
"status": "reproved"
}
}
Investor Management
Investor Registration Approved
Sent when an investor registration is approved by compliance.
Event Type: investor_management.investor_status_change
Payload:
{
"event_type": "investor_management.investor_status_change",
"event_datetime": "2025-07-30T15:32:00Z",
"event_data": {
"investor_key": "18c4d162-1b1b-4c3a-b7a7-5f1200723c43",
"status": "approved"
}
}
Investor Registration Rejected
Sent when an investor registration is rejected by compliance.
Event Type: investor_management.investor_status_change
Payload:
{
"event_type": "investor_management.investor_status_change",
"event_datetime": "2025-07-30T15:32:00Z",
"event_data": {
"investor_key": "18c4d162-1b1b-4c3a-b7a7-5f1200723c43",
"status": "reproved"
}
}
Operation Management
Operation Approved
Sent when an operation is approved by compliance and is ready to be sent for signature.
Event Type: commercial_paper.operation_status_change
Payload:
{
"event_type": "commercial_paper.operation_status_change",
"event_datetime": "2025-07-30T15:45:00Z",
"event_data": {
"operation_key": "89c7f73a-c184-400c-bb2a-dd4424075a4f",
"status": "pending_signature_submission"
}
}
Operation Sent for Signature
Sent when an operation is sent for signature by the involved parties.
Event Type: commercial_paper.operation_status_change
Payload:
{
"event_type": "commercial_paper.operation_status_change",
"event_datetime": "2025-07-30T15:45:00Z",
"event_data": {
"operation_key": "89c7f73a-c184-400c-bb2a-dd4424075a4f",
"status": "waiting_signature"
}
}
Operation Signed and Issued
Sent when an operation is signed by all parties. This event confirms that the Commercial Paper was successfully issued.
Event Type: commercial_paper.operation_status_change
Payload:
{
"event_type": "commercial_paper.operation_status_change",
"event_datetime": "2025-07-30T15:45:00Z",
"event_data": {
"operation_key": "89c7f73a-c184-400c-bb2a-dd4424075a4f",
"status": "issued"
}
}
Operation Canceled
Sent when an operation is canceled.
Event Type: commercial_paper.operation_status_change
Payload:
{
"event_type": "commercial_paper.operation_status_change",
"event_datetime": "2025-07-30T15:45:00Z",
"event_data": {
"operation_key": "89c7f73a-c184-400c-bb2a-dd4424075a4f",
"status": "canceled"
}
}
Subscription Management
Subscription Sent for Signature
Sent when a subscription is created and sent for investor signature.
Event Type: subscription.subscription_status_change
Payload:
{
"event_type": "subscription.subscription_status_change",
"event_datetime": "2025-07-30T16:05:00Z",
"event_data": {
"integralization_key": "491e4f5c-a173-4ab8-8ec6-24e7aa228099",
"subscription_key": "eb791639-2931-41df-b087-731d40f07a7c",
"status": "waiting_signature"
}
}
Subscription Signed
Sent when the subscription is signed by all parties and is waiting for payment.
Event Type: subscription.subscription_status_change
Payload:
{
"event_type": "subscription.subscription_status_change",
"event_datetime": "2025-07-30T16:05:00Z",
"event_data": {
"integralization_key": "491e4f5c-a173-4ab8-8ec6-24e7aa228099",
"subscription_key": "eb791639-2931-41df-b087-731d40f07a7c",
"status": "waiting_payment"
}
}
Subscription Completed
Sent when the subscription is completely finalized after payment confirmation.
Event Type: subscription.subscription_status_change
Payload:
{
"event_type": "subscription.subscription_status_change",
"event_datetime": "2025-07-30T16:05:00Z",
"event_data": {
"integralization_key": "491e4f5c-a173-4ab8-8ec6-24e7aa228099",
"subscription_key": "eb791639-2931-41df-b087-731d40f07a7c",
"status": "finished"
}
}
Subscription Payment Management
Payment Receipt Included
Sent when a payment receipt is included and is waiting for confirmation.
Event Type: subscription_payment.subscription_payment_status_change
Payload:
{
"event_type": "subscription_payment.subscription_payment_status_change",
"event_datetime": "2025-07-30T16:05:00Z",
"event_data": {
"integralization_key": "491e4f5c-a173-4ab8-8ec6-24e7aa228099",
"subscription_key": "eb791639-2931-41df-b087-731d40f07a7c",
"subscription_payment_key": "1413020c-6965-40fb-a162-632459d35fd1",
"status": "waiting_confirmation"
}
}
Payment Receipt Approved
Sent when the payment receipt is approved and confirmed.
Event Type: subscription_payment.subscription_payment_status_change
Payload:
{
"event_type": "subscription_payment.subscription_payment_status_change",
"event_datetime": "2025-07-30T16:05:00Z",
"event_data": {
"integralization_key": "491e4f5c-a173-4ab8-8ec6-24e7aa228099",
"subscription_key": "eb791639-2931-41df-b087-731d40f07a7c",
"subscription_payment_key": "1413020c-6965-40fb-a162-632459d35fd1",
"status": "confirmed"
}
}
Event Flow
Commercial Paper Issuance Flow
- Issuer Registration →
issuer_status_change(approved/reproved) - Investor Registration →
investor_status_change(approved/reproved) - Operation Creation →
operation_status_change(pending_signature_submission) - Sent for Signature →
operation_status_change(waiting_signature) - Operation Issued →
operation_status_change(issued)
Subscription Flow
- Subscription Creation →
subscription_status_change(waiting_signature) - Signature Completed →
subscription_status_change(waiting_payment) - Receipt Inclusion →
subscription_payment_status_change(waiting_confirmation) - Payment Confirmed →
subscription_payment_status_change(confirmed) - Subscription Completed →
subscription_status_change(finished)
Best Practices
- Respond quickly: Return an HTTP 2xx status as quickly as possible to confirm webhook receipt.
- Asynchronous processing: For time-consuming operations, confirm receipt immediately and process the event asynchronously.
- Idempotency: Implement idempotent logic, as webhooks may be resent in case of network failure.
- Signature validation: Always validate the HMAC signature before processing the webhook.
- Logs and monitoring: Maintain detailed logs of all received webhooks for auditing and debugging.