Skip to main content

Overview

FLEX can send webhook notifications to a partner-configured webhook URL whenever important partner events occur. For the Partner API, the current webhook events are:
  • transaction.status — sent for successful partner gateway or terminal transaction flows
  • wallet.debited — sent when a partner-scoped wallet is debited
  • wallet.credited — sent when a partner-scoped wallet is credited
These webhooks allow you to:
  • update your internal ledger in near real time
  • reconcile wallet movements against your internal references
  • react to successful partner collections and wallet operations

Delivery Model

Webhooks are sent as POST requests to your configured webhook URL.

Retry Behavior

FLEX retries webhook delivery automatically when:
  • the destination returns a non-200/201 response, or
  • the request fails due to a network/server error
Retry characteristics:
  • Maximum attempts: 5
  • Backoff: exponential backoff with jitter
FLEX considers webhook delivery successful only when your endpoint responds with HTTP 200 or 201.

Security

Each webhook request includes this header:
  • R-Signature: HMAC-SHA512 signature of the JSON payload
The signature is generated from:
  • the raw JSON payload body
  • your partner ClientID as the signing secret

Signature Verification Example

Verify the signature before processing the webhook. Reject unsigned or invalidly signed webhook requests.

Common Webhook Envelope

All partner webhooks use the same top-level structure:

Envelope Fields


Event: transaction.status

This event is sent for successful partner transaction flows such as partner gateway or terminal transactions.

When it is sent

  • on successful PARTNER_GATEWAY transactions
  • on successful PARTNER_TERMINAL transactions

Payload Example

Processing Guidance

Use this webhook to:
  • mark a partner transaction as successful in your system
  • reconcile the partner reference against your internal payment record
  • update terminal- or merchant-level settlement views

Event: wallet.debited

This event is sent when value moves out of a partner-scoped wallet.

When it is sent

Typical cases include:
  • a partner wallet debit request
  • any wallet history entry where the amount is negative

Payload Example

Processing Guidance

Use this webhook to:
  • update available balance in your institution-facing systems
  • attach the wallet movement to your internal transfer or agent operation
  • trigger operational alerts for large-value debits

Event: wallet.credited

This event is sent when value moves into a partner-scoped wallet.

When it is sent

Typical cases include:
  • a partner wallet credit request
  • a refund that returns funds into the referenced wallet
  • any wallet history entry where the amount is positive

Payload Example

Processing Guidance

Use this webhook to:
  • recognize successful credits or refunds
  • update customer-facing ledger balances in your own systems
  • reconcile reversal outcomes using data.Transaction.Reference

When implementing your webhook endpoint:
  1. Verify the R-Signature
  2. Parse the event type
  3. Check whether the reference is known in your system
  4. Process the webhook idempotently
  5. Return 200 or 201 as soon as the event is safely accepted

Idempotency Tips

  • store processed webhook events using the combination of event, reference, and data.Transaction.Reference
  • make all downstream updates safe to repeat
  • do not assume delivery happens only once

Example Receiver Contract

Partner Overview

Authentication, capabilities, and base URLs

Wallet API

Wallet references, summaries, debit, credit, and refund endpoints

Transactions API

Partner transaction initiation and lookup

OpenAPI Spec

Partner API schemas including webhook payload models