1. Payout Intent Actions
BNW CORE SERVICE
  • Card Vaulting
    • Create a card vault session
      POST
  • Fee Lookups
    • Compute fees for a transaction
      POST
  • Intent Action Status Lookups
    • Look up the status of an intent action
      GET
  • Payment Intents
    • Create a payment intent
      POST
    • Cancel a payment intent
      PATCH
    • List payment intents
      GET
    • Retrieve a payment intent
      GET
  • Intent Actions
    • Create an intent action
      POST
    • Advance an intent action to the next step
      PATCH
    • Retrieve the authentication session for a pending redirect action
      GET
  • Accounts
    • Create a new account
      POST
    • List accounts
      GET
    • Close an account
      DELETE
    • Update an account
      PATCH
    • Retrieve an account
      GET
    • Retrieve an account's daily payout limit status
      GET
  • API Keys
    • Create an API key
      POST
    • List API keys
      GET
    • Update an API key
      PATCH
    • Retrieve an API key
      GET
    • Revoke an API key
      DELETE
    • Rotate an API key's secret
      POST
  • App Setting Values
    • Delete an app setting value
    • Retrieve an app setting value
    • List app setting values
    • Create or update an app setting value
  • Entities
    • Create an entity
    • List entities
    • Close an entity
    • Update an entity
    • Retrieve an entity
    • Set the selected entity
    • Retrieve public metadata for the authenticated entity
    • Create an entity sandbox session
    • Retrieve one of your entities, including your membership
    • List my entities
  • Counterparties
    • Create a counterparty
    • List counterparties
    • Update a counterparty
    • Retrieve a counterparty
  • Maker Checker Approver Groups
    • Create a maker-checker approver group
    • List maker-checker approver groups
    • Deactivate a maker-checker approver group
    • Update a maker-checker approver group
    • Retrieve a maker-checker approver group
  • Bulk Payout Intent Actions
    • Create bulk payout intent actions
    • Retrieve a bulk payout intent action batch
    • Preview bulk payout intent actions
  • Payout Intent Action Retries
    • Retry a failed payout intent action
  • Payout Intent Actions
    • Create a payout intent action
      POST
    • List payout intent actions
      GET
    • Retrieve a payout intent action
      GET
  • Payout Intents
    • Create a payout intent
    • List payout intents
    • Retrieve a payout intent
    • Edit a payout intent
    • Cancel a payout intent's active schedule
    • Edit a payout intent's active schedule
    • Cancel a payout intent
  • Virtual Cards
    • Create a virtual card
    • List virtual cards
    • Update a virtual card
    • Retrieve a virtual card
  • Maker Checker Action Decisions
    • Record a decision on a maker-checker action
  • Maker Checker Actions
    • Retrieve a maker-checker action's status
    • List maker-checker actions
    • Withdraw a maker-checker action
  • Payment Pages
    • Create a payment page
    • List payment pages
    • Delete a payment page
    • Edit a payment page
    • Retrieve a payment page
    • Retrieve a published payment page by slug
  • Invoices
    • Create an invoice
    • List invoices
    • Retrieve an invoice
    • Edit an invoice
    • Retrieve an invoice as a PDF
    • Download a public invoice as a PDF
    • Retrieve a public invoice by invoice number
    • Send a reminder for an invoice
    • Send or resend an invoice
  • Entity Data
    • Retrieve the data submission checklist for an entity
    • Submit entity data for KYC requirements
    • List entity data
    • Review and decide on entity data submission
  • Unified Verifs
    • Proxy a DELETE request to the Verification API
    • Proxy a GET request to the Verification API
    • Proxy a PATCH request to the Verification API
    • Forward a POST request to the Verification API
  • Identity Session
    • List identity sessions
    • Complete the MFA step of a pending login session
    • Request a login MFA challenge or one-time-passcode
  • Identity Sessions
    • Terminate all active sessions for an identity
    • Terminate an identity session
  • Entity Sandboxes
    • Create an additional named entity sandbox
    • Delete an entity sandbox
    • Rename an entity sandbox
  • Identity Mfa
    • Passkeys
    • Enroll a new MFA method for the authenticated identity
    • List MFA methods for the authenticated identity
    • Retrieve an identity MFA method
    • Advance or transition the state of an existing MFA method
  • Auth
    • Log in with email and password
    • Register a new identity
    • Request an email verification link
    • Verify an email address
    • Request a password reset
    • Complete a password reset with a one-time token
    • Change the authenticated identity's password
    • Confirm a pending email address change
    • Request a change of the authenticated identity's email address
    • Resend an identity-confirmation email
    • Confirm a phone number change for the current identity
    • Request a phone number change for the current identity
  • Virtual Card Actions
    • Perform an action on a virtual card
  • ACLs
    • List all ACL definitions
  • Account Transfers
    • Create an account transfer
    • List account transfers
    • Retrieve an account transfer
  • ACL Roles
    • List all ACL roles
  • Counterparty Instruments
    • Add a bank account to a counterparty
    • List counterparty instruments
    • Remove a counterparty's bank account
  • Currency Conversion Quotes
    • Create a currency conversion quote
  • Entity Access
    • Change a team member's role on an entity
    • Remove a member's access to an entity
    • List an entity's team members
  • Entity Access Invites
    • Accept an entity access invitation
    • Invite a new member to an entity
    • List entity access invites
    • Revoke an entity access invite
  • Entity Ownership Transfers
    • Transfer ownership of an entity
  • Identity
    • Update the authenticated identity's name
    • Retrieve the authenticated identity
  • Money Action Confirmations
    • Confirm a money-moving action with PIN (and, where required, an authenticator code)
  • Payout Intent Action Returns
    • Record a payout intent action as returned
  • Payout Intent Action Status Logs
    • List a payout intent action's status history
  • Payout Intent Schedule Actions
    • Apply an action to a payout intent's schedule
  • Sandbox
    • Credit test money into an entity's sandbox wallet
    • Reset a shadow entity's sandbox
    • Get or create the sandbox identity for the authenticated identity
    • Provision a sandbox identity and master API key
    • Exchange the sandbox master API key for a login session
    • Fund an entity's test wallet with sandbox test money
  • Transactions
    • Retrieve a transaction
    • List transactions
  • Virtual Card Activity
    • List a virtual card's activity
  • Virtual Card Sessions
    • Create a virtual card viewing session
  • Virtual Card Topups
    • Top up a virtual card
  • Virtual Card Transaction Callbacks
    • Handle an inbound virtual card transaction callback
  • Virtual Card Withdrawals
    • Withdraw funds from a virtual card
  • Schemas
    • ErrorResponse
    • SuccessResponse
    • AccountBalance
    • Account
  1. Payout Intent Actions

Create a payout intent action

POST
/payout-intent-actions
Creates the action that actually moves funds for a single type payout intent that is in the pending state. This is a one-to-one operation for single intents: once an action exists for a payout intent, subsequent attempts fail with a 400 error instructing you to use the retry endpoint instead. Bulk intents must use the bulk payout intent actions endpoint instead of this one.
The entity_id is always resolved from the authenticated caller and cannot be supplied in the request body.
Two action types are supported via type:
cash-offline — records an offline/manual disbursement. No provider or fee is resolved and the action is marked successful immediately.
payout — dispatches the disbursement through a live payment provider. The endpoint resolves an enabled provider and applicable fee for the destination currency, checks that the debited account has sufficient available ledger balance (returning 400 if it does not), creates the action in a pending state, and queues it for asynchronous processing.
account_id, currency, and amount are all optional and fall back to the values already set on the parent payout intent when omitted, letting you override any of them per-action. The counterparty object identifies the bank account the funds are sent to; if a matching counterparty and bank instrument already exist for the entity they are reused, otherwise new records are created as part of this call.
For a payout type action where the destination currency differs from the debited account's currency, quote_id must reference a previously created, still-active currency conversion quote whose from_currency matches the account currency; the quote is claimed exclusively by this action (reusing an already-consumed quote fails with a 409) and its from_amount, exchange rate, and fee are pinned onto the action as source_amount, source_currency, exchange_rate, and conversion_fee.
When called with a JWT session, this endpoint also requires a valid, unused money_action_confirmation_id (minted via POST /money-action-confirmations with action_type payout_action and reference_id set to the payout_intent_id, after the caller re-confirms their PIN) in the request body. This requirement is skipped entirely for secret-API-key requests, since PIN confirmation only applies to interactive human sessions.
For single intents, a successful call also advances the parent intent's status to processing (for payout) or successful (for cash-offline).

Request

Authorization
JWT Bearer
Add the parameter
Authorization
to Headers
Example:
Authorization: ********************
or
Bearer Token
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
or
Body Params application/jsonRequired

Examples

Responses

🟢201
application/json
Payout intent action created successfully.
Bodyapplication/json

🟠400
🟠401
🟠404
🟠409
Request Request Example
Shell
JavaScript
Java
Swift
cURL
curl --location '/payout-intent-actions' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "payout_intent_id": "01HXYZ9876543210ZYXWVUTSRQ",
    "type": "payout",
    "counterparty": {
        "email": "jane.doe@example.com",
        "account_number": "0123456789",
        "bank_code": "058",
        "bank_name": "Guaranty Trust Bank"
    }
}'
Response Response Example
201 - Success
{
    "message": "Payout intent action created successfully",
    "status": "success",
    "data": {
        "id": "01HXYZAAAABBBBCCCCDDDDEEEE",
        "entity_id": "01HABC9999888877776666ZZZZ",
        "account_id": "01HXYZ1234567890ABCDEFGHIJ",
        "currency": "NGN",
        "amount": 50000,
        "payout_intent_id": "01HXYZ9876543210ZYXWVUTSRQ",
        "client_meta": null,
        "system_meta": null,
        "narration": "Vendor settlement for invoice #4521",
        "client_reference": null,
        "counterparty": {
            "id": "01HCPTYAAAABBBBCCCCDDDDEE",
            "account_number": "0123456789",
            "bank_code": "058",
            "bank_name": "Guaranty Trust Bank",
            "email": "jane.doe@example.com"
        },
        "type": "payout",
        "status": "pending",
        "status_reason": null,
        "provider_code": "flutterwave",
        "applicable_fee": 250,
        "source_amount": 50000,
        "source_currency": "NGN",
        "exchange_rate": 1,
        "conversion_fee": 0,
        "quote_id": null,
        "occurrence_number": null,
        "scheduled_for": null,
        "created": 1754393520000,
        "updated": 1754393520000
    }
}
Modified at 2026-09-30 00:29:30
Previous
Retry a failed payout intent action
Next
List payout intent actions
Built with