Skip to main content

Automatic Pix Webhooks

Webhook notifications are essential for the proper processing of asynchronous events related to Automatic Pix, especially including authorizations and executions of recurring payments in different journeys.

Attention!

QI Tech webhooks should not be mapped in a restrictive manner. Additional fields may be included in the webhook payloads returned by our APIs.

Recurrence Status Webhook

This webhook is intended to report status changes of authorizations and recurrence cycles of Automatic Pix, differentiating the types of journeys involved.

Webhook Request Body

Journey 1 – journey_one

Request Body: Journey 1
{
"event_type": "baas.automatic_pix.outgoing_recurrence.status_change",
"origin_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"data": {
"request_control_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
"outgoing_recurrence_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"outgoing_recurrence_status": "approved",
"journey_type": "journey_one",
"outgoing_recurrence_data": {
"minimum_recurrence_amount": 123.45,
"recurrence_amount": null
},
"payment_conciliation_batch_key": "uuid"
}
}

Journey 2 – journey_two

Request Body: Journey 2
{
"event_type": "baas.automatic_pix.outgoing_recurrence.status_change",
"origin_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"data": {
"request_control_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
"outgoing_recurrence_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"outgoing_recurrence_status": "approved",
"journey_type": "journey_two",
"outgoing_recurrence_data": {
"minimum_recurrence_amount": 123.45,
"recurrence_amount": null
},
"payment_conciliation_batch_key": "uuid" or null
}
}

Journey 3 – journey_three

Request Body: Journey 3
{
"event_type": "baas.automatic_pix.outgoing_recurrence.status_change",
"origin_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"data": {
"request_control_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
"outgoing_recurrence_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"outgoing_recurrence_status": "approved",
"journey_type": "journey_three",
"outgoing_recurrence_data": {
"minimum_recurrence_amount": 123.45,
"recurrence_amount": null,
"qr_code_initial_payment_data": {
"receiver_conciliation_id": "id",
"transaction_data": {
"transaction_key": "uuid",
"pix_transfer_key": "uuid",
"end_to_end_id": "end_to_end"
}
},
"payment_conciliation_batch_key": "uuid" or null
}
}
}

Journey 4 – journey_four

Request Body: Journey 4
{
"event_type": "baas.automatic_pix.outgoing_recurrence.status_change",
"origin_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"data": {
"request_control_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
"outgoing_recurrence_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"outgoing_recurrence_status": "approved",
"journey_type": "journey_four",
"outgoing_recurrence_data": {
"minimum_recurrence_amount": 123.45,
"recurrence_amount": null
},
"qr_code_initial_payment_data": {
"receiver_conciliation_id": "id",
"transaction_data": {
"transaction_key": "uuid" or null,
"pix_transfer_key": "uuid" or null,
"end_to_end_id": "end_to_end" or null
}
},
"payment_conciliation_batch_key": "uuid" or null
}
}
Attention

When the payer user receives the notification, they can choose to schedule the Pix or make the transfer at that moment. If the payer makes the payment instantly, the baas.automatic_pix.outgoing_recurrence.status_change webhook will be sent with the information filled in, in case of scheduling the values will be null.

Webhook Body Params

FieldTypeDescriptionCharacters
event_type *stringType of reported event (example: baas.automatic_pix.outgoing_recurrence.status_change).100
origin_key *stringUnique identifier of the event origin (UUID).36
data *ObjectMain object containing the automatic recurrence details.Data Object

Data Object

FieldTypeDescriptionCharacters
request_control_key *stringUnique request control key (UUID4).36
outgoing_recurrence_key *stringUnique identifier of the automatic recurrence (UUID).36
outgoing_recurrence_status *stringStatus of the recurrence in question (ex: approved, pending, rejected, etc.)30
journey_type *enumeratorJourney corresponding to the Automatic Pix authorization (journey_one, journey_two, etc.).journey_type Enumerators
outgoing_recurrence_data *ObjectObject containing specific recurrence and journey information.outgoing_recurrence_data Object
payment_conciliation_batch_keystringGrouping identifier for payment conciliation. May be null.36 or null
qr_code_initial_payment_dataObject(Journey 3 and 4) Details of initial QR Code payment data, if any.qr_code_initial_payment_data Object

outgoing_recurrence_data Object

FieldTypeDescriptionCharacters
minimum_recurrence_amountnumberMinimum amount of the authorized recurrence.-
recurrence_amountnumberTotal amount of the recurrence (may be null if not applicable).-
qr_code_initial_payment_dataObject(Journey 3) Detailed data of the initial payment if QR Code is used.qr_code_initial_payment_data Object
payment_conciliation_batch_keystringPayment batch/conciliation identifier.36

qr_code_initial_payment_data Object

FieldTypeDescriptionCharacters
receiver_conciliation_idstringUnique identifier of the receiver's conciliation.-
transaction_dataObjectTransaction details associated with the initial QR code.transaction_data Object

transaction_data Object

FieldTypeDescriptionCharacters
transaction_keystringUnique transaction key.36
pix_transfer_keystringAssociated Pix transfer identifier.36
end_to_end_idstringPix end-to-end identifier.32

journey_type Enumerators

EnumeratorDescription
journey_oneDirect notification in banking app
journey_twoQR Code experience for recurring billing
journey_threeInstant payment + QR Code recurrence
journey_fourRecurring opt-in from Pix operation

Payment Order Status Webhook

This webhook is intended to report status changes of Automatic Pix payment orders, informing about cancellations, completed payments, and rejections.

Webhook Request Body

Status: Cancelled (cancelled)

Request Body: Cancelled Payment Order
{
"event_type": "baas.automatic_pix.payment_order.status_change",
"origin_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"data": {
"payment_order_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"payment_order_spi_id": "RR2222222220240429njua7shf40k",
"outgoing_recurrence_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
"payment_order_status": "cancelled",
"receiver_conciliation_id": "cac0b5f7-4ee2-40f1-b2ad-16902506503d",
"transaction_amount": 125.53,
"payment_order_conciliation_batch_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc82",
"transaction_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc56",
"incoming_pix_transfer_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc56"
}
}

Status: Paid (paid)

Request Body: Paid Payment Order
{
"event_type": "baas.automatic_pix.payment_order.status_change",
"origin_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"data": {
"payment_order_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"payment_order_spi_id": "RR2222222220240429njua7shf40k",
"outgoing_recurrence_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
"payment_order_status": "paid",
"receiver_conciliation_id": "cac0b5f7-4ee2-40f1-b2ad-16902506503d",
"transaction_amount": 125.53,
"payment_order_conciliation_batch_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc82",
"transaction_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc56",
"incoming_pix_transfer_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc56",
"paid_at": "2021-10-22T20:30:23.459Z"
}
}

Status: Rejected (rejected)

Request Body: Rejected Payment Order
{
"event_type": "baas.automatic_pix.payment_order.status_change",
"origin_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"data": {
"payment_order_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"payment_order_spi_id": "RR2222222220240429njua7shf40k",
"outgoing_recurrence_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
"payment_order_status": "rejected",
"receiver_conciliation_id": "cac0b5f7-4ee2-40f1-b2ad-16902506503d",
"transaction_amount": 125.53,
"payment_order_conciliation_batch_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc82"
}
}
Information

Rejected payment orders are sent after the maximum number of attempts has been exhausted (if the recurrence allows retries). In this case, the transaction_key and incoming_pix_transfer_key fields are not included in the payload.

Webhook Body Params - Payment Order

FieldTypeDescriptionCharacters
event_type *stringType of reported event (baas.automatic_pix.payment_order.status_change).100
origin_key *stringUnique identifier of the event origin (UUID of the payment order).36
data *ObjectMain object containing the payment order details.Data Object

Data Object (Payment Order)

FieldTypeDescriptionCharacters
payment_order_key *stringUnique payment order key (UUID).36
payment_order_spi_id *stringSPI identifier of the payment order.29
outgoing_recurrence_key *stringUnique identifier of the associated automatic recurrence (UUID).36
payment_order_status *stringPayment order status (cancelled, paid, rejected).30
receiver_conciliation_id *stringReceiver conciliation identifier (UUID).36
transaction_amount *numberPayment order transaction amount.-
payment_order_conciliation_batch_key *stringAssociated conciliation batch identifier (UUID).36
transaction_keystringUnique transaction key (present only in cancelled and paid status).36
incoming_pix_transfer_keystringIncoming PIX transfer identifier (present only in cancelled and paid status).36
paid_atstringPayment date and time (present only in paid status, ISO 8601 format).-

payment_order_status Enumerators

EnumeratorDescription
cancelledPayment order cancelled by payer or receiver
paidPayment order successfully executed
rejectedPayment order rejected after exhausting retry attempts

Payment Order Attempt Status Webhook

This webhook is intended to report status changes of payment order execution attempts for Automatic Pix, especially informing about rejected attempts and rejection reasons.

Webhook Request Body

Status: Rejected (rejected)

Request Body: Rejected Payment Order Attempt
{
"event_type": "baas.automatic_pix.payment_order_attempt.status_change",
"origin_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"data": {
"request_control_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"payment_order_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"payment_order_attempt_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc82",
"payment_order_status": "pending",
"payment_order_attempt_status": "rejected",
"transaction_amount": 125.53,
"reason": "Conta de destino inexistente",
"outgoing_recurrence_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82"
}
}
Information

This webhook is sent whenever a payment order execution attempt is rejected by the SPI. The payment order may have new attempts depending on the recurrence configuration and the rejection reason. The reason field contains the description of the rejection reason based on the Bacen error code.

Webhook Body Params - Payment Order Attempt

FieldTypeDescriptionCharacters
event_type *stringType of reported event (baas.automatic_pix.payment_order_attempt.status_change).100
origin_key *stringUnique identifier of the event origin (UUID of the payment order).36
data *ObjectMain object containing the payment order attempt details.Data Object

Data Object (Payment Order Attempt)

FieldTypeDescriptionCharacters
request_control_key *stringUnique request control key (UUID of the payment order).36
payment_order_key *stringUnique key of the associated payment order (UUID).36
payment_order_attempt_key *stringUnique key of the payment attempt (UUID).36
payment_order_status *stringCurrent status of the payment order (pending, accepted, cancelled, etc.).30
payment_order_attempt_status *stringPayment attempt status (rejected).30
transaction_amount *numberPayment attempt transaction amount.-
reason *stringReason for attempt rejection (error description based on Bacen code).200
outgoing_recurrence_key *stringUnique identifier of the associated automatic recurrence (UUID).36

payment_order_attempt_status Enumerators

EnumeratorDescription
rejectedPayment attempt rejected by SPI due to specific error

Webhook for non-liquidated payment order attempt

Webhook intended to notify when a payment order attempt was accepted but was not liquidated within the expected timeframe.

Webhook Request Body

Request Body: Non-liquidated payment order attempt
{
"webhook_type": "baas.automatic_pix.payment_order_attempt.not_liquidated",
"webhook_datetime": "2025-10-22T21:15:00.000Z",
"data": {
"payment_order_key": "8cb70dea-9fb0-4a68-9572-99a72849c8d6",
"payment_order_spi_id": "RR2222222220240429njua7shf40k",
"outgoing_recurrence_key": "98fc62fd-b0a0-4604-9bea-475e91a9dc82",
"payment_order_status": "pending",
"receiver_conciliation_id": "cac0b5f7-4ee2-40f1-b2ad-16902506503d",
"transaction_amount": "125.53",
"payment_order_conciliation_batch_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc82",
"payment_order_attempt_key": "21fc62fd-b0a0-4604-9bea-475e91a9dc83",
"payment_order_attempt_status": "not_liquidated",
"due_date": "2025-10-22",
"end_to_end_id": "E1234567890123456789012"
}
}

Webhook Body Params

FieldTypeDescriptionMax. Characters
webhook_typestringAn enumerator that defines the type of event being reported100
webhook_datetimestringDate and time of webhook sending20
payment_order_keyuuid4Unique identifier of the payment order.36
payment_order_spi_idstringPayment order identifier in the SPI.50
outgoing_recurrence_keyuuid4Unique identifier of the associated outgoing recurrence.36
payment_order_statusstringCurrent status of the payment order.payment_order_status Enumerators
receiver_conciliation_idstringReceiver conciliation identification.36
transaction_amountnumberPayment order transaction amount.-
payment_order_conciliation_batch_keyuuid4Unique identifier of the associated conciliation batch.36
payment_order_attempt_keyuuid4Unique identifier of the payment order attempt.36
payment_order_attempt_statusstringStatus of the payment order attempt.payment_order_attempt_status Enumerators
due_datestringDue date of the payment order attempt (YYYY-MM-DD format).10
end_to_end_idstringIdempotency key of a Pix transaction within the SPI.32

payment_order_status Enumerators

EnumeratorDescription
pending_conciliationAwaiting conciliation.
pendingPending and awaiting payment.
paidSuccessfully paid.
rejectedRejected and will not be processed.
cancelledCancelled before payment.

payment_order_attempt_status Enumerators

EnumeratorDescription
sentPayment attempt sent
acceptedPayment attempt accepted
rejectedPayment attempt rejected by SPI due to specific error
not_liquidatedPayment attempt accepted but not liquidated within expected timeframe