Skip to main content

The PayoutIntent object

A payout intent represents a two-step payout. Step 1: Create the intent with basic details. Step 2: Submit the required fields and confirm.

note

23 of 23 fields on this object have no description yet. Field documentation lives in the SDK types (types/payout.ts) so it stays in one place — this page is generated from it.

Fields

FieldTypeDescription
intentId
REQUIRED
string
status
REQUIRED
PayoutIntentStatusSee PayoutIntentStatus. PayoutIntentStatus
amount
REQUIRED
number
currency
REQUIRED
string
country
OPTIONAL
string
beneficiaryName
REQUIRED
string
beneficiaryEmail
OPTIONAL
string
payoutType
OPTIONAL
string
isCrypto
OPTIONAL
boolean
purpose
OPTIONAL
string
customerId
OPTIONAL
string
requiredFields
OPTIONAL
PayoutFieldDefinition[]
optionalFields
OPTIONAL
PayoutFieldDefinition[]
oneOfGroups
OPTIONAL
string[][]
payoutId
OPTIONAL
string
processingFee
OPTIONAL
number
totalDebitedAmount
OPTIONAL
number
failureReason
OPTIONAL
string
expiresAt
REQUIRED
string
confirmedAt
OPTIONAL
string
completedAt
OPTIONAL
string
createdAt
REQUIRED
string
updatedAt
OPTIONAL
string

Example

{
"intentId": "intent_1a2b3c",
"status": "requires_confirmation",
"amount": 5000,
"currency": "USD",
"country": "string",
"beneficiaryName": "string",
"beneficiaryEmail": "customer@example.com",
"payoutType": "string",
"expiresAt": "2026-01-15T09:30:00Z",
"createdAt": "2026-01-15T09:30:00Z"
}

Usage

// Step 1
const intent = await zenpays.payouts.createPayoutIntent({
amount: 10000,
currency: 'INR',
country: 'IN',
beneficiaryName: 'John Doe',
})

// Step 2 — fill the required fields from intent.requiredFields
const result = await zenpays.payouts.confirmPayoutIntent(intent.intentId, {
beneficiaryAccount: '1234567890',
beneficiaryIfsc: 'HDFC0001234',
})