Partner API

Webhooks

Taappa sends HTTPS POST events to your configured endpoints. Manage endpoints and signing secrets in the Developer portal.

Events

EventDescription
wallet.unlinkedWallet unlinked
wallet.frozenCard frozen
wallet.unfrozenCard unfrozen
physical_card_request.pendingPhysical request is PENDING
physical_card_request.in_productionPhysical request is IN_PRODUCTION
physical_card_request.rejectedPhysical request is REJECTED
physical_card_request.completedPhysical request is COMPLETED
physical_card_request.failedPhysical request is FAILED

Payload

json
{
  "id": "evt_abc123",
  "type": "physical_card_request.completed",
  "created_at": "2026-08-31T18:00:00Z",
  "data": {
    "request_id": "...",
    "wallet_id": "...",
    "card_series": "ABCD123456",
    "card_number": "****1234",
    "provider": "telebirr",
    "status": "COMPLETED",
    "environment": "test"
  }
}

Wallet events use the same envelope with type set to wallet.unlinked, wallet.frozen, or wallet.unfrozen.

Verifying signatures

Each delivery includes:

http
Taappa-Signature: t=<unix_timestamp>,v1=<hex_hmac>

Compute HMAC-SHA256 of {timestamp}.{raw_request_body} with your endpoint signing secret (whsec_*), then compare to v1.

Reject deliveries whose timestamp is too far from your server clock.

Retries

Failed deliveries are retried with backoff. After the final attempt, status is FAILED and can be resent from the Developer portal.