Skip to main content
POST
/
api
/
v3
/
deposit
/
crypto-bridge
/
webhook
/
provider
/
settlement
Webhook endpoint for provider settlement status updates
curl --request POST \
  --url https://sandbox-api.kotanipay.com/api/v3/deposit/crypto-bridge/webhook/provider/settlement \
  --header 'Content-Type: application/json' \
  --data '
{
  "webhook_type": "SETTLEMENT_STATUS_UPDATE",
  "provider_reference_id": "PROVIDER-TXN-20241122-001",
  "kotani_reference_id": "KOTANI-REF-789",
  "status": "COMPLETED",
  "timestamp": "2024-11-22T12:05:00Z",
  "crypto_payment": {
    "chain": "LIGHTNING",
    "token": "MSAT",
    "payment_hash": "a1b2c3d4e5f6...",
    "received_at": "2024-11-22T12:01:30Z",
    "amount_msat": 150000000,
    "crypto_amount": 150.5
  },
  "settlement_details": {
    "amount": 150,
    "currency": "ZAR",
    "recipient_phone": "+27821234567",
    "payment_method": "MOBILE_MONEY",
    "transaction_id": "ZA-TXN-789456",
    "settled_at": "2024-11-22T12:05:00Z",
    "provider": "VODACOM",
    "bank_name": "ABSA Bank"
  },
  "failure_details": {
    "failure_stage": "SETTLEMENT",
    "failure_reason": "RECIPIENT_ACCOUNT_INVALID",
    "failure_message": "Mobile number not registered with provider",
    "failed_at": "2024-11-22T12:04:00Z"
  },
  "refund_details": {
    "refund_method_used": "CRYPTO_INVOICE",
    "chain": "LIGHTNING",
    "token": "MSAT",
    "refund_initiated_at": "2024-11-22T12:04:05Z",
    "refund_status": "PENDING",
    "refund_invoice": "lnbc1500n1p0refund...",
    "refund_payment_hash": "refund123...",
    "refund_amount_msat": 150000000,
    "refund_crypto_amount": 150.5
  },
  "metadata": {
    "sender_name": "John Doe",
    "sender_country": "KE",
    "recipient_name": "Jane Smith",
    "recipient_country": "ZA",
    "notes": "Family support payment"
  }
}
'
{
  "success": true,
  "message": "Webhook received and processed.",
  "data": {}
}

Body

application/json
webhook_type
string
required

Webhook type identifier

Example:

"SETTLEMENT_STATUS_UPDATE"

provider_reference_id
string
required

Provider reference ID

Example:

"PROVIDER-TXN-20241122-001"

kotani_reference_id
string
required

Kotani reference ID

Example:

"KOTANI-REF-789"

status
enum<string>
required

Updated settlement status

Available options:
DEPOSIT_INITIATED,
DEPOSIT_CONFIRMED,
PAYMENT_SENT,
PAYMENT_CONFIRMED,
SETTLING,
COMPLETED,
FAILED,
REFUNDED
Example:

"COMPLETED"

timestamp
string
required

Webhook timestamp (ISO 8601)

Example:

"2024-11-22T12:05:00Z"

crypto_payment
object
required

Crypto payment details

settlement_details
object

Settlement details (if successful)

failure_details
object

Failure details (if failed)

refund_details
object

Refund details (if failed and refund initiated)

metadata
object

Transaction metadata

Response

success
boolean
Example:

true

message
string
Example:

"Webhook received and processed."

data
object