Status Webhook

Status Machine:

Waiting

Success

Failed


Status Detailed

ENQUEUED (Payment Initiation enqueued);

CONSENT_AWAITING_AUTHORIZATION (Awaiting user authorization for consent);

CONSENT_AUTHORIZED (Consent authorized by user);

PAYMENT_PENDING (Consent consumed and Payment transaction is pending);

PAYMENT_SETTLEMENT_PROCESSING (Payment initiation accepted and payment processing started);

PAYMENT_SETTLEMENT_DEBTOR_ACCOUNT (Debt made to the payer's account);

PAYMENT_COMPLETED (Credit made at the destination account);

EXPIRED (Payment expired before is consent created);

CONSENT_REJECTED (Payment rejected by user or consent expired);

PAYMENT_REJECTED (Payment instruction rejected);

ERROR (Validation failure or process error);

CANCELED (Canceled by any other means).


Payment status can be returned via webhook. This way, when creating the transaction, we send a request with the redirection URL.

After the conclusion of the operation by the user, we send the final status of the transaction.


Example of webhooks

{
    "callbackId": "0796dba6-0883-4fb6-b718-bc74288f9443",
    "callbackStatus": "created",
    "eventType": "pix_direct_success",
    "customerId": "01934f01-f6db-7cc7-a269-ca4976520386",
    "pixDirectPayment": {
        "paymentId": "8a4300bd-d349-4d50-8289-416eee069b4e",
        "paymentStatus": "success",
        "paymentStatusDetailed": "PAYMENT_COMPLETED",
        "createdAt": "2025-10-09T19:54:31.293Z",
        "updatedAt": "2025-10-09T19:54:36.718Z",
        "paymentDate": "2025-10-09T00:00:00.000Z",
        "payerInformation": {
            "taxId": "02427606006",
            "name": "Andre"
        },
        "pixAccountInfos": {
            "personType": "CNPJ"
        },
        "participant": {
            "participantId": "0b919e9b-bee0-4549-baa3-bb6d003575ce",
            "name": "Banco de Testes do Iniciador",
            "avatar": "https://storage.googleapis.com/inic-data/iniciador-mock-bank.svg"
        },
        "additionalInformation": [
            {
                "name": "1312312",
                "content": "1132312"
            }
        ],
        "amount": 1,
        "customerId": "01934f01-f6db-7cc7-a269-ca4976520386",
        "endToEndId": "E44471172202510091954U278aa6651d",
        "externalId": "1fdc16a4-1289-4d57-979c-fa2ded8735d7"
    }
}
{
    "callbackId": "f4869eae-7a56-4ab6-9bc9-5dc0e3d761f8",
    "callbackStatus": "created",
    "eventType": "pix_direct_failed",
    "customerId": "01934f01-f6db-7cc7-a269-ca4976520386",
    "pixDirectPayment": {
        "paymentId": "39b31f18-9b76-4e1d-a951-3facc4a629f2",
        "paymentStatus": "failed",
        "paymentStatusDetailed": "PAYMENT_REJECTED",
        "failedReason": "Saldo insuficiente",
        "failedDescription": "The selected account does not have enough funds to make the payment.",
        "createdAt": "2025-10-09T20:31:22.110Z",
        "updatedAt": "2025-10-09T20:31:22.288Z",
        "paymentDate": "2025-10-09T00:00:00.000Z",
        "payerInformation": {
            "taxId": "02427606006",
            "name": "Andre"
        },
        "pixAccountInfos": {
            "personType": "CNPJ"
        },
        "participant": {
            "participantId": "0b919e9b-bee0-4549-baa3-bb6d003575ce",
            "name": "Banco de Testes do Iniciador",
            "avatar": "https://storage.googleapis.com/inic-data/iniciador-mock-bank.svg"
        },
        "additionalInformation": [
            {
                "name": "1312312",
                "content": "1132312"
            }
        ],
        "amount": 242204,
        "customerId": "01934f01-f6db-7cc7-a269-ca4976520386",
        "endToEndId": "E44471172202510092031U2c858fa201",
        "externalId": "d6a9a61a-ab57-43ae-98bf-269c2eb23f47"
    }
}

Possible errors:

Error (OKTO)Description
INVALID_PAYMENT_DETAILInvalid payment detail.
PARAMETER_NOT_PROVIDEDParameter not provided.
INVALID_PARAMETERInvalid parameter.
IDEMPOTENCY_ERRORIdempotency error.
NOT_PROVIDEDNot informed.
INVALID_VALUEThe amount sent is not valid for the provided QR Code.
INFRASTRUCTURE_FAILUREDescription of the infrastructure failure that prevented processing.
AUTHORIZATION_EXPIREDConsent expired before the user could confirm it.
USER_REJECTEDThe user rejected the consent authorization.
ACCOUNT_NOT_ALLOWED_FOR_PAYMENTThe selected account type [salary/investment/settlement/other] does not allow this payment.
INSUFFICIENT_FUNDSThe selected account does not have enough funds to make the payment.
AMOUNT_EXCEEDS_LIMITThe amount exceeds the limit set [by the institution/arrangement/other] for transactions.
CONSENT_ATTEMPTS_LIMIT_REACHEDThe maximum number of attempts to create the consent has been reached.
UNKNOWN_ERRORAn unidentified error occurred in the initiator or account holder.
INVALID_PAYMENT_DETAILInvalid payment detail.
PAYMENT_REJECTED_BY_HOLDERPayment rejected by the account holder’s institution.
PAYMENT_REJECTED_BY_SPIPayment rejected by the Instant Payment System (SPI).
INFRASTRUCTURE_FAILUREDescription of the infrastructure failure that prevented processing.
INFRASTRUCTURE_FAILURE_SPIFailure in the Instant Payment System (SPI).
INFRASTRUCTURE_FAILURE_ICPFailure in the Public Key Infrastructure (ICP).
INFRASTRUCTURE_FAILURE_RECEIVING_PSPFailure in the infrastructure of the Payment Service Provider (PSP) receiving the payment.
INFRASTRUCTURE_FAILURE_HOLDERFailure in the infrastructure of the account holder’s institution.