Skip to main content
POST
Creates one method attempt without changing the Payment’s obligation, recipient, settlement or commercial fee snapshot. Pass a Direct or Routing paymentMethodId from List payment methods, or the hosted on-ramp method with a receiptEmail (plus optional fiatCurrency and returnUrl). Hosted-on-ramp-only fields are rejected for crypto methods. Routing quotes are fetched only after this selection and are immediately converted into a funding order. Idempotency-Key is required.

Authorizations

Authorization
string
header
required

Short-lived browser capability for exactly one payment_* resource. Never place it in a URL.

Headers

Idempotency-Key
string
required

Use this for retry-safe payment operations from your backend.

Example:

"payment-request-001"

Path Parameters

paymentId
string
required

Canonical payment_* identifier. Internal execution identifiers are never accepted by Partner Payment routes.

Pattern: ^payment_[A-Za-z0-9_-]+$
Example:

"payment_123"

Body

application/json
paymentMethodId
string
required

Use a direct or Routing id returned by payment-method discovery. Hosted-on-ramp-only fields are rejected.

Maximum string length: 160
Pattern: ^(crypto\.direct|routing\.[a-z0-9_.:-]+)$
Example:

"crypto.direct"

Response

Selected payment option

previousSelectedOptionId
string | null
required
Example:

"pay_option_previous"

option
object
required