---
updatedAt: 2026-06-16T12:48:09.000Z
agentTools:
  siteIndex: https://developers.pismo.io/llms.txt
  projectIndex: https://developers.pismo.io/pismo-docs/llms.txt
---

# Create recurrent static QR Code

Create a recurrent static QR Code and EMV (Europay Mastercard Visa) string.

For more information, refer to [Pix and QR Codes](doc:pix-and-qr-codes).

**Note:** This endpoint takes an account token - an access token encoded with a Pismo account ID.


# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Instant payments - QR Code",
    "contact": {
      "name": "Pismo"
    },
    "description": "QR Code API for creating dynamic QR Code strings, and payloads for payment",
    "license": {
      "name": "Copyright Pismo"
    },
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://sandbox-cdn.pismolabs.io/qrcode",
      "description": "Sandbox API server for testing."
    }
  ],
  "tags": [
    {
      "name": "Recurring payment"
    }
  ],
  "components": {
    "parameters": {
      "authHeader": {
        "name": "Authorization",
        "in": "header",
        "schema": {
          "type": "string"
        },
        "description": "Account token - token encoded with a Pismo account ID. Tokens can expire quickly, which can result in a <b>401 Unauthorized</b> message.\n",
        "required": true
      }
    },
    "schemas": {
      "accessToken": {
        "type": "string",
        "description": "QR Code access token generated and returned at creation.\n",
        "example": "1234567890"
      },
      "accessTokenRequest": {
        "type": "string",
        "description": "Access token related to the `url_payload`/`url_payload_rec` fields, used to register and validate a QR code.\n\nThis field **must** be provided if the PSP requires it. The URL format is described in the Manual of Standards for PIX Initiation.\n",
        "example": "153ed19a-e738-4417-9e98-a515c276a731"
      },
      "additionalInformation": {
        "type": "string",
        "maxLength": 64,
        "description": "Additional information about the new QR Code creation",
        "example": "Additional info about this qrcode"
      },
      "address": {
        "type": "string",
        "maxLength": 200,
        "description": "Location",
        "example": "10 Downing Street, London  SW1A 2AB, UK"
      },
      "amount": {
        "type": "number",
        "description": "Amount to be transferred.",
        "example": 1050.44
      },
      "city": {
        "type": "string",
        "maxLength": 40,
        "description": "City where payment occurred.",
        "example": "Brasilia"
      },
      "contractID": {
        "type": "string",
        "description": "Payee-created external ID for their reference.\n",
        "maxLength": 35,
        "example": "5509-uroo-78944-9987"
      },
      "Taxes": {
        "type": "object",
        "description": "Now only available on EXT environmentand just for direct parciapants. Tax information related to the transaction.",
        "properties": {
          "tax_identifier": {
            "$ref": "#/components/schemas/TaxIdentifier"
          },
          "records": {
            "type": "array",
            "description": "Group of information on tax record types. It is mandatory to pass 2 objects, at least one with CBS tax type and at least one with IBS tax type.\";",
            "items": {
              "$ref": "#/components/schemas/Records"
            }
          }
        }
      },
      "TaxIdentifier": {
        "type": "string",
        "description": "Tax identifier, referring to the NFe, NFSe or aggregating tax document. The value entered must correspond to the tax document used for calculating the IBS and CBS taxes associated with the transaction.",
        "example": "IS0435879820240605bcdb1fhn43a",
        "maxLength": 50
      },
      "TaxType": {
        "type": "string",
        "description": "Tax type. 1- IBS (Goods and Services Tax | 2- CBS Contribution on Goods and Services",
        "example": "IBS",
        "enum": [
          "CBS",
          "IBS"
        ]
      },
      "TaxAmount": {
        "type": "number",
        "minimum": 0,
        "description": "Tax amount. Must be greater than zero.",
        "example": 1050.44
      },
      "Records": {
        "type": "object",
        "properties": {
          "tax_type": {
            "$ref": "#/components/schemas/TaxType"
          },
          "amount": {
            "$ref": "#/components/schemas/TaxAmount"
          }
        }
      },
      "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 code.",
            "example": "EPT0001"
          },
          "details": {
            "$ref": "#/components/schemas/customer.DetailMessage"
          },
          "message": {
            "type": "string",
            "description": "Error 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": "Detailed field name",
            "example": "query_parameter"
          },
          "message": {
            "type": "string",
            "description": "Error's message.",
            "example": "Generic error"
          }
        }
      },
      "customer.PayloadMessage": {
        "type": "object",
        "required": [
          "field",
          "message"
        ],
        "properties": {
          "field": {
            "type": "string",
            "description": "Detailed field name.",
            "example": "Entity.field"
          },
          "message": {
            "type": "string",
            "description": "Error message.",
            "example": "Generic error"
          }
        }
      },
      "debtor": {
        "type": "object",
        "required": [
          "document_number",
          "document_type",
          "name"
        ],
        "properties": {
          "document_number": {
            "$ref": "#/components/schemas/documentNumber"
          },
          "document_type": {
            "$ref": "#/components/schemas/legalType"
          },
          "name": {
            "$ref": "#/components/schemas/name"
          }
        }
      },
      "documentNumber": {
        "type": "string",
        "maxLength": 15,
        "description": "Government ID, such as a CPF (Cadastro de Pessoas Fisicas - individual tax ID in Brazil) or a CNPJ (Cadastro Nacional de Pessoa Juridica - business tax ID in Brazil) number.\n",
        "example": "42761202686"
      },
      "emv": {
        "type": "string",
        "description": "Base 64 encoded discount QR Code payload. EMV = Europay, Mastercard and Visa, a global standard for credit and debit payment. The EMV might include details required for secure transactions such as cardholder informatipn, transaction amount, merchant information, and other relevant data.\n",
        "example": "00020101021226980014br.gov.bcb.pix2576api-h.developer.btgpactual.com/pc/p/v2/...***63040441"
      },
      "externalID": {
        "type": "string",
        "description": "Client-generated record identifier for client tracking and monitoring.\n",
        "example": "my-external-id-9999-6474"
      },
      "firstPaymentDate": {
        "type": "string",
        "format": "datetime",
        "description": "First charge/payment date. Format = yyyy-mm-dd",
        "example": "2025-04-25"
      },
      "frequencyType": {
        "type": "string",
        "description": "Recurrence payment type",
        "enum": [
          "WEEK",
          "MONTH",
          "QUARTER",
          "SEMESTER",
          "YEAR"
        ],
        "example": "MONTH"
      },
      "initialAmount": {
        "type": "number",
        "description": "Initial payment amount",
        "example": 86753.09
      },
      "jws": {
        "type": "string",
        "description": "JWS (JSON Web Signature) payload. When a JWT (JSON Web Token) is signed, it becomes a JWS.\n",
        "example": "eYqqqwq.heif.jk2w"
      },
      "jwsRec": {
        "type": "string",
        "description": "Signed JWS payload, referring to the data of the recurrence.\n",
        "example": "eYqqqwq.heif.jk2w"
      },
      "lastPaymentDate": {
        "type": "string",
        "format": "datetime",
        "description": "Last charge/payment date. Format = yyyy-mm-dd",
        "example": "2026-06-10"
      },
      "legalType": {
        "type": "string",
        "description": "Person legal type:\n  * `LEGAL_PERSON` - Person\n  * `NATURAL_PERSON` - Company or organization\n",
        "enum": [
          "LEGAL_PERSON",
          "NATURAL_PERSON"
        ],
        "example": "NATURAL_PERSON"
      },
      "merchantCategory": {
        "type": "string",
        "description": "Receiver ISO 18245 merchant category code.",
        "example": "5651"
      },
      "minPaymentAmount": {
        "type": "number",
        "description": "Payee-defined minimum payment amount for dynamic amount recurrences.",
        "example": 10.09
      },
      "name": {
        "type": "string",
        "maxLength": 25,
        "description": "Name",
        "example": "Eva Destrukion"
      },
      "pixKey": {
        "type": "string",
        "maxLength": 77,
        "description": "Payee Pix key (should have Pismo account)",
        "example": "chuck@steaks.com"
      },
      "qrcodeID": {
        "type": "string",
        "description": "Pismo QR Code identifier",
        "example": "442e992a-2f89-46fb-820a-958693bde84d"
      },
      "qrcode.CreateRecurrenceQrCodeStaticRequest": {
        "type": "object",
        "required": [
          "payee",
          "amount",
          "transaction_identification"
        ],
        "properties": {
          "payee": {
            "$ref": "#/components/schemas/qrcode.PayeeRequest"
          },
          "amount": {
            "$ref": "#/components/schemas/initialAmount"
          },
          "transaction_identification": {
            "$ref": "#/components/schemas/transactionIDSmall"
          },
          "additional_information": {
            "$ref": "#/components/schemas/additionalInformation"
          },
          "location": {
            "$ref": "#/components/schemas/qrcode.LocationStatic"
          },
          "recurrence_id": {
            "$ref": "#/components/schemas/recurrenceID"
          },
          "recurrence": {
            "$ref": "#/components/schemas/qrcode.Recurrence"
          },
          "access_token": {
            "$ref": "#/components/schemas/accessTokenRequest"
          }
        }
      },
      "qrcode.CreateRecurrenceQrCodeStaticResponse": {
        "type": "object",
        "description": "Create a Recurrence Static Qrcode response",
        "required": [
          "id",
          "external_id",
          "emv",
          "qrcode_image_b64",
          "access_token",
          "recurrence_id"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/qrcodeID"
          },
          "access_token": {
            "$ref": "#/components/schemas/accessToken"
          },
          "external_id": {
            "$ref": "#/components/schemas/externalID"
          },
          "emv": {
            "$ref": "#/components/schemas/emv"
          },
          "qrcode_imageb64": {
            "$ref": "#/components/schemas/qrcode.imageb64"
          },
          "recurrence_id": {
            "$ref": "#/components/schemas/recurrenceID"
          },
          "jws": {
            "$ref": "#/components/schemas/jws"
          },
          "jws_rec": {
            "$ref": "#/components/schemas/jwsRec"
          }
        }
      },
      "qrcode.imageb64": {
        "type": "string",
        "description": "Base64 encoded QR Code",
        "example": "dfkk7830o*&#)@#9FEE"
      },
      "qrcode.LocationStatic": {
        "type": "object",
        "description": "Location URL information",
        "properties": {
          "url_jwk": {
            "$ref": "#/components/schemas/urlJWK"
          },
          "url_payload_rec": {
            "$ref": "#/components/schemas/urlPayloadRec"
          }
        }
      },
      "qrcode.PayeeRequest": {
        "type": "object",
        "description": "Payee information",
        "required": [
          "address",
          "city",
          "key",
          "state",
          "zip_code"
        ],
        "properties": {
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "city": {
            "$ref": "#/components/schemas/city"
          },
          "key": {
            "$ref": "#/components/schemas/pixKey"
          },
          "state": {
            "$ref": "#/components/schemas/state"
          },
          "zip_code": {
            "$ref": "#/components/schemas/zipCode"
          },
          "category": {
            "$ref": "#/components/schemas/merchantCategory"
          }
        }
      },
      "qrcode.Recurrence": {
        "type": "object",
        "description": "Recurrence object. Either this or `recurrence_id` is **REQUIRED**.",
        "required": [
          "frequency_type",
          "first_payment_date",
          "debtor",
          "contract_id"
        ],
        "properties": {
          "frequency_type": {
            "$ref": "#/components/schemas/frequencyType"
          },
          "first_payment_date": {
            "$ref": "#/components/schemas/firstPaymentDate"
          },
          "last_payment_date": {
            "$ref": "#/components/schemas/lastPaymentDate"
          },
          "amount": {
            "$ref": "#/components/schemas/amount"
          },
          "min_payment_amount": {
            "$ref": "#/components/schemas/minPaymentAmount"
          },
          "debtor": {
            "$ref": "#/components/schemas/debtor"
          },
          "contract_id": {
            "$ref": "#/components/schemas/contractID"
          },
          "description": {
            "$ref": "#/components/schemas/recurrenceDescription"
          },
          "allow_attempts_after_expiration": {
            "$ref": "#/components/schemas/retry"
          },
          "taxes": {
            "$ref": "#/components/schemas/Taxes"
          }
        }
      },
      "recurrenceDescription": {
        "type": "string",
        "description": "Recurrence payment description",
        "maxLength": 35,
        "example": "Gym membership"
      },
      "recurrenceID": {
        "type": "string",
        "description": "Recurrence ID. Either this or the `recurrence` object is **REQUIRED**.",
        "example": "RN219952X6X02505XXCONTRACTXXX"
      },
      "retry": {
        "type": "boolean",
        "description": "Allow transaction retries on failure? Default is `false`.",
        "default": false,
        "example": true
      },
      "state": {
        "type": "string",
        "maxLength": 2,
        "description": "Brazilian state where payment will occur - two letter ISO 3166 code.",
        "example": "DF"
      },
      "transactionIDSmall": {
        "type": "string",
        "maxLength": 25,
        "description": "Client-generated unique transaction ID for client monitoring and tracking.\n",
        "example": "trans-id-7578994740"
      },
      "urlJWK": {
        "type": "string",
        "description": "PSP Receiver's URL that holds key pairs in JSON format. Should be hosted on the same site associated with the CERTQRC certificate. Use the format \"JWK Set URL\"  without the protocol (http/https).\n\nThe Central Bank uses this field and `url_payload` to register and validate the QR Code. This field **must** be passed if the PSP requires it.\n\nThe URL format is described in <a href=\"https://www.bcb.gov.br/content/estabilidadefinanceira/cedsfn/Manual_de_Seguranca_PIX.pdf\" target=\"_blank\">Manual de Segurança do PIX</a>.\n"
      },
      "urlPayloadRec": {
        "type": "string",
        "maxLength": 77,
        "description": "PSP Receiver's URL containing the recurence QR Code's JSON Web Signature (JWS). Should not include the protocol (http/https).\n\nThe Central Bank uses this field and `url_jwk` to register and validate the QR Code. This field **must** be passed if the PSP requires it.\n\nThe URL format is described in <a href=\"https://www.bcb.gov.br/content/estabilidadefinanceira/pix/Regulamento_Pix/II_ManualdePadroesparaIniciacaodoPix.pdf\" target=\"_blank\">Manual de Padrões para Iniciação do PIX</a>.\n",
        "example": "example.com/rec/8b3da2f3-941-40d1-a91a-bd93113bd441"
      },
      "zipCode": {
        "type": "string",
        "description": "Location postal code.",
        "example": "8675309"
      }
    },
    "responses": {
      "400BadRequest": {
        "description": "Bad request",
        "headers": {
          "x-cid": {
            "schema": {
              "type": "string"
            },
            "description": "Request tracking identifier"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      },
      "401Unauthorized": {
        "description": "Invalid authorization",
        "headers": {
          "x-cid": {
            "schema": {
              "type": "string"
            },
            "description": "Request tracking identifier"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      },
      "403Forbidden": {
        "description": "Forbidden",
        "headers": {
          "x-cid": {
            "schema": {
              "type": "string"
            },
            "description": "Request tracking identifier"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      },
      "404NotFound": {
        "description": "Not found",
        "headers": {
          "x-cid": {
            "schema": {
              "type": "string"
            },
            "description": "Request tracking identifier"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      },
      "409Conflict": {
        "description": "Conflict",
        "headers": {
          "x-cid": {
            "schema": {
              "type": "string"
            },
            "description": "Request tracking identifier"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      },
      "429TooManyRequests": {
        "description": "Too many reqquests",
        "headers": {
          "x-cid": {
            "schema": {
              "type": "string"
            },
            "description": "Request tracking identifier"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      },
      "500InternalServerError": {
        "description": "Internal Server Error",
        "headers": {
          "x-cid": {
            "schema": {
              "type": "string"
            },
            "description": "Request tracking identifier"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      },
      "502BadGateway": {
        "description": "Bad Gateway",
        "headers": {
          "x-cid": {
            "schema": {
              "type": "string"
            },
            "description": "Request tracking identifier"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      },
      "504GatewayTimeout": {
        "description": "Gateway Timeout",
        "headers": {
          "x-cid": {
            "schema": {
              "type": "string"
            },
            "description": "Request tracking identifier"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/customer.Error"
            }
          }
        }
      }
    }
  },
  "paths": {
    "/v1/pix/qrcode/static/recurrence": {
      "post": {
        "summary": "Create recurrent static QR Code",
        "description": "Create a recurrent static QR Code and EMV (Europay Mastercard Visa) string.\n\nFor more information, refer to [Pix and QR Codes](https://developers.pismo.io/pismo-docs/docs/pix-and-qr-codes).\n\n**Note:** This endpoint takes an account token - an access token encoded with a Pismo account ID.\n",
        "operationId": "post-create-static",
        "tags": [
          "Recurring payment"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/authHeader"
          }
        ],
        "requestBody": {
          "description": "Create Recurrence Static QR Code request",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/qrcode.CreateRecurrenceQrCodeStaticRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Generate COB QR Code response",
            "headers": {
              "x-cid": {
                "schema": {
                  "type": "string"
                },
                "description": "Request tracking identifier"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/qrcode.CreateRecurrenceQrCodeStaticResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/401Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404NotFound"
          },
          "409": {
            "$ref": "#/components/responses/409Conflict"
          },
          "429": {
            "$ref": "#/components/responses/429TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/500InternalServerError"
          },
          "502": {
            "$ref": "#/components/responses/502BadGateway"
          },
          "504": {
            "$ref": "#/components/responses/504GatewayTimeout"
          }
        }
      }
    }
  }
}
```