Skip to main content
POST
Create an immediate dynamic PIX QR code

Authorizations

Authorization
string
header
required

JWT bearer token issued by the identity provider.

Body

application/json
accountId
string
required

The CRM account id of the recipient (sources name + city).

Example:

"acc-123"

amount
integer<int64>
required

Amount in centavos (an integer).

Example:

10050

key
string
required

The recipient PIX key the dynamic QR pays into.

Example:

"recipient@bank.com"

recipientConciliationId
string
required

Conciliation id (idConciliacaoRecebedor); §8.3.2 mandatory; 26..35 alphanumeric ([a-zA-Z0-9]); dedup gate.

Example:

"JDPI2020010300000000000000000000001"

description
object[] | null

Optional additional-data entries (dadosAdicionais).

expirationTime
integer<int64>

QR expiration in seconds (0 = JDPI default).

Example:

3600

indirectId
string<uuid>

Optional identifier (UUID) of an indirect participant registered here. When that institution hosts its OWN dynamic-QR certificate, JDPI signs with its certificate, payloadUrl is built on its domain, and payloadJws is returned for it to host; otherwise the QR is signed and hosted by the direct participant exactly as if this were omitted. Omit for a direct QR. Validated server-side: unknown or inactive is rejected. IGNORED, without any error, while this tenant's indirect-participants feature is off.

Example:

"3f2504e0-4f89-41d3-9a0c-0305e82c3301"

payer
object

Optional payer block.

zipCode
string

Recipient postal code (cep).

Example:

"01310100"

Response

Created

qrCode
string
required

The generated EMV QR-code payload (base64-decoded, ready to render).

Example:

"00020126..."

documentId
string

The JDPI charge GUID (idDocumento) addressing the update leg (dynamic only).

Example:

"52c43361-caa1-4ddb-9152-708426a25db3"

payloadJws
string

The signed JWS payload, returned ONLY when the QR was generated under an indirect participant's own certificate — that indirect hosts it at payloadUrl on its own infrastructure. Absent on the direct path, where the plugin self-hosts it. It is returned ONCE and never stored: if this response is lost, do NOT re-create (the same recipientConciliationId is refused as a duplicate) — read the charge's documentId from GET /v1/qrcodes/list and re-sign it via PUT /v1/qrcodes/dynamic/{documentId} with the same indirectId, which returns a fresh payloadJws on a fresh payloadUrl.

Example:

"eyJhbGciOiJFUzI1NiJ9.eyJyZXYiOjB9.sig"

payloadUrl
string

The resolvable JWS host URL the dynamic QR embeds (urlPayloadJson; schema-less; dynamic only).

Example:

"pix.example.com/qr/cob/fzqRwuXYSweWofLD1OX2Bw"