---
updatedAt: 2026-05-13T20:48:29.000Z
---

Fetch the complete documentation index at: https://developers.pismo.io/pismo-docs/llms.txt. Use this file to discover all available pages before exploring further. Append .md to any documentation page URL to get its markdown version.

# Accept/reject recurrence authorization

Pix Automatic payee recurrence payment authorization acceptance or rejection


# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "Instant payments - Automatic Pix",
    "description": "API to handle Automatic Pix transactions",
    "termsOfService": "https://developers.pismo.io/terms/",
    "contact": {
      "name": "API Support",
      "url": "https://developers.pismo.io/support/",
      "email": "support@pismo.com.br"
    },
    "license": {
      "name": "Copyright Pismo",
      "url": "https://developers.pismo.io/licenses/"
    },
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://sandbox-cdn.pismolabs.io",
      "description": "Ext API server for testing"
    },
    {
      "url": "https://sandbox-cdn.pismolabs.io/inst-pull-pay",
      "description": "Ext API server for testing Automatic Pix."
    }
  ],
  "tags": [
    {
      "name": "Automatic Pix",
      "description": "Automatic Pix endpoints."
    }
  ],
  "components": {
    "parameters": {
      "AuthHeader": {
        "in": "header",
        "name": "Authorization",
        "required": true,
        "description": "Account token - an access token encoded with a Pismo account ID. Tokens can expire quickly, which can result in a <b>401 Unauthorized</b> message.",
        "schema": {
          "type": "string",
          "example": "Bearer eyJhbGci...IUzUx"
        }
      },
      "IdempotencyKeyHeader": {
        "name": "Idempotency-Key",
        "in": "header",
        "description": "A unique ID to ensure the operation remains idempotent, allowing for operation repitition without causing unintended effects or duplication. An idempotent operation is one that can be applied multiple times, yet the outcome remains the same. it ensures that network errors, retries, or failures can occur without introducing inconsistencies.\n",
        "required": true,
        "schema": {
          "type": "string"
        }
      }
    },
    "schemas": {
      "AccountNumber2": {
        "type": "string",
        "description": "Payer's account number.",
        "maxLength": 20,
        "example": "98765432"
      },
      "AccountType": {
        "type": "string",
        "enum": [
          "CACC",
          "SLRY",
          "SVGS",
          "TRAN"
        ],
        "maxLength": 4,
        "description": "Account type: <br />\n  `CACC` - Checking account<br />\n  `SVGS` - Savings account<br />\n  `TRAN` - Transactional account (Brazil only). Also known as \"conta corrente\" in Portuguese, this is a bank account type designed for everyday financial transactions and is the most common type individuals and businesses use for day-to-day banking. <br />\n  `SLRY` - Salary account. Employer deposits a fixed amount every month.<br />\n",
        "example": "TRAN"
      },
      "ApproveAuthorizationStatus": {
        "type": "string",
        "description": "Authorization status",
        "enum": [
          "ACCEPTED",
          "REJECTED"
        ],
        "example": "REJECTED"
      },
      "AuthorizationID": {
        "type": "string",
        "description": "Authorization ID the same as BACEN (Brazil Central Bank) IdSoliReq (request identification code)",
        "example": "IS0435879820240605bcdb1fhn43a"
      },
      "AuthorizationReasonCode": {
        "type": "string",
        "description": "Authorization reason code. \n\n**Note:** \"pain.009\" is a message sent to the payer when the payee starts a #1 journey (`AUT1`) Automatic Pix recurrence\n\n* `AC01` - Account not found or not belonging to the paying user\n* `AC04` - Paying user's transactional account is closed\n* `AC06` - Paying user's transactional account is blocked\n* `AP01` - Discrepancy in the field for updating periodic payments recurrence data and the periodic payments recurrence status - lack of synchronization\n* `AP02` - Paying user's CPF/CNPJ  not found or different from the one in the original pain.009. Or, in the case of cancellation, the paying user's CPF/CNPJ does not match the one contained in the perioduc payments recurrence data.\n* `AP03` - Paying user's branch not found\n* `AP04` - Invalid recurrence ID or does not match the original\n* `AP05` - Inconsistent recurrence status for periodic payments\n* `AP06` - Receiving user's CPF/CNPJ is different from the one in the pain.009 or the payload. Or, in the case of cancellation, the receiving user's CPF/CNPJ does not match the one contained in the periodic payments recurrence data.\n* `AP07` - Paying user's recurrence confirmation performed after the confirmation request's expiration or cancellation (pain.009)\n* `AP08` - First immediate payment associated with the recurrence was not identified. (Valid only for Authorization Journey 3 (`AUT3`))\n* `AP09` - Recurrence confirmation request for periodic payments was not identified to enable its cancellation\n* `AP10` - Cancellation requestor's CPF/CNPJ does not match the the paying/receiving user's or the paying/receiving PSP's identification contained in the periodic payments recurrence data.\n* `AP11` - Paying PSP's ISPB diverges from the information contained in the recurrence for periodic payments\n* `AP12` - Receiving PSP's ISPB diverges from the information contained in the recurrence for periodic payments\n* `AP13` = Paying user rejects periodic payments recurrence confirmation request due to receiving user non-recognition\n* `AP14` - Paying user rejects periodic payments recurrence confirmation request due to receiving user's lack of interest in using Pix Automatic\n* `AP15` - Paying user's participant rejects recurrence confirmation request for periodic payments as they chose not to offer Pix Automatic usage for corporate clients\n* `CH16` - Incorrect or incompatible message content with business rules\n* `MD01` - Cancellation request's recurrence object does not exist. Should not be used for cancellation requests of pain.009 with status = `PDNG`. That is, a recurrence with status = `PDNG` should be considered as an existing recurrence.\n* `MD20` - Cancellation request's recurrence object has already expired.\n",
        "enum": [
          "AC01",
          "AC04",
          "AC06",
          "AP01",
          "AP02",
          "AP03",
          "AP04",
          "AP05",
          "AP06",
          "AP07",
          "AP08",
          "AP09",
          "AP10",
          "AP11",
          "AP12",
          "AP13",
          "AP14",
          "AP15",
          "CH16",
          "MD01",
          "MD20"
        ],
        "example": "AC01"
      },
      "AuthorizationRejectedReasonCodeRequest": {
        "type": "string",
        "description": "Rejected authorizations reason code. Mandatory when `status` is `REJECTED`. \n* `AP13` - Paying user rejects recurrence confirmation for periodic payments due to receiving user not recognized\n* `AP14` - Paying user rejects recurrence confirmation for periodic payments due to receiving user not interested in using Automatic Pix\n",
        "enum": [
          "AP13",
          "AP14"
        ],
        "example": "AP14"
      },
      "AuthorizationRequest": {
        "type": "object",
        "description": "Authorization request",
        "required": [
          "recurrence_id",
          "status",
          "journey_type"
        ],
        "properties": {
          "recurrence_id": {
            "$ref": "#/components/schemas/RecurrenceID"
          },
          "status": {
            "$ref": "#/components/schemas/ApproveAuthorizationStatus"
          },
          "reason": {
            "$ref": "#/components/schemas/AuthorizationRejectedReasonCodeRequest"
          },
          "max_payment_amount": {
            "$ref": "#/components/schemas/MaxPaymentAmount"
          },
          "journey_type": {
            "$ref": "#/components/schemas/JourneyType"
          },
          "payment_date_time": {
            "$ref": "#/components/schemas/PaymentDateTime"
          },
          "transaction_identification": {
            "$ref": "#/components/schemas/TransactionIdentification"
          }
        }
      },
      "AuthorizationResponse": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/AuthorizationID"
          },
          "expiration_date": {
            "$ref": "#/components/schemas/ExpirationDate"
          },
          "creted_at": {
            "$ref": "#/components/schemas/CreatedAt"
          },
          "updated_at": {
            "$ref": "#/components/schemas/UpdatedAt"
          },
          "reason_code": {
            "$ref": "#/components/schemas/AuthorizationReasonCode"
          },
          "status": {
            "type": "string",
            "description": "Authorization status",
            "enum": [
              "CREATED",
              "RECEIVED",
              "ACCEPTED",
              "REJECTED",
              "EXPIRED",
              "CANCELLED"
            ],
            "example": "ACCEPTED"
          },
          "payer": {
            "$ref": "#/components/schemas/Payer"
          }
        }
      },
      "Bank": {
        "type": "string",
        "description": "<a href=\"https://bank.codes/numero-do-banco/bank/banco-central-do-brasil/\" target=\"_blank\">ISPB (Identifcador do Sistema de Pagamento Brazil)</a> - the Brazilian Payment System ID for the receiving bank, an 8-digit value.",
        "maxLength": 8,
        "example": "237"
      },
      "Branch": {
        "type": "string",
        "description": "This could be a bank-assigned branch ID or the branch's ISPB number.",
        "maxLength": 4,
        "example": "011"
      },
      "CityCode": {
        "type": "string",
        "description": "The <a href='https://www.ibge.gov.br/explica/codigos-dos-municipios.php' target=\"_blank\">IBGE</a> (Instituto Brasileiro de Geografia e Estatística) city code.",
        "example": "3550308"
      },
      "CreatedAt": {
        "type": "string",
        "format": "datetime",
        "description": "Created at datetime. RFC 3339 format \n",
        "example": "2025-11-14T17:54:40Z"
      },
      "customer.DetailMessage": {
        "type": "object",
        "properties": {
          "external": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/customer.ExternalMessage"
            }
          },
          "parameters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/customer.ParameterMessage"
            }
          },
          "payload": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/customer.PayloadMessage"
            }
          }
        }
      },
      "customer.Error": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Error's code.",
            "example": "EPT0001"
          },
          "details": {
            "$ref": "#/components/schemas/customer.DetailMessage"
          },
          "message": {
            "type": "string",
            "description": "Error's message.",
            "example": "User not found"
          }
        }
      },
      "customer.ExternalMessage": {
        "type": "object",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "Error code.",
            "example": "PBE315"
          },
          "message": {
            "type": "string",
            "description": "Error message.",
            "example": "Generic error"
          }
        }
      },
      "customer.ParameterMessage": {
        "type": "object",
        "required": [
          "field",
          "message"
        ],
        "properties": {
          "field": {
            "type": "string",
            "description": "Parameter field",
            "example": "Query parameter"
          },
          "message": {
            "type": "string",
            "description": "Message about parameter",
            "example": "Generic error"
          }
        }
      },
      "customer.PayloadMessage": {
        "type": "object",
        "required": [
          "field",
          "message"
        ],
        "properties": {
          "field": {
            "type": "string",
            "description": "Payload parameter",
            "example": "Entity.field"
          },
          "message": {
            "type": "string",
            "description": "Message about error",
            "example": "Generic error"
          }
        }
      },
      "DocumentNumber": {
        "type": "string",
        "description": "A government document number, such as a Social Security number (US) or Cadastro de Pessoas Físicas number (Brazil). Must be numeric with 11-14 digits.\n",
        "minLength": 1,
        "maxLength": 14,
        "example": "123412341234"
      },
      "ExpirationDate": {
        "type": "string",
        "format": "datetime",
        "description": "Authorization expiration date. RFC 3339 value. Format = YYYY-MM-DDThh:mm:ss.SSSZ",
        "example": "2020-08-13T13:49:03.000Z"
      },
      "JourneyType": {
        "type": "string",
        "description": "Recurrence payment type: \n\n `AUT1` - Bank notification. If the merchant has the payer's banking information, a push notification can be sent directly to the payer's bank app, prompting them to authorize the recurring payment.\n \n `AUT2` - Authorization via QR code. Payer scans a merchant provided QR code to authorize recurring payments. This method does not initiate an immediate payment, allowing the first payment to be scheduled for a later date.\n \n `AUT3` - Authorization via QR code with first payment.  Similar to the second method, but the QR code includes information for both the authorization and the initial payment, enabling the payer to authorize the recurring payment and make the first payment in a single step.\n \n `AUT4` - Post-payment sign-up path. After completing a one-time payment via QR code, the payer is offered the option to authorize recurring payments for future transactions\n",
        "enum": [
          "AUT1",
          "AUT2",
          "AUT3",
          "AUT4"
        ],
        "example": "AUT1"
      },
      "MaxPaymentAmount": {
        "type": "number",
        "description": "Payer-defined maximum payment amount for dynamic amount recurrences.",
        "example": 86753.09
      },
      "Name": {
        "type": "string",
        "description": "Name",
        "maxLength": 200,
        "example": "Walter Melon"
      },
      "Payer": {
        "type": "object",
        "required": [
          "document_number",
          "document_type",
          "name",
          "bank",
          "branch",
          "account_number"
        ],
        "properties": {
          "document_number": {
            "$ref": "#/components/schemas/DocumentNumber"
          },
          "document_type": {
            "$ref": "#/components/schemas/PersonType"
          },
          "name": {
            "$ref": "#/components/schemas/Name"
          },
          "bank": {
            "$ref": "#/components/schemas/Bank"
          },
          "branch": {
            "$ref": "#/components/schemas/Branch"
          },
          "account_number": {
            "$ref": "#/components/schemas/AccountNumber2"
          },
          "account_type": {
            "$ref": "#/components/schemas/AccountType"
          },
          "city_code": {
            "$ref": "#/components/schemas/CityCode"
          }
        }
      },
      "PaymentDateTime": {
        "type": "string",
        "format": "datetime",
        "description": "Date time from a successful payment. Mandatory for the `AUT3` journey. RFC 3339 value. Format: YYYY-MM-DDThh:mm:ss.SSSZ.\n",
        "example": "2020-08-13T13:49:03.000Z"
      },
      "PersonType": {
        "type": "string",
        "description": "Person type:  \n* `LEGAL_PERSON` - An actual person with legal rights.\n* `NATURAL_PERSON` - An entity, such as an organization or company.\n",
        "enum": [
          "LEGAL_PERSON",
          "NATURAL_PERSON"
        ],
        "example": "NATURAL_PERSON"
      },
      "RecurrenceID": {
        "type": "string",
        "description": "BACEN recurrence ID",
        "example": "RN000000012025050500012345678"
      },
      "TransactionIdentification": {
        "type": "string",
        "description": "Transaction ID from a successful payment. **REQUIRED** for the `AUT3` journey.",
        "maxLength": 35,
        "example": "ttx2020010300000000000000000000001"
      },
      "UpdatedAt": {
        "type": "string",
        "description": "Scheduled item last updated time, RFC 3339 format",
        "example": "2024-11-14T17:54:40Z"
      }
    },
    "responses": {
      "400BadRequest": {
        "description": "Bad request",
        "headers": {
          "x-cid": {
            "description": "Request tracking ID.",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      },
      "401Unauthorized": {
        "description": "Unauthorized. Missing or invalid authentication token.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      },
      "404NotFound": {
        "description": "Not found",
        "headers": {
          "x-cid": {
            "description": "Request tracking ID.",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      },
      "500InternalServer": {
        "description": "Internal Server Error",
        "headers": {
          "x-cid": {
            "description": "Request tracking ID.",
            "schema": {
              "type": "string"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      }
    }
  },
  "paths": {
    "/inst-pull-pay/v1/pix/automatic/payer/authorization": {
      "post": {
        "summary": "Accept/reject recurrence authorization",
        "description": "Pix Automatic payee recurrence payment authorization acceptance or rejection\n",
        "operationId": "accept-reject-authorization",
        "tags": [
          "Automatic Pix"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthHeader"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKeyHeader"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizationRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthorizationResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/401Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "500": {
            "$ref": "#/components/responses/500InternalServer"
          }
        }
      }
    }
  }
}
```