Create a payee

Create a new payee. The payerId is inferred from the authenticated caller.

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.PayeeEmailConflict. Retrieve the
    blocking payee with filter[email][eq] on the list endpoint, then PATCH it with
    whatever you meant to change. An email held only by a Deactivated payee does not
    conflict at all; that create proceeds.

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

When that pre-existing payee's context differs from the requested one, the request returns 409 ResourceConflict instead of the 201. PATCH cannot change context; use POST /v3/payments/payees/{payeeId}/change-context.

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

Create a Payee counterparty record for the authenticated payer. Payments does not create an Account or Person. Provide profile.email as the invitation destination. Resolution happens later through invite, claim, or the trusted associatePayeeAccount workflow. Create does not accept payeeAccountId; callers that already control the payee Account create the Payee first and then call associatePayeeAccount.

string
enum

W-9 source selection, independent of payout destination and read-only w9Source provenance. The fallback mode uses the payer's complete W-9 when payee data is not shared or incomplete. RPC errors propagate. Omit on update to preserve the policy.

Allowed:
string
enum

Payout destination selection, independent of W-9 selection. The fallback mode uses the payer-managed destination when the payee's destination is absent, invalid, or inaccessible. RPC errors propagate. One complete configuration is selected; sources are never merged. Omit on update to preserve the policy.

Allowed:
string

Optional ComplianceEntity supplied by the payer for this Payee before the Payee has linked its own Account.

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
required

Required. Declares the kind of worker this Payee is to you, which fixes the engagement types the relationship may hold. Use change-context to change it later.

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