---
title: "Process OAuth2 authorization callback from account holder"
method: POST
path: "/open-keys/itp/api/v2/payment-initiation/callback"
tags: ["Payment Initiation"]
---

# Process OAuth2 authorization callback from account holder

`POST /open-keys/itp/api/v2/payment-initiation/callback`

Handles OAuth2 authorization callback responses from account holder institutions after user consent. Processes authorization codes, ID tokens, and state parameters to complete the consent flow for payment initiation (PAYMENTS_V4), automatic payments (AUTOMATIC_PAYMENTS_V2), or enrollment-based payments (ENROLLMENTS_V2). This endpoint is called by the account holder after the user authorizes or rejects the consent request.

## Request body

- OfConsentCallback
  - `state` string, required — OAuth2 state parameter used for security validation
  - `id_token` string — JWT identity token containing authenticated user information
  - `code` string — Temporary authorization code used to obtain access token
  - `error` string — OAuth2 error code in case of authorization failure
  - `error_description` string — Detailed description of OAuth2 authorization error

## Response `200`

Payment initiation callback processed successfully.

- EnrollmentV2PaymentInitiation
  - `brandId` string, required — Unique identifier of the financial institution brand where the account enrollment will be created
  - `journeySessionId` string — ID is the unique identifier of journey
  - `redirectUrl` string, uri, required — Authorized callback URL where the user will be redirected after completing the enrollment authorization process at the account holder institution
  - `directoryCallback` boolean — Indicates whether the redirection comes directly from the Open Finance Brasil directory or from a payment initiation flow
  - `authorizationDevice` string — Custom name for the device or authorization method used by the user during the enrollment process. This field allows for user-friendly identification of the specific device that will be used for FIDO2 authentication and payment authorization. [Restriction] Must be filled whenever the payer user enters any information about the authorization device name during the account linking flow.
  - `tags` string — Tags que podem ser usadas para classificar a sessão da jornada.
  - `data` EnrollmentV2PaymentInitiationData, required
    - `enrollment` EnrollmentV2EnrollmentData, required
      - `loggedUser` EnrollmentV2EnrollmentDataLoggedUser, required
        - `document` UserDocument, required
          - `identification` string, required — CPF number of the natural person, composed of 11 numeric digits without dots, dashes or spaces. Must be a valid CPF according to the Brazilian Federal Revenue validation algorithm.
          - `rel` string, required — Type of identification document. For Brazilian natural persons, always 'CPF' (Individual Taxpayer Registry). Identifies the type of document presented in the identification field.
      - `permissions` string[], required — Array of permissions requested for the account enrollment. Defines what operations can be performed with the established account link
      - `businessEntity` EnrollmentV2EnrollmentDataBusinessEntity
        - `document` BusinessDocument, required
          - `identification` string, required — CNPJ number of the legal entity, composed of 14 numeric digits without dots, slashes or spaces. Must be a valid CNPJ according to the Brazilian Federal Revenue validation algorithm.
          - `rel` string, required — Type of identification document. For Brazilian legal entities, always 'CNPJ' (National Registry of Legal Entities). Identifies the type of document presented in the identification field.
      - `debtorAccount` EnrollmentV2EnrollmentDataDebtorAccount
        - `accountType` 'CACC' | 'TRAN' | 'SVGS', required — Account types used for payments. Traditional modalities provided by Resolution 4.753, not including linked accounts, foreign domiciled accounts, foreign currency accounts and electronic currency correspondent accounts. CACC - Current Account, SVGS - Savings Account, TRAN - Prepaid Payment Account.
        - `ispb` string, required — Must be filled with the ISPB (Brazilian Payment System Identifier) of the SPI (Instant Payment System) participant, numbers only.
        - `issuer` string — Bank branch code without digit. Branch is the facility intended for customer service, general public and credit union members in conducting institution activities, and cannot be mobile or transitory. [Restriction] Mandatory for account types: CACC (CONTA_DEPOSITO_A_VISTA) and SVGS (CONTA_POUPANCA).
        - `number` string, required — Account number of the receiving user, with check digit (if it exists). Any alphanumeric value should be converted to 0.
      - `enrollmentName` string — Custom name assigned by the user to the account link (enrollment) to facilitate its identification and management. This field allows the user to give a user-friendly name to the connection established between the payment initiating institution and the account holder, facilitating recognition in future transactions. [Restriction] Must be filled whenever the payer user enters any information about the link/device name at both the initiator and account holder. Useful for differentiating multiple enrollments or devices from the same user.
    - `riskSignals` EnrollmentV2PaymentInitiationDataRiskSignals, required
      - `deviceId` string, required — Unique device ID generated by the platform. Uses the system property that identifies the combination of logged user, application signature key, and device. [Android] Information obtained through the [link](https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID). [iOS] Information obtained through the [link](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor/).
      - `isRootedDevice` boolean — Indicates if the device currently has "root" permissions. [Restriction] Mandatory fields when the operating system used by the user during account linking or payment execution is Android or iOS.
      - `screenBrightness` number, double — Indicates the device screen brightness level. [Android] The value is an integer, typically between 0 and 255, with the value range varying according to the phone manufacturer. Reference at [link](https://developer.android.com/reference/android/provider/Settings.System#SCREEN_BRIGHTNESS). [iOS] The value is a floating point between "0.0" and "1.0". Reference at [link](https://developer.apple.com/documentation/uikit/uiscreen/). [Restriction] Mandatory fields when the operating system used by the user during account linking or payment execution is Android or iOS.
      - `elapsedTimeSinceBoot` integer — Indicates how long (in milliseconds) the device has been turned on. [Android] Information obtained through [link](https://developer.android.com/reference/android/os/SystemClock#elapsedRealtime%28%29). [iOS] Information obtained through [link](https://developer.apple.com/documentation/kernel/kern/). [Restriction] Mandatory fields when the operating system used by the user during account linking or payment execution is Android or iOS.
      - `osVersion` string, required — Operating system version. [Android] Information obtained through [link](https://developer.android.com/reference/android/os/Build.VERSION#RELEASE). [iOS] Information obtained through [link](https://developer.apple.com/documentation/uikit/uidevice/1620043-systemversion/).
      - `userTimeZoneOffset` string, required — Indicates the user's device timezone configuration, with UTC offset format: ±hh[:mm]. The specified format allows omission of the minutes part if it has zero value. Thus, both values '-03:00' and '-03' are valid and represent the same timezone. [Android] Information obtained through [link](https://developer.android.com/reference/java/time/ZonedDateTime#getOffset()) or, for versions prior to 8.0, [link](https://developer.android.com/reference/java/util/TimeZone#getOffset(long)). [iOS] Information obtained through [link](https://developer.apple.com/documentation/foundation/timezone/).
      - `language` string, required — Indicates the device language in ISO 639-1 format. [Android] Information obtained through [link](https://developer.android.com/reference/java/util/Locale#getLanguage()). [iOS] Information obtained through [link](https://developer.apple.com/documentation/foundation/locale/languagecode/).
      - `screenDimensions` EnrollmentV2PaymentInitiationDataRiskSignalsScreenDimensions, required
        - `height` integer, required — Screen height in pixels.
        - `width` integer, required — Screen width in pixels.
      - `accountTenure` string, required — Customer registration date at the initiator institution.
      - `geolocation` EnrollmentV2PaymentInitiationDataRiskSignalsGeolocation
        - `latitude` number, double, required — Geographic latitude coordinate in decimal degrees (WGS84 format). Value between -90 and +90 degrees.
        - `longitude` number, double, required — Geographic longitude coordinate in decimal degrees (WGS84 format). Value between -180 and +180 degrees.
        - `type` string, required — Type of location accuracy obtained: FINE (high precision, GPS), COARSE (low precision, network), INFERRED (inferred by other methods).
      - `isCallingProgress` boolean — Indicates active call at the time of account linking. [Android] Information obtained through [link](https://developer.android.com/reference/android/media/AudioManager#getMode()). [iOS] Information obtained through [link](https://developer.apple.com/documentation/callkit/). [Restriction] If the risk signal is available (client allowed it to be collected), it must be sent.
      - `isDevModeEnabled` boolean — Indicates if the device is in developer mode.
      - `isMockGPS` boolean — Indicates if the device is using fake GPS. Must be sent whenever the geolocation field exists with type `COARSE` or `FINE`. [Android] Information obtained through [link](https://developer.android.com/reference/android/location/Location.html#isMock()) or, for versions prior to 12, [link](https://developer.android.com/reference/android/location/Location.html#isFromMockProvider()). [iOS] Information obtained through the links: sourceInformation, [link](https://developer.apple.com/documentation/corelocation/cllocation/3861803-sourceinformation). isSimulatedBySoftware, [link](https://developer.apple.com/documentation/corelocation/cllocationsourceinformation/3861807-issimulatedbysoftware).
      - `isEmulated` boolean — Indicates if the device is emulated or real.
      - `isMonkeyRunner` boolean — Indicates the use of MonkeyRunner.
      - `isCharging` boolean — Indicates if the device battery is being charged. [Android] Information obtained through [link](https://developer.android.com/reference/android/os/BatteryManager). [iOS] Information obtained through [link](https://developer.apple.com/documentation/uikit/uidevice/1620045-batterymonitoringenabled/).
      - `antennaInformation` string — Indicates which antenna the device is connected to.
      - `isUsbConnected` boolean — Indicates if the device is connected to another device via USB.
      - `integrity` EnrollmentV2PaymentInitiationDataRiskSignalsIntegrity
        - `appRecognitionVerdict` string, required — Informs the app integrity
        - `deviceRecognitionVerdict` string, required — Informs the device integrity
  - `id` string, required — ID is the unique identifier of ITP
  - `paymentInitiationApi` 'ENROLLMENTS_V2', required — Identifies the type of payment initiation API used. ENROLLMENTS_V2 indicates that this enrollment uses version 2 of the enrollments API for PIX payment initiation.
  - `createdAt` string, required — Record creation date and time
  - `updatedAt` string, required — Record last update date and time
  - `deletedAt` string, required — Record deletion date and time (soft delete)
  - `journeySession` Journey
    - `id` string, required — The journey ID. It is an exclusive number that identifies the journey.
    - `createdAt` string, required — Record creation date and time
    - `updatedAt` string, required — Record last update date and time
    - `deletedAt` string, required — Record deletion date and time (soft delete)
    - `alias` string, required — Journey Identification Alias.
    - `acceptPaymentInitiationApis` string[] — List of payment initiation APIs accepted by this journey. Defines which versions and types of payment initiation can be processed: PAYMENTS_V4 (PIX v4), AUTOMATIC_PAYMENTS_V2 (recurring payments v2), ENROLLMENTS_V2 (enrollments v2).
    - `name` string, required — Journey Identification Name.
    - `description` string — Journey Description
    - `settings` JourneySettings[] — Journey configuration list
      - `key` 'JOURNEY_RULES' | 'PRIORITIES_BRANDS' | 'ALLOWED_CPF' | 'DISABLE_BRANDS', required — Types of keys used for journey customization. - JOURNEY_RULES - Rules for journey execution. - PRIORITIES_BRANDS - List of priority brand IDs
      - `value` string, required — Configuration value.
  - `applicationId` string, required — The application ID. It is an exclusive number that identifies the application.
  - `tokenId` string, required — Unique identifier of the authentication token generated for this enrollment. Used internally for access control and enrollment session validation between the initiating institution and account holder.
  - `authorizationUrl` string, uri, required — Authorization URL generated by the account holder institution where the user should be redirected to complete the consent and enrollment authorization process. This URL is temporarily valid and allows access to the holder's environment for account linking.
  - `ofEnrollmentId` string, required — Unique identifier of the enrollment in the Open Finance Brasil context. This ID is generated and managed by the account holder and represents the established link in the Open Finance ecosystem.
  - `ofEnrollment` EnrollmentV2PaymentInitiationOfEnrollment
    - `id` string, required — Unique identifier of the enrollment
    - `enrollmentId` string, required — Enrollment identifier in Open Finance context
    - `paymentInitiationId` string, required — Identifier of the payment initiation that originated this enrollment
    - `consentId` string, required — Unique identifier of the consent generated by the account holder
    - `organization_id` string, required — Organization identifier in Open Finance directory
    - `brand_id` string, required — Account holder brand identifier
    - `authorization_url` string, uri, required — Authorization URL generated by the account holder to complete the consent process
    - `consent_id` string — Consent identifier at the account holder institution
    - `code_verifier` string — Code verifier for PKCE (Proof Key for Code Exchange)
    - `nonce` string — Nonce used in OpenID Connect authentication
    - `state` string — State used for OAuth2 security validation
    - `redirect_uri` string, uri — Redirect URI after authorization
    - `scope` string — Scope of requested permissions
    - `consentTerm` number, double — Consent term in time units
    - `consentTermUnit` string — Time unit for consent term (M=months, D=days)
    - `creationDateTime` string — Creation date and time
    - `events` EnrollmentV2PaymentInitiationOfEnrollmentEvents[] — Consent event history
      - `date` string, required — Event date and time
      - `event` string, required — Type of event occurred
    - `expirationDateTime` string — Expiration date and time
    - `journey` string[] — User journey during consent process
    - `kind` string — Record type
    - `ownerBrandId` string — Owner brand identifier
    - `ownerId` string — Owner identifier
    - `riskSignals` EnrollmentV2PaymentInitiationOfEnrollmentRiskSignals
      - `deviceId` string, required — Unique device ID generated by the platform. Uses the system property that identifies the combination of logged user, application signature key, and device. [Android] Information obtained through the [link](https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID). [iOS] Information obtained through the [link](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor/).
      - `isRootedDevice` boolean — Indicates if the device currently has "root" permissions. [Restriction] Mandatory fields when the operating system used by the user during account linking or payment execution is Android or iOS.
      - `screenBrightness` number, double — Indicates the device screen brightness level. [Android] The value is an integer, typically between 0 and 255, with the value range varying according to the phone manufacturer. Reference at [link](https://developer.android.com/reference/android/provider/Settings.System#SCREEN_BRIGHTNESS). [iOS] The value is a floating point between "0.0" and "1.0". Reference at [link](https://developer.apple.com/documentation/uikit/uiscreen/). [Restriction] Mandatory fields when the operating system used by the user during account linking or payment execution is Android or iOS.
      - `elapsedTimeSinceBoot` integer — Indicates how long (in milliseconds) the device has been turned on. [Android] Information obtained through [link](https://developer.android.com/reference/android/os/SystemClock#elapsedRealtime%28%29). [iOS] Information obtained through [link](https://developer.apple.com/documentation/kernel/kern/). [Restriction] Mandatory fields when the operating system used by the user during account linking or payment execution is Android or iOS.
      - `osVersion` string, required — Operating system version. [Android] Information obtained through [link](https://developer.android.com/reference/android/os/Build.VERSION#RELEASE). [iOS] Information obtained through [link](https://developer.apple.com/documentation/uikit/uidevice/1620043-systemversion/).
      - `userTimeZoneOffset` string, required — Indicates the user's device timezone configuration, with UTC offset format: ±hh[:mm]. The specified format allows omission of the minutes part if it has zero value. Thus, both values '-03:00' and '-03' are valid and represent the same timezone. [Android] Information obtained through [link](https://developer.android.com/reference/java/time/ZonedDateTime#getOffset()) or, for versions prior to 8.0, [link](https://developer.android.com/reference/java/util/TimeZone#getOffset(long)). [iOS] Information obtained through [link](https://developer.apple.com/documentation/foundation/timezone/).
      - `language` string, required — Indicates the device language in ISO 639-1 format. [Android] Information obtained through [link](https://developer.android.com/reference/java/util/Locale#getLanguage()). [iOS] Information obtained through [link](https://developer.apple.com/documentation/foundation/locale/languagecode/).
      - `screenDimensions` EnrollmentV2PaymentInitiationOfEnrollmentRiskSignalsScreenDimensions, required
        - `height` integer, required — Screen height in pixels.
        - `width` integer, required — Screen width in pixels.
      - `accountTenure` string, required — Customer registration date at the initiator institution.
      - `geolocation` EnrollmentV2PaymentInitiationOfEnrollmentRiskSignalsGeolocation
        - `latitude` number, double, required — Geographic latitude coordinate in decimal degrees (WGS84 format). Value between -90 and +90 degrees.
        - `longitude` number, double, required — Geographic longitude coordinate in decimal degrees (WGS84 format). Value between -180 and +180 degrees.
        - `type` string, required — Type of location accuracy obtained: FINE (high precision, GPS), COARSE (low precision, network), INFERRED (inferred by other methods).
      - `isCallingProgress` boolean — Indicates active call at the time of account linking. [Android] Information obtained through [link](https://developer.android.com/reference/android/media/AudioManager#getMode()). [iOS] Information obtained through [link](https://developer.apple.com/documentation/callkit/). [Restriction] If the risk signal is available (client allowed it to be collected), it must be sent.
      - `isDevModeEnabled` boolean — Indicates if the device is in developer mode.
      - `isMockGPS` boolean — Indicates if the device is using fake GPS. Must be sent whenever the geolocation field exists with type `COARSE` or `FINE`. [Android] Information obtained through [link](https://developer.android.com/reference/android/location/Location.html#isMock()) or, for versions prior to 12, [link](https://developer.android.com/reference/android/location/Location.html#isFromMockProvider()). [iOS] Information obtained through the links: sourceInformation, [link](https://developer.apple.com/documentation/corelocation/cllocation/3861803-sourceinformation). isSimulatedBySoftware, [link](https://developer.apple.com/documentation/corelocation/cllocationsourceinformation/3861807-issimulatedbysoftware).
      - `isEmulated` boolean — Indicates if the device is emulated or real.
      - `isMonkeyRunner` boolean — Indicates the use of MonkeyRunner.
      - `isCharging` boolean — Indicates if the device battery is being charged. [Android] Information obtained through [link](https://developer.android.com/reference/android/os/BatteryManager). [iOS] Information obtained through [link](https://developer.apple.com/documentation/uikit/uidevice/1620045-batterymonitoringenabled/).
      - `antennaInformation` string — Indicates which antenna the device is connected to.
      - `isUsbConnected` boolean — Indicates if the device is connected to another device via USB.
      - `integrity` EnrollmentV2PaymentInitiationOfEnrollmentRiskSignalsIntegrity
        - `appRecognitionVerdict` string, required — Application integrity verification result
        - `deviceRecognitionVerdict` string, required — Device integrity verification result
        - `id` string, required — Unique identifier of the integrity verification
    - `statusUpdateDateTime` string — Date and time of last status update
    - `dailyLimit` string, required — Daily transaction limit in decimal format with two decimal places
    - `transactionLimit` string, required — Per transaction limit in decimal format with two decimal places
    - `organizationName` string — Name of the account holder organization
    - `organizationLogo` string, uri — URL of the account holder organization logo
    - `permissions` string[] — List of permissions granted in Open Finance context for payment initiation
    - `status` 'AWAITING_RISK_SIGNALS' | 'AWAITING_ACCOUNT_HOLDER_VALIDATION' | 'AWAITING_ENROLLMENT' | 'AUTHORISED' | 'REVOKED' | 'REJECTED', required — Account link status: • AWAITING_RISK_SIGNALS: Account link created and awaiting risk signals submission to the holder. • AWAITING_ACCOUNT_HOLDER_VALIDATION: Account link awaiting authorization in the holder's environment. • AWAITING_ENROLLMENT: Account link authorized in the holder's environment and awaiting credentials binding (FIDO2). • AUTHORISED: Account link ready for use. • REVOKED: Account link revoked. • REJECTED: Account link rejected.
    - `loggedUser` EnrollmentV2PaymentInitiationOfEnrollmentLoggedUser
      - `document` EnrollmentV2PaymentInitiationOfEnrollmentLoggedUserDocument, required
        - `identification` string, required — Identification document number (CPF) of the logged user
        - `rel` 'CPF' | 'CNPJ', required — Type of identification document (CPF or CNPJ)
  - `idempotencyKey` string — Unique idempotency key to ensure duplicate operations are not processed. This UUID helps prevent accidental double-processing of enrollment authorization requests and maintains data consistency across retries.
  - `isFavorite` boolean, required — Indicates if this enrollment is marked as favorite by the user. Allows the user to quickly identify their preferred account link among multiple available enrollments for payment initiation.
  - `httpCalls` EnrollmentV2PaymentInitiationHttpCalls[] — History of HTTP calls made during the enrollment process. Contains detailed logs of all requests made to external APIs, including timestamps, status codes, headers and payloads for auditing and debugging.
    - `id` string, required — Unique HTTP call identifier
    - `externalId` string, required — Reference ID of the object that requested the call
    - `request` EnrollmentV2PaymentInitiationHttpCallsRequest, required
      - `url` string, required — Target URL of the HTTP request
      - `method` string, required — HTTP method used in the request (GET, POST, PUT, DELETE)
      - `headers` EnrollmentV2PaymentInitiationHttpCallsRequestHeaders, required
        - `x-fapi-interaction-id` string — FAPI interaction identifier for request tracking
        - `x-correlation-id` string — Correlation identifier for distributed request tracing
    - `response` EnrollmentV2PaymentInitiationHttpCallsResponse, required
      - `data` object — Response data. Inserted only in case of error.
      - `status` string, required — HTTP response status code
      - `statusText` string, required — Descriptive text of the HTTP response status
      - `headers` object, required
    - `createdAt` string, required — Record creation date and time
    - `updatedAt` string, required — Record last update date and time
    - `deletedAt` string, required — Record deletion date and time (soft delete)
  - `brand` Brand
    - `id` string, required — Unique identifier of the brand record in the local database
    - `createdAt` string, required — Record creation date and time
    - `updatedAt` string, required — Record last update date and time
    - `deletedAt` string, required — Record deletion date and time (soft delete)
    - `AuthorisationServerId` string, required — Unique identifier of the Open Finance Brasil participant institution's authorization server. Corresponds to the authorization server ID registered in the ecosystem's central directory.
    - `CustomerFriendlyDescription` string, required — Customer-friendly description of the brand directed to the end customer. Used to present clear information about the financial institution in the user interface during the consent and authentication process.
    - `CustomerFriendlyLogoUri` string, required — URL of the brand logo image for display to the end customer. Must be a valid and accessible URL pointing to the official logo of the financial institution as registered in the Open Finance Brasil directory.
    - `CustomerFriendlyName` string, required — Customer-friendly name of the brand as presented to the end customer. Represents the commercial name of the financial institution used in communication with users during consent and authentication flows in Open Finance Brasil.
    - `Flags` BrandFlags, required
      - `Suporta Contas PF` string[] — Array indicating support for individual person accounts
      - `Suporta Contas PJ` string[] — Array indicating support for legal entity accounts
    - `OpenIDDiscoveryDocument` string, required — URL of the OpenID Connect discovery document for the institution's authorization server. Contains metadata about the OAuth2/OIDC endpoints and capabilities.
    - `OrganisationId` string, required — Unique identifier of the parent organization in the Open Finance Brasil directory
    - `ParentAuthorisationServerId` string — Identifier of the parent authorization server, if this brand is part of a larger organization structure
    - `OrganisationName` string, required — Official legal name of the organization as registered in the Open Finance Brasil directory
    - `strId` string — Additional string identifier of the brand when available
    - `ApiFamilyType` BrandApiFamilyType, required
      - `payments-pix-recurring-payments-automatic` boolean — Indicates support for PIX automatic recurring payments API
      - `payments-pix` boolean — Indicates support for PIX payments API
      - `payments-pix-recurring-payments` boolean — Indicates support for PIX recurring payments API
    - `settings` BrandSettings
      - `brandId` string, required — Brand identifier associated with the settings.
      - `sandboxUsersTests` BrandSettingsSandboxUsersTests[] — List of test users available for sandbox environment.
        - `username` string, required — Username for sandbox environment testing.
        - `password` string, required — Password for sandbox environment testing.
        - `document` BrandSettingsSandboxUsersTestsDocument, required
          - `identification` string, required — Identification document number.
          - `rel` string, required — Type of identification document (CPF, CNPJ).
      - `updatedAt` string — Date and time of the last settings update.
      - `uptimeStatus` string — Operational status of the brand (OPERATIONAL, MAINTENANCE, etc.).
      - `id` string, required — Unique identifier of the settings.
    - `organisationBrands` BrandOrganisationBrands[] — List of other brands belonging to the same organization.
      - `AuthorisationServerId` string, required — Unique identifier of the brand's authorization server.
      - `CustomerFriendlyDescription` string, required — Customer-friendly description of the brand for display.
      - `CustomerFriendlyLogoUri` string, required — URL of the brand logo for customer display.
      - `CustomerFriendlyName` string, required — Customer-friendly name of the brand for display.
      - `Flags` object, required — Brand capability flags.
      - `OpenIDDiscoveryDocument` string, required — URL of the OpenID Connect discovery document.
      - `OrganisationId` string, required — Parent organization identifier.
      - `ParentAuthorisationServerId` string — Parent authorization server identifier.
      - `OrganisationName` string, required — Official name of the organization.
      - `strId` string — Additional string identifier of the brand when available.
      - `ApiFamilyType` object, required — API family types supported by the brand.
      - `id` string, required — Unique identifier of the brand.
  - `ofConsent` OfConsent
    - `id` string, required — ID is the unique identifier of ITP Consent
    - `paymentInitiationId` string, required — ID is the unique identifier of ITP
    - `data` object, required — Regulatory consent data according to Open Finance Brasil specification
    - `brandId` string, required — Unique brand identifier of the participant institution
    - `consentId` string, required — Unique consent identifier at the account holder institution
    - `authorization_url` string, uri, required — Authorization URL for consent with the account holder institution
    - `status` 'AWAITING_AUTHORISATION' | 'AUTHORISED' | 'REJECTED' | 'CONSUMED', required — Returns the consent state, which at the moment of creation will be AWAITING_AUTHORISATION. This state will be changed after consent authorization at the payer's account holder to AUTHORISED or REJECTED. Consent becomes CONSUMED after payment initiation occurs. For expired consent, the holder should return REJECTED status. Possible states: AWAITING_AUTHORISATION - Awaiting authorization, AUTHORISED - Authorized, REJECTED - Rejected, CONSUMED - Consumed.
    - `access_token` string — Access token obtained after consent authorization
    - `organization_id` string — Organization identifier in the Open Finance directory.
    - `brand_id` string — Brand identifier of the account holder institution.
    - `creationDateTime` string — Timestamp when the consent was created.
    - `expirationDateTime` string — Timestamp when the consent expires.
    - `statusUpdateDateTime` string — Timestamp of the last status update.
    - `organizationName` string — Name of the account holder organization.
    - `organizationLogo` string, uri — URL of the account holder organization logo.
    - `nfc` boolean — Indicates whether the authentication device supports Near Field Communication (NFC). This information helps determine the appropriate authentication methods and user experience for FIDO2 operations.
    - `consent_id` string — Consent identifier at the account holder institution
    - `code_verifier` string — Code verifier for PKCE (Proof Key for Code Exchange)
    - `nonce` string — Nonce used in OpenID Connect authentication
    - `state` string — State used for OAuth2 security validation
    - `redirect_uri` string, uri — Redirect URI after authorization
    - `scope` string — Scope of requested permissions
    - `consentTerm` number, double — Consent term in time units
    - `consentTermUnit` string — Time unit for consent term (M=months, D=days)
    - `creditor` OfConsentCreditor
      - `cpfCnpj` string, required — Identification document (CPF or CNPJ) of the account holder. CPF: 11 numeric digits. CNPJ: 14 numeric digits. Both without formatting (dots, dashes or slashes). Must be valid according to Brazilian Federal Revenue algorithms.
      - `personType` 'PESSOA_NATURAL' | 'PESSOA_JURIDICA', required — Type of creditor account holder. PESSOA_NATURAL: Brazilian natural person identified by CPF. PESSOA_JURIDICA: Brazilian legal entity identified by CNPJ. This field determines the type of document expected in the cpfCnpj field and applicable validation rules.
      - `name` string, required — Name of the creditor account holder. For PESSOA_NATURAL: full name of the natural person as per official identity document. For PESSOA_JURIDICA: corporate name or trade name registered with Federal Revenue. Maximum 120 characters, accepts letters, numbers, accents and allowed special symbols.
    - `events` OfConsentEvents[] — Consent event history
      - `date` string, required — Event date and time
      - `event` string, required — Type of event occurred
    - `journey` string[] — User journey during consent process
    - `kind` string — Type of consent (PAYMENT, ACCOUNT_ACCESS, etc.)
    - `loggedUser` OfConsentLoggedUser
      - `document` UserDocument, required
        - `identification` string, required — CPF number of the natural person, composed of 11 numeric digits without dots, dashes or spaces. Must be a valid CPF according to the Brazilian Federal Revenue validation algorithm.
        - `rel` string, required — Type of identification document. For Brazilian natural persons, always 'CPF' (Individual Taxpayer Registry). Identifies the type of document presented in the identification field.
    - `ownerBrandId` string — Brand identifier of the account owner
    - `ownerId` string — Organization identifier of the account owner
    - `payment` OfConsentPayment
      - `type` 'PIX', required — Type of payment to be executed. Currently supports only PIX according to Central Bank of Brazil specification and Open Finance Brasil regulation.
      - `date` string — Date for payment execution in ISO 8601 format (YYYY-MM-DD). Required for single payments. Cannot be a past date or exceed maximum scheduling limits defined by Central Bank regulations.
      - `currency` string, required — National currency code according to ISO-4217 standard. For Brazil, always 'BRL' (Brazilian Real).
      - `amount` string, required — PIX transaction monetary value with exactly 2 decimal places, formatted as string.
      - `details` OfConsentPaymentDetails, required
        - `localInstrument` 'MANU' | 'DICT' | 'QRDN' | 'QRES' | 'INIC', required — Local instrument used for PIX payment initiation: DICT (PIX key), MANU (manual account data), QRDN (dynamic QR), QRES (static QR), INIC (pre-known beneficiary).
        - `proxy` string — PIX key registered in DICT belonging to the beneficiary. Can be phone, email, CPF/CNPJ or random key.
        - `creditorAccount` OfConsentPaymentDetailsCreditorAccount
          - `ispb` string, required — ISPB (Brazilian Payment System Identifier) of the SPI participant, numbers only.
          - `issuer` string — Bank branch code without digit.
          - `number` string, required — Account number of the receiving user, with check digit if it exists.
          - `accountType` 'CACC' | 'TRAN' | 'SVGS', required — Account types for payments. CACC - Current Account, SVGS - Savings Account, TRAN - Prepaid Payment Account.
    - `transactions` string[] — List of transactions associated with the consent
    - `rejectionReason` OfConsentRejectionReason
      - `code` 'TEMPO_EXPIRADO_AUTORIZACAO' | 'REJEITADO_USUARIO' | 'CONSENTIMENTO_NEGADO' | 'FALHA_INFRAESTRUTURA' | 'CONTA_NAO_PERMITE_PAGAMENTO' | 'SALDO_INSUFICIENTE' | 'VALOR_INVALIDO' | 'COBRANCA_INVALIDA' | 'PAGAMENTO_DIVERGENTE_CONSENTIMENTO', required — Standardized rejection reason code according to Open Finance Brasil specifications. TEMPO_EXPIRADO_AUTORIZACAO: Authorization time expired (5 minutes); REJEITADO_USUARIO: Rejected by user during authorization process; CONSENTIMENTO_NEGADO: Consent denied by account holder; FALHA_INFRAESTRUTURA: Infrastructure failure at holder institution; CONTA_NAO_PERMITE_PAGAMENTO: Account does not allow payment operations; SALDO_INSUFICIENTE: Insufficient account balance; VALOR_INVALIDO: Invalid payment amount; COBRANCA_INVALIDA: Invalid charge or billing; PAGAMENTO_DIVERGENTE_CONSENTIMENTO: Payment data divergent from consent.
      - `detail` string — Additional details about rejection reason
  - `ofPayments` OfPaymentResponse[] — List of Open Finance Brasil payments processed through this enrollment when processPix is true. Contains complete payment transaction data including status, amounts, account details, and processing timestamps for PIX payments executed via this enrollment.
    - `paymentInitiationId` string, required — ID is the unique identifier of ITP
    - `consentId` string, required — Unique identifier of the regulatory consent obtained during the authorization process. Links the payment request to the specific consent provided by the user according to Open Finance Brasil regulations.
    - `localInstrument` string, required — Local instrument used for PIX payment initiation. Values: DICT (PIX key), MANU (manual account data), QRDN (dynamic QR), QRES (static QR), INIC (pre-known beneficiary).
    - `payment` OfPaymentResponsePayment, required
      - `currency` string, required — Transaction currency code according to ISO-4217 standard. For Brazil, always 'BRL' (Brazilian Real).
      - `amount` string, required — PIX transaction monetary value with two decimal places, formatted as string. Represents the amount transferred in the payment.
    - `creditorAccount` OfPaymentResponseCreditorAccount, required
      - `number` string, required — Beneficiary account number at the financial institution. The specific account identifier for the receiving account.
      - `accountType` string, required — Beneficiary account type according to ISO 20022 standard. Common values: CACC (current account), SVGS (savings account).
      - `ispb` string, required — ISPB code of the beneficiary's financial institution. Unique identifier of the institution in the Brazilian Payment System.
      - `issuer` string, required — Beneficiary account issuer code at the financial institution. Identifies the specific branch or issuing unit.
    - `cnpjInitiator` string, required — CNPJ of the payment initiating institution responsible for this transaction. Identifies the institution that originated the payment request.
    - `proxy` string — PIX key used to identify the beneficiary's account in DICT. Can be phone, email, CPF/CNPJ or random key registered in the PIX directory.
    - `endToEndId` string, required — Unique end-to-end identifier of the PIX transaction in the Instant Payment System (SPI). Allows tracking the transaction from origin to destination.
    - `authorisationFlow` string, required — Type of authorization flow used to process this PIX payment. Indicates the authentication method used (e.g., FIDO_FLOW for FIDO2 authentication).
    - `creationDateTime` string, required — PIX transaction creation date and time in ISO 8601 format. Indicates when the payment was initiated and processed.
    - `debtorAccount` OfPaymentResponseDebtorAccount, required
      - `ispb` string, required — ISPB code of the payer's financial institution. Unique identifier of the institution in the Brazilian Payment System.
      - `issuer` string, required — Payer account issuer code at the financial institution. Identifies the specific branch or issuing unit.
      - `number` string, required — Payer account number at the financial institution. The specific account identifier for the sending account.
      - `accountType` string, required — Payer account type according to ISO 20022 standard. Common values: CACC (current account), SVGS (savings account).
    - `paymentId` string, required — Unique payment identifier generated by the account holder institution. Used to reference this specific transaction in the holder's system.
    - `status` string, required — Current status of the PIX transaction according to Open Finance Brasil specification. Values include RCVD (received), PDNG (pending), ACSC (accepted), RJCT (rejected).
    - `statusUpdateDateTime` string, required — Date and time of the last PIX transaction status update in ISO 8601 format. Shows when the transaction status was last modified.
    - `id` string, required — Unique internal identifier of the payment record in the system. Used for internal tracking and database operations.
  - `ofConsentId` string — Internal identifier of the Open Finance Brasil consent linked to this enrollment. This ID references the consent object that manages authorization permissions and payment details for this account link.

## Other responses

- `401` — Authentication is required to access this resource. The client must provide valid credentials.
- `403` — The server understood the request but refuses to authorize it. Access is permanently forbidden and tied to the application logic.
- `409` — The request conflicts with the current state of the resource on the server.
- `422` — The request contains invalid or malformed data that cannot be processed.
- `500` — An unexpected error occurred on the server while processing the request.
- `default` — Unexpected error.

---

[API](https://skmtc.net/celcoin/apis/api-para-transa-es.md) · [All operations](https://skmtc.net/celcoin/apis/api-para-transa-es/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/celcoin/api-para-transa-es/versions/85dd6188a37b/schema)
