Create a payer

Create a new Payer record for the authenticated account. Idempotent via Idempotency-Key. Fires Payer.Created on success.

If externalId is supplied and already used by another resource of this type for the owning Account, the request returns 409 ResourceConflict; create is not an upsert. Use filter[externalId][eq] on the list endpoint to retrieve the existing resource.

profile.email is also not an upsert key, and a duplicate does not always conflict. Which of the two outcomes below you get turns on internal record keying, NOT on anything this API exposes — so handle both rather than trying to predict which:

  • 409 ResourceConflict with detailCode payments.PayerEmailConflict. Retrieve the
    blocking payer with filter[email][eq] on the list endpoint, then PATCH it with
    whatever you meant to change. An email held only by a Deactivated payer does not
    conflict at all; that create proceeds.

  • 201 with the PRE-EXISTING payer, reactivated if it was Deactivated, and no
    Payer.Created webhook fires. Nothing you submitted is applied, and events.createdAt
    is the original creation time — so a 201 does not by itself mean a payer was created.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Create a Payer record for the authenticated account. Creating a Payer does not create an Account or Person. Provide profile.email as the invitation destination. payerAccountId, when supplied, is only a best-effort resolution hint; if it cannot be resolved, create proceeds by email without the hint. Resolution happens later through the link flow (createPayerLinkRequest), not at create time.

string
^(?:[A-Za-z0-9_.]{22}|[a-f0-9]{24})$

Optional best-effort hint for the payer counterparty's own Account. Never creates or links by itself, and an unresolved hint is ignored rather than returned as an account-existence error. Distinct from the resource's accountId (the owner).

string

Customer's own ID for reconciliation.

profile
object
required

Local display and contact profile for a new payer or payee record. Each field is stored and returned exactly as sent. Legal, tax, and verification details belong on the related ComplianceEntity.

string
enum
Defaults to PreferPayerAccountSupplied

Client-administered policy naming which side's collection funding configuration is authoritative after the Payer links. While unlinked, the Client-supplied configuration is authoritative. AlwaysPayeeAccountSupplied and AlwaysPayerAccountSupplied consult only the named side; PreferPayerAccountSupplied consults the Payer-supplied configuration first and falls back to the Client-supplied configuration when absent. The fallback unit is the indivisible funding-authorization pair, never a per-field merge, and revoked authorization is invalid under every value. This selector does not enable invoice auto-pay. While unlinked, collection uses Payer.isAutomaticInvoiceCollectionEnabled; linked-payer auto-pay uses Payee defaults or PayeeEngagement overrides. Changes apply to new collections only; in-flight reservations keep their snapshotted pair.

Allowed:
metadata
object

Free-form key-value pairs. Max 50 keys; key length at most 40 characters; value length at most 500 characters. Where a list endpoint declares metadata filtering, it uses the QueryQL namespace via filter[metadata.{key}][eq]=value or filter[metadata.{key}][in][]=value. Endpoints that do not declare the dynamic Metadata filter do not support Metadata filtering.

Headers
string
length between 1 and 255
^[\x21-\x7e]{1,255}$

Optional idempotency token for authenticated POST and PATCH requests. Reusing the same key and body returns the cached response for 24 hours, except credential operations that explicitly document a 409 because one-time secret material is never cached; reusing it with a different body returns 409 IdempotencyKeyConflict. Use 1-255 printable ASCII characters.

string
^(?:[A-Za-z0-9_.]{22}|[a-f0-9]{24})$

Select the Account for an Account-scoped operation. A direct ServiceAccount API key MUST supply this header, and the target must be within the ServiceAccount owner's or Authorization grant's Account boundary. A Person bearer may select an Account on which it has an active Stakeholder, and an Account session may select its bound Account (or a descendant only when the session explicitly includes descendants).

string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
application/problem+json