Send funds to a customer with no Omno UI, using a directRouteId. Direct Link payout supports APM.
POST /v3/public/payout with a directRouteId and the required CreatePayoutRequest fields.
curl -X POST "https://api.omno.com/v3/public/payout" \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{
"orderId": "order-2026-000124",
"value": 100.00,
"currency": "EUR",
"kycVerified": true,
"customer": {
"externalUserId": "3183818381183",
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@example.com",
"phoneNumber": "1 1234567890",
"dateOfBirth": "1990-12-01",
"billing": {
"address": "123 Main St",
"city": "Atlanta",
"state": "GA",
"countryCode": "US",
"postalCode": "30308"
}
},
"directRouteId": "944732c4608c441aa91379478b91f76e"
}'Response:
{
"payoutId": "944732c4608c441aa91379478b91f76e",
"status": "CREATED"
}CreatePayoutRequest fields:
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
orderId | string | Yes | Your unique identifier for the payout. | order-2026-000124 |
value | number | Yes | Payout amount. | 100.00 |
currency | string | Yes | ISO 4217 currency. | EUR |
kycVerified | boolean | Yes | Whether the customer is KYC-verified in your system. | true |
customer | object | Yes | CustomerRequest. | |
directRouteId | string | Yes (Direct Link) | Direct Link Route ID. | 944732c4608c441aa91379478b91f76e |
merchantAdditionalData | object | No | Additional data for the transaction. |
POST /v3/public/payout/{payoutId}/process/direct-link with browser and additionalData.
curl -X POST \
"https://api.omno.com/v3/public/payout/944732c4608c441aa91379478b91f76e/process/direct-link" \
-H "Authorization: Bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{
"browser": {
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
"language": "en-US",
"customerIp": "203.0.113.10",
"javascriptEnabled": true
},
"additionalData": {}
}'See the Browser field table for how to collect each value. additionalData carries the destination details for the payout method; your Omno integration team provides the exact keys for your providers.
If the payout enters WAITING_FOR_CONFIRMATION, confirm or reject it via the API — see Payouts & manual approval and the payout API.
Determine the outcome from a webhook or a GET on the transaction.
- Rejected —
REJECTEDafter a reject call; never sent to a provider. - PSP failure —
FAILED. - Timeout —
TIMEOUT; may resolve later. - Pending resolving asynchronously —
PENDING; final status via webhook.