Skip to main content

Issue a payout (OCT / MoneySend)

Technical Author Note

Draft content to be reviewed and verified.

Use payouts to send funds to a payment card.

Payouts are used for approved push-to-card use cases such as marketplace disbursements, gig-economy payouts, gambling winnings, insurance payments, and other card-based disbursements. The card is the payout destination, and the PAYSTRAX configuration is the funding source.

PAYSTRAX determines the applicable card-scheme flow from the destination card. Visa payout transactions are processed as Original Credit Transactions, or OCTs. Mastercard payout transactions are processed using MoneySend.

This flow is separate from refunds linked to an existing payment. To return funds against a completed sale, use Refund a payment instead.

How it works

  1. Authenticate — attach your Bearer token and Integrator ID to the request headers.
  2. Place the destination card details in receiver.custom_data, including PAN, expiry, and holder name. The request uses the same endpoint as Accept a payment, with the card and configuration roles reversed.
  3. Set sender.configuration_id to your PAYSTRAX configuration, and custom_data.credit_type to direct_credit.
  4. POST to the same endpoint used for a sale. A successful payout returns status: pending and an id — save it as your payment_id.

Key rules

note
  • receiver holds the destination card; sender holds the configuration_id — the reverse of a sale.
  • custom_data.credit_type is direct_credit.
  • 3DS is not applicable — omit custom_data.authentication.
  • All purchase_data.billing and purchase_data.customer fields are required.
Request body
{
"amount": 1000,
"currency": "EUR",
"receiver": {
"type": "credit_card",
"custom_data": {
"pan": "4000000000000000",
"expiry_month": "12",
"expiry_year": "2030",
"holder_name": "NAME NAME"
}
},
"sender": {
"configuration_id": "idid+001"
},
"routing": {
"payment_flow": "credit_card"
},
"intent": "transfer",
"channel": "ecommerce",
"custom_data": {
"credit_type": "direct_credit"
},
"purchase_data": {
"billing": {
"street": "Main Street",
"house_number": "1",
"city": "City",
"state_or_province": "State",
"country": "UK",
"postal_code": "101"
},
"customer": {
"first_name": "Name",
"last_name": "Name",
"email": "email@email.com",
"mobile_phone": "+447777777777",
"ipv4": "000.0.000.00"
}
}
}
note

amount is in minor currency units — 1000 = 10.00 EUR. See Payment Flows for zero-decimal currencies.

Try it

Call this flow directly in the API Reference — select the Payout example.

  • POST Create Direct payment