Home
Home
  1. 💸 Transaction API
  • 🚀 Getting Started
  • 🔎 Screening API
    • Overview
    • Blacklist Matching Logic
    • Blockchain Analysis
      POST
    • Individuals Analysis
      POST
    • Organizations Analysis
      POST
    • Screening Entities Summary Analysis
      POST
    • Create BlackList
      POST
    • Get All BlackList Records
      GET
    • Get Blacklist Record by ID
      GET
    • Delete Blacklist Record by ID
      DELETE
    • Update Blacklist Record by ID
      PATCH
    • Update Blacklist Settings Account
      PATCH
  • 🌊 Flow API
    • Overview
    • Flow Step: Identity Verification
    • Flow Step: Onboarding Individual
    • Flow Step: Onboarding Organization
    • 📡 Endpoints
      • Authentication token
      • Get Flow Instance
      • Get File from Flow Instance
      • Identity: Get Details
      • Identity: Get Files
      • Identity: Update Status
      • Onboarding: Get Details
      • Onboarding: Get File
      • Onboarding: Get Multiple Files
      • Onboarding: Update Status
    • 📤 Webhooks
      • Webhooks Overview
      • Flow
      • Identity Verification
      • Onboarding Individual
      • Onboarding Organizations
      • Identity Verification by Onboarding
  • 💸 Transaction API
    • 🔑 Authentication
    • Overview
    • Transaction Analysis
    • Transaction Status
    • Document Types
    • Cryptocurrencies
    • Diagram
    • 📤 Webhooks
  • 📡 Endpoints
    • Create operation
    • Get operation
    • Get valid document types
    • Get valid coins
  • 📂 Resources
    • Concept Details
    • Enum Validation
Home
Home
  1. 💸 Transaction API

📤 Webhooks

Webhook Configuration#

The URL must accept POST type requests
To receive notifications about changes in transaction statuses, you must configure this endpoint in your system and add the corresponding URL on the Rillis web platform. This way, you'll be ready to receive notifications whenever a transaction's status changes.

Webhook Payload Schema#

When a transaction status changes, Rillis will send a POST request to your configured webhook URL with the following payload:
ParameterTypeDescription
client_transaction_idStringTransaction ID, assigned by the querying company.
transaction_typeStringTransaction type: "fiat" or "crypto"
crypto_networkString or nullType of cryptocurrency network. Example: "Cardano".
crypto_assetString or nullType of asset. Example: "ADA".
sending_dollar_amountNumber or nullAmount in dollars.
sending_amountNumberAmount to be sent by the sender.
sending_currencyStringCurrency to be sent by the sender.
sending_walletString or nullSender's wallet address.
receiving_amountNumberAmount received by the beneficiary.
receiving_currencyStringCurrency received by the beneficiary.
receiving_walletString or nullBeneficiary's wallet address.
reasons_rejection_analysisString or nullRejection reason specified by the analysis.
reasons_rejection_operatorString or nullRejection reason specified by the operator.
rejected_atNumber (timestamp) or nullTimestamp when the transaction was rejected.
analyzed_atNumber (timestamp) or nullTimestamp when the transaction was analyzed.
stateStringCurrent state of the transaction.

Transaction States#

The state parameter can have the following values:
PROGRESS: The transaction is currently under analysis.
COMPLETED: The transaction has been analyzed and approved.
REJECTED: The transaction has been rejected during analysis.
COMPLIANCE: The client exceeded the threshold previously set by the company.
EVALUATION: Operator verification of the analysis is required.
CANCELLED: Transaction cancelled by the operator.

Example Webhook Payload#

A webhook notification will contain the following JSON payload:
{
  "client_transaction_id": "1616",
  "transaction_type": "fiat",
  "sending_dollar_amount": 20,
  "crypto_asset": null,
  "sending_amount": 268,
  "sending_currency": "CLP",
  "crypto_network": null,
  "sending_wallet": null,
  "receiving_amount": 100,
  "receiving_currency": "USD",
  "receiving_wallet": null,
  "reasons_rejection_analysis": null,
  "reasons_rejection_operator": null,
  "rejected_at": null,
  "analyzed_at": 1684356854091,
  "state": "COMPLETED"
}

Webhook Response Requirements#

Your webhook endpoint should respond with a 200 HTTP status code to acknowledge receipt of the notification. If Rillis does not receive a 200 response, it will retry sending the notification according to the following schedule:
1st retry: 5 minutes after the initial attempt
2nd retry: 15 minutes after the initial attempt
3rd retry: 30 minutes after the initial attempt
4th retry: 1 hour after the initial attempt
5th retry: 3 hours after the initial attempt
After the 5th retry, Rillis will stop attempting to send the notification.

Best Practices#

1.
Idempotency: Implement your webhook handler to be idempotent, as you may receive the same notification multiple times.
2.
Verification: Consider implementing a verification mechanism to ensure the webhook is coming from Rillis.
3.
Logging: Log all received webhooks for debugging and auditing purposes.
4.
Async Processing: Process webhooks asynchronously to avoid timeouts.
5.
Error Handling: Implement proper error handling to ensure your webhook endpoint can handle unexpected data.
Modified at 2025-05-29 15:05:05
Previous
Diagram
Next
Create operation
Built with