How do I set up a webhook?
In the dashboard:
- Go to Developers, Webhooks and click Create Webhook.
- Enter a Name for your own reference and the Webhook URL of your receiving endpoint.
- Choose Hook Type: Transaction.
- Select the transaction events you want to receive.
- Optionally choose an authorisation method, then click Create.
The same page shows every delivery: the full request payload, your server’s response and the status of each attempt.
What does Omno send?
An HTTP POST with a JSON body describing the transaction, whenever it reaches a state you subscribed to: creation, processing updates, success, failure or timeout.
{
"event": "payment.status_changed",
"transaction_id": "txn_8f2c41e9",
"status": "SUCCESS",
"amount": 150.00,
"currency": "BRL",
"method": "pix"
}
This example is illustrative and simplified. Base your parser on the payloads you see in the delivery log for your account.
How should my backend handle webhooks?
Four rules keep balances correct:
- Respond quickly. Acknowledge with a 2xx response and do heavy work asynchronously.
- Process idempotently. The same transaction can arrive more than once.
- Never downgrade a final status. If
SUCCESSis recorded, an olderPENDINGthat arrives later changes nothing. - When in doubt, ask. Call
GET /public/payin/{id}orGET /public/payout/{id}for the authoritative status.
What happens when my endpoint is down?
Omno retries a failed delivery up to 10 times, and every attempt is visible in the delivery log. Fix the endpoint, then reconcile anything still open with Get Transaction Info.
How do I keep test transactions out of real balances?
Check the provider ID. Transactions processed by a fake provider carry its ID in merchantPspId or processorPspId. Your crediting logic should ignore them, before and after go-live.