Payout API
POST/rest/payout
/rest/payoutProduction URL
https://api.betterpayment.de/rest/payoutTest URL
https://testapi.betterpayment.de/rest/payoutPayout API is used to create payouts - transferring money from your merchant account to a customer's account. Unlike refunds, payouts do not require a previously created payment transaction (unreferenced transfers). This is useful for scenarios like disbursements, rewards, or compensation payments.
Only specific payment methods support payouts. Please check the Transaction Types section in Payment Methods to verify if your payment method supports payouts.
Payout API Request
Common Parameters
payment_typeStringrequiredorder_idStringrequiredamountFloatrequiredcurrencyStringrequiredISO 4217). Defaults to EURmerchant_referenceStringrequiredpostback_urlStringrequiredPOST /rest/payout
Authorization: Basic <base64(api_key:api_password)>
Content-Type: application/json
{
"payment_type": "cardpos",
"order_id": "PAYOUT-12345",
"amount": 50.00,
"currency": "EUR",
"merchant_reference": "Refund for order XYZ",
"postback_url": "https://your-postback.url.com"
}
Customer Information
first_nameStringlast_nameStringaddressStringcityStringcountryStringrequiredISO 3166-1 alpha-2 codepostal_codeStringemailString{
"first_name": "John",
"last_name": "Doe",
"address": "Rosenthalerstr. 8",
"city": "Berlin",
"country": "DE",
"postal_code": "10178",
"email": "john.doe@email.com"
}
POS-Specific Parameters
When creating POS (card-present) payouts using payment_type: "cardpos", additional parameters are required:
pos_dataObjectrequired{
"pos_data": {
"type": "...",
"card": { "number": "...", "expiry": "..." },
"terminal": { "type": "...", "id": "..." }
}
}
The pos_data object includes:
- type - Terminal entry mode information
- card - Card data (number, expiry, track2_data, emv_data)
- terminal - Terminal information (type, id, attended, capabilities)
For the full field list and types, see the POS Parameters block in the Payment API. Refer to POS Payment Method for end-to-end examples.
Payout API Response
transaction_idStringstatus_codeIntegerstatusStringorder_idStringerror_codeInteger{
"transaction_id": "0b3c2327-9394-4ab4-be18-6e9d85e652fd",
"status_code": 2,
"status": "completed",
"order_id": "PAYOUT-12345",
"error_code": 0
}