Skip to main content
POST
Outgoing payments send funds to a beneficiary’s payment destination, funded from a virtual account, with an optional platform fee. Routes are account-scoped (/accounts/{account_id}/…); the account must belong to your organization. Fee-collection accounts managed by Hop are not accessible via these routes (404).
Approvals and settlement are not client-driven. Hop performs state transitions (approve/reject/settle/fail/reverse); clients observe the resulting status and balance changes through this API.
Platform fee semantics: the platform fee is part of payment creation — not a separate API. The fee is held on the source virtual account at create, collected on settlement, and released back to the source balance on reject, fail, or pre-settle reversal. A post-settle reversal returns the payment amount but does not auto-refund a collected fee.
Sends funds to a beneficiary’s payment destination, debiting a virtual account. The order starts at pending_review when configured approval is required, or pending when approval is not required; amount — plus platform_fee_amount if set — is held on the source virtual account until the payment settles or fails.

Path Parameters

string
required
Id of the account (acct_…) the payment is created under.

Headers

string
required
Unique key for this payment create. Re-using a key for the same account returns the previously created payment.

Request Body

string
required
Id of the source virtual account (va_…) to debit.
string
required
Id of the beneficiary (bene_…).
string
required
Id of the beneficiary’s payment destination (dest_…).
decimal
required
Recipient amount, in the destination currency. Must be greater than 0.
enum
required
One of wire, ach, fedwire, spei, pix, manual. Must be among the destination’s supported payment_methods.
enum
required
One of supplier_or_vendor_payment, between_own_entities, salary_or_payroll, trade_settlement, tax_payment, other.
string | null
Private note for your platform, up to 500 characters. Not visible to the receiving bank.
string | null
Bank-visible memo, up to 140 characters (SWIFT MT103 Field 70).
datetime | null
Recorded for your reference only. Scheduled dispatch is not yet available, so a future timestamp does not delay the payment — it dispatches once it reaches pending either way, and scheduled_dispatched_at stays null. Talk to Hop before relying on scheduling.
decimal
Add-on platform fee, ≥ 0, default 0. Held in addition to amount and collected on settlement.
If platform_fee_amount > 0, fee collection must be enabled for the currency (contact Hop). A wire payment also incurs a Hop SWIFT wire-out fee, held when the payment is created and debited on settlement. amount + platform_fee_amount, plus that wire-out fee, must not exceed the source account balance — so a payment can be rejected for insufficient balance even when the amount and platform fee alone would fit. Failures return 422.The payment destination must be denominated in the same currency as the source virtual account; there is no FX on this route, and a mismatch returns 422 with error code CURRENCY_MISMATCH.

Response

Returns 200 with the new payment’s id. Use Get Payment to retrieve the full object, including review status and the debit receipt.
string
Id of the new payment (apo_…).