Skip to main content
POST
Create a payment

Authorizations

api-key
string
header
required

Headers

Idempotency-Key
string
required

Required unique key (UUID recommended) that makes payment creation safe to retry by replaying the original response; retained 24h per partner, omitting it returns 400.

Maximum string length: 255
Melio-Sonar-Token
string

Signed MelioSonar session token from the initiating device, used for risk evaluation; invalid or expired tokens return 403.

Melio-Entity-Id
string
required

Entity the request operates on — an entity id (ent_<uuid>) or me (the partner's sole entity).

Body

application/json
amount
integer
required

Minor units (cents)

originatingAccountId
string
required

Internal originating account id (acct_), the debit account

receivingAccountId
string
required

External receiving account id (acct_), the credit account

deductionDate
string<date>
required
deliveryPreference
enum<string>
required

Required, and explicit about the receiving rail. Pick the normal-speed value that matches the receiving external account (standard-ach, standard-check, domestic-wire, virtual-card). The faster variants, same-day-ach / rtp (ach), express-check / overnight-check (check), instant-domestic-wire (domestic-wire), and instant-virtual-card (virtual-card), require an ACH originating account and pass a per-payment eligibility check. The preference's rail must match the receiving external account, otherwise the request is rejected with 400; a faster variant that is ineligible for the payment is likewise rejected with 400 (never silently downgraded).

Available options:
standard-ach,
same-day-ach,
rtp,
standard-check,
express-check,
overnight-check,
domestic-wire,
instant-domestic-wire,
virtual-card,
instant-virtual-card
compliance
object
required

Compliance details, discriminated by type. Only goods-and-services is supported today; future payment types (internal money movement, mass payouts) will add their own variants with different fields.

currency
string
default:USD
noteToSelf
string

Payer-private memo, never shown to the recipient

noteToRecipient
string

Note shown to the payment recipient

externalId
string

Your own unique identifier for the resource. Unique per partner per resource type (reusing one returns 409 DUPLICATE_EXTERNAL_ID). Distinct from the Idempotency-Key header, which dedupes the request rather than identifying the resource.

Maximum string length: 255
Pattern: ^[A-Za-z0-9_-]+$
metadata
object

Free-form string key/value pairs stored and returned verbatim, never interpreted by Melio. Up to 50 keys; each key 1 to 40 chars and may not contain square brackets ([ ], reserved for the metadata[key] filter); value ≤100 chars. Filterable via metadata[key].

Response

Payment created.

fees
object[]
required

The fees charged for this payment, as recorded by the fees service. Includes both the originator-side and receiver-side fees; use chargeTo on each item to tell them apart. Always present — an empty array when no fees have been recorded yet (e.g. a freshly created payment).

id
string

Opaque payment id (pay_)

externalId
string

Your own unique identifier for the resource. Unique per partner per resource type (reusing one returns 409 DUPLICATE_EXTERNAL_ID). Distinct from the Idempotency-Key header, which dedupes the request rather than identifying the resource.

Maximum string length: 255
Pattern: ^[A-Za-z0-9_-]+$
amount
integer
currency
string
originatingAccountId
string

Internal originating account id (acct_)

receivingAccountId
string

External receiving account id (acct_)

deductionDate
string<date>
deliveryPreference
enum<string>

Effective delivery preference. Reflects the faster variant when one was applied, otherwise the receiving rail's normal-speed value.

Available options:
standard-ach,
same-day-ach,
rtp,
standard-check,
express-check,
overnight-check,
domestic-wire,
instant-domestic-wire,
virtual-card,
instant-virtual-card
deliveryDate
string<date>
status
enum<string>

While a payment is being reviewed it is reported as scheduled; there is no separate review status.

Available options:
scheduled,
in-progress,
completed,
failed,
canceled
noteToSelf
string

Payer-private memo, never shown to the recipient

noteToRecipient
string

Note shown to the payment recipient

metadata
object

Free-form string key/value pairs stored and returned verbatim, never interpreted by Melio. Up to 50 keys; each key 1 to 40 chars and may not contain square brackets ([ ], reserved for the metadata[key] filter); value ≤100 chars. Filterable via metadata[key].

createdAt
string<date-time>
updatedAt
string<date-time>