Skip to main content
POST
Register a Pix key
Send the key’s type and — for every type but a random key (EVP) — its value. The key usually comes back ACTIVE, ready to receive. When the phone number or e-mail address must be proven yours, it comes back PENDING_CONFIRMATION: request a confirmation code, then confirm the key with it. A wallet can hold more than one key. Use default as walletId for the organization’s main wallet. When registering fails, the error is returned and the attempt stays in the wallet’s list as a FAILED key, with the reason in failReason. When the bank refused the key (a 422), nothing was registered: fix the cause and register it again. When the bank failed or didn’t answer in time (a 5xx), the key may have been registered anyway — registering the same CNPJ, CPF, e-mail or phone again then usually answers ENTRY_ALREADY_EXISTS; contact support to have it reconciled. If the bank throttles the request, you get a 429: wait and retry. You need to be an organization admin, or have the wallet shared with you as OWNER or USER.

Headers

x-environment
enum<string>

Environment of the wallet: LIVE (production) or TEST (sandbox). When you omit it, TEST is used; any other value is rejected.

Available options:
LIVE,
TEST

Path Parameters

realmId
string<uuid>
required

ID of your realm.

Format: UUID

organizationId
string<uuid>
required

ID of the organization.

Format: UUID

accountId
string
required

ID of the organization's account (24 hexadecimal characters).

Pattern: ^[0-9a-fA-F]{24}$
walletId
string
required

ID of the wallet that receives the key (24 hexadecimal characters), or default for the organization's main wallet.

Pattern: ^([0-9a-fA-F]{24}|default)$

Body

application/json
type
enum<string>
required

Kind of key: EVP (a random key the bank generates), CNPJ or CPF (the account holder's document), EMAIL or PHONE. A document key must be the account holder's own CPF or CNPJ.

Available options:
EVP,
CNPJ,
CPF,
EMAIL,
PHONE
Example:

"EMAIL"

value
string

The key to register. Required for every type but EVP, whose key is generated for you — a value sent with EVP is ignored. Formats: CPF, 11 digits; CNPJ, 14 characters (12 letters or digits, then 2 digits) without punctuation; EMAIL, a lowercase e-mail address; PHONE, + and the country code, area code and number, digits only (+5511987654321). At most 77 characters, and some words used in scams are refused.

Example:

"financeiro@horizontelog.com.br"

Response

Successful response

A Pix key of a wallet: an alias (a random key, a CPF or CNPJ, an e-mail address or a phone number) registered in the Pix directory so that payers can send Pix to the wallet without its bank details.

_id
string
required

ID of the Pix key — use it as pixDictId.

Example:

"6728b1e2b4d3e80012c9a5a1"

realmId
string
required

ID of the realm.

Example:

"f495ff0c-ab54-4f99-8e92-ca8682e4de9b"

organizationId
string
required

ID of the organization.

Example:

"c4bd3f21-dfbd-44e8-8055-68ba15bed410"

accountId
string
required

ID of the organization's account.

Example:

"66f2a1c7b4d3e80012c9a0b4"

walletId
string
required

ID of the wallet that holds the key.

Example:

"66f2a3d1b4d3e80012c9a0d2"

environment
enum<string>
required

Environment of the key: LIVE or TEST.

Available options:
LIVE,
TEST
Example:

"LIVE"

account
object
required

The bank account the key points to.

external
object
required

The key's identifiers in the Pix directory.

status
enum<string>
required

Status of the key:

  • ACTIVE — registered: Pix sent to the key reach the wallet.
  • PENDING_CONFIRMATION — waiting for the confirmation code sent to the phone number or e-mail address (request one with request-otp, then confirm it).
  • REMOVED — removed from the wallet, or claimed by another institution. A removed key stays listed.
  • FAILED — registering failed; failReason says why. When the bank refused the key, nothing was registered; when it failed or didn't answer in time, the key may have been registered anyway.
Available options:
ACTIVE,
PENDING_CONFIRMATION,
REMOVED,
FAILED
Example:

"ACTIVE"

type
enum<string>
required

Kind of key: EVP (random key), CNPJ, CPF, EMAIL or PHONE.

Available options:
PHONE,
EMAIL,
CPF,
CNPJ,
EVP
Example:

"EVP"

value
string
required

The key: a lowercase UUID for EVP, digits only for CPF and CNPJ (a CNPJ may carry letters in its first 12 positions), a lowercase e-mail address, or a phone number as + and digits (+5511987654321). On a FAILED key, what was sent — empty for an EVP that was never generated.

Example:

"9f1c2e7a-4b3d-4e8f-a6c1-2d5b7e9f0a13"

createdAt
string
required

When the key was created (ISO 8601).

Example:

"2026-11-04T14:05:12.348Z"

updatedAt
string
required

When the key was last updated (ISO 8601).

Example:

"2026-11-04T14:05:12.348Z"

__v
number
required

Internal version of the record.

Example:

0

failReason
string

Why the registration was refused, as <code> | <message> — for example ENTRY_KEY_OWNED_BY_DIFFERENT_PERSON | The key already exists in the provider, but is linked to another person. Only on FAILED keys.

Example:

"ENTRY_KEY_OWNED_BY_DIFFERENT_PARTICIPANT | The key is linked to another institution."