API Reference
Log In
API Reference

Criação de QR Code Dinâmico

Cobrança com QR Code dinâmico (pagamento imediato)

Requisição

POST 'https://apisandbox.delbank.com.br/baas/api/v2/pix/qrcode/dynamic
curl --location 'https://apisandbox.delbank.com.br/baas/api/v2/pix/qrcode/dynamic' \
--header 'x-delbank-api-key: PJPyJ2xGmyB9oDHyNIUwNOt1dgpgolBwcE16ybaKD5rYEc8ujLtarBP0nNw2FKdgK+5YJFciFwTdORlZsdaTzjEbKN5ut+Ag4xGy69bbtXJmzkzRDHry9ubYbMW4xFMb' \
--header 'Content-Type: application/json' \
--data '{
    "correlationId": "{{guid}}",
    "amount": 0.10
}'

Cabeçalhos (Headers)

NomeDescrição
x-delbank-api-keyObrigatório. Chave de API

Corpo da requisição (Body)

Apenas o correlactionId e o amount são obrigatórios

NomeTipoDescrição
correlationIdstringObrigatório. Id de correlação para conciliação com o sistema cliente
Este valor será retornado nas integração via webhook e pode ser utilizado para consultar a cobrança e pagamentos
descriptionstringDescrição interna da cobrança
amountnumberObrigatórioValor da cobrança
formatResponseenumONLY_PAYLOAD valor padrão caso não seja diretamente passado. E o PAYLOAD_AND_QRCODE que contém a imagem com resolução 250x250.
expiresInnumberLimite para expiração do QRCode, com granularidade de segundos, para que o pagamento da cobrança possa ser realizado, a partir da data-hora de criação ou do vencimento, se existir.
Se não for informado, assume-se o valor default 86400
payerobjectInformações do cliente pagador
payer.namestringNome do cliente pagador
payer.documentstringDocumento (CPF/CNPJ) do cliente pagador
payer.validatestringFlag indicando que o pagador deve ser validado durante o processo de caixa. Com esta flag habilitada, o QR Code só pode ser pago por este pagador.
addressobjectInformações do endereço onde é efetuada a transação
address.cityNamestringNome da Cidade onde é efetuada transação
address.zipCodestringCEP da localidade onde é efetuada transação
address.statestringUnidade Federativa onde é efetuada transação
address.streetstringRua ou bairro onde é efetuada a transação
address.complementstringComplemento onde é efetuada a transação caso necessário
additionalInfosobjectObjeto contendo informações adicionais visíveis ao pagador
additionalInfos.namestringNome da informação adicional ou descrição que você deseja adicionar
additionalInfos.valuestringA informação adicional ou descrição que você deseja adicionar

Exemplo básico

A forma mais simples de gerar um QR Code Dinâmico é da seguinte forma:

{
    "correlationId": "{{$guid}}",//guid gerado pelo cliente
    "amount": 0.10
}

Além das informações acima, é possível enviar um tempo de expiração (caso não informado, será considerado o valor default de 86400.

{
    "correlationId": "{{$guid}}",
    "amount": 0.10,
    "expiresIn": 1800,
    "formatResponse": "ONLY_PAYLOAD"
}

Segue alguns exemplos de payload válidos com adição de informações opcionais no corpo da requisição;

{
    "correlationId": "{{$guid}}",
    "amount": 0.10,
    "expiresIn": 1800,
    "formatResponse": "ONLY_PAYLOAD",
    "address": {
        "zipcode": "49000000",
        "cityName": "SAO PAULO",
        "state": "SP"
    }
}
{
    "correlationId": "{{$guid}}",
    "amount": 0.10,
    "expiresIn": 1800,
    "formatResponse": "ONLY_PAYLOAD",
    "address": {
        "zipcode": "49000000",
        "cityName": "SAO PAULO",
        "state": "SP"
    },
    "payer": {
        "document": "47779921018",
        "name": "PAYER NAME",
        "validate": true
    }
}
{
    "correlationId": "{{$guid}}",
    "amount": 0.10,
    "pixKey": "+5511999975734",
    "expiresIn": 1800,
    "formatResponse": "PAYLOAD_AND_QRCODE",
    "address": {
        "zipcode": "49000000",
        "cityName": "SAO PAULO",
        "state": "SP"
    },
    "payer": {
        "document": "47779921018",
        "name": "PAYER NAME",
        "validate": true
    },
    "additionalInfos": [
        {
            "name": "INFO 01",
            "value": "INFO VALUE 01"
        }
    ]
}

Resposta (Response)

O status code 200 indicará sucesso na transação.

Sendo bem-sucedido, o retorno irá trazer os seguintes campos em formato JSON:

NomeTipoDescrição
correlationIdstringId de correlação para conciliação com o sistema cliente
transactionIdstringId do QR code
amountnumberValor da cobrança
allowChangeAmountbooleanDeixar o pagador alterar o valor de pagamento
expiresInnumberLimite para expiração do QRCode, com granularidade de segundos, para que o pagamento da cobrança possa ser realizado, a partir da data-hora de criação ou do vencimento, se existir.
Se não for informado, assume-se o valor default 86400
statusenumStatus do QR code
payerobjectInformações do cliente pagador
payer.namestringNome do cliente pagador
payer.documentstringDocumento (CPF/CNPJ) do cliente pagador
payer.validatebooleanFlag indicando que o pagador deve ser validado durante o processo de caixa. Com esta flag habilitada, o QR Code só pode ser pago por este pagador.
addressobjectInformações do endereço onde é efetuada a transação
createdAtdatetimeData e hora de criação
updatedAtdatetimeData e hora de atualização
expiresAtdatetimeData e hora de expiração
payloadPixstringPix copia e cola
qrCodeImageBase64stringImagem 250x250 em base 64 (Verificar a leitura do qrcode)
additionalInfosobjectObjeto contendo informações adicionais visíveis ao pagador
{
    "correlationId": "40ede975-031d-4517-bdd4-31472d3f00a4",
    "transactionId": "vchargeffab8b4c963344c283e491f5e",
    "amount": 0.10,
    "allowChangeAmount": false,
    "expiresIn": 1800,
    "status": "ACTIVE",
    "payer": {
        "name": "PAYER NAME",
        "document": "***799210**",
        "validate": true
    },
    "address": {
        "cityName": "SAO PAULO",
        "zipCode": "49000000",
        "uf": "SP",
        "state": "SP",
        "street": "LOGRADOURO"
    },
    "createdAt": "2024-12-10T13:19:26.501Z",
    "updatedAt": "2024-12-10T13:19:26.501Z",
    "expiresAt": "2024-12-10T13:49:26.501Z",
    "payloadPix": "00020101021226820014br.gov.bcb.pix2560pix-h.delbank.com.br/v2/cob/vchargeffab8b4c963344c283e491f5e5204000053039865802BR5907DELBANK6009SAO PAULO62070503***6304CB42",
    "qrCodeImageBase64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6CAYAAACI7Fo9AAAZfElEQVR4Xu3SwY4jORJEwcH+/z/",
    "additionalInfos": [
        {
            "name": "INFO 01",
            "value": "INFO VALUE 01"
        }
    ]
}

Cobrança com QR Code Dinâmico com Data de Vencimento

Um QR Code Dinâmico com Data de Vencimento possibilita a utilização de informações como juros, multas e descontos, além do valor a ser pago.

Requisição

POST 'https://apisandbox.delbank.com.br/baas/api/v2/pix/qrcode/due-date
curl --location 'https://apisandbox.delbank.com.br/baas/api/v2/pix/qrcode/due-date' \
--header 'x-delbank-api-key: PJPyJ2xGmyB9oDHyNIUwNOt1dgpgolBwcE16ybaKD5rYEc8ujLtarBP0nNw2FKdgK+5YJFciFwTdORlZsdaTzjEbKN5ut+Ag4xGy69bbtXJmzkzRDHry9ubYbMW4xFMb' \
--header 'Content-Type: application/json' \
--data '{
    "correlationId": "{{$guid}}",
    "amount": 80,
    "dueDate": "2025-12-30",
    "formatResponse": "PAYLOAD_AND_QRCODE",
    "payer": {
        "name": "João Alves",
        "document": "07034346593"
    },
    "address": {
        "cityName": "ARACAJU",
        "zipCode": "49000000",
        "uf": "SE",
        "state": "SE",
        "street": "LOGRADOURO"
    },
    "taxes": {
        "rebateType": "FIXED_AMOUNT",
        "rebateAmount": 1,
        "discountType": "FIXED_AMOUNT",
        "discountAmount": 1,
        "interestType": "FIXED_AMOUNT",
        "interestAmount": 1,
        "fineType": "PERCENTAGE",
        "fineAmount": 10
    }
}'

Corpo da requisição (Body)

Observe que os descontos/multas devem ser de um dos seguintes tipos:

NameDescription
FIXED_AMOUNTValor do desconto/multa fixo, portanto a cada dia de atraso incorrerá nesta taxa de juros
PERCENTAGEDesconto/multa percentual definido por dia, portanto, a cada dia de atraso incorrerá nesta taxa de juros
FIXED_AMOUNT_CALENDAR_DAYSomente para interest. O mesmo que FIXED_AMOUNT
PERCENTAGE_PER_DAY_CALENDAR_DAYSomente para interest. O mesmo que PERCENTAGE
PERCENTAGE_PER_MONTH_CALENDAR_DAYSomente para interest. Porcentagem definida por mês, portanto um pagamento feito com 15 dias de atraso com juros de 100%, terá juros de 50%
PERCENTAGE_PER_YEAR_CALENDAR_DAYSomente para interest. Porcentagem definida por ano, portanto, um pagamento feito com 6 meses de atraso com juros de 100%, terá juros de 50%

Here are the attributes that can be passed for Due Date QR code:

NameTypeDescription
dueDatedatetimeObrigatório. Data em que o código QR deve ser pago
maxDaysOverduenumberQuantidade de dias em que o código QR ainda poderá ser pago
taxesobjectObjeto utilizado para configurar os descontos/multas
taxes.rebateTypeenumFIXED_AMOUNT ou PERCENTAGE
taxes.rebateAmountnumberEste valor será descontado do valor total
taxes.discountTypeenumFIXED_AMOUNT ou PERCENTAGE
taxes.discountAmountnumberNão pode ser usado com discountsDueDate. Este valor será deduzido do valor total somente se pago antes do vencimento
taxes.discountsDueDateobjectNão pode ser usado com discountsDueDate. Objeto contendo até 3 datas de desconto diferentes, caso você queira adicionar incentivos de pagamento antecipado.
taxes.discountsDueDate.dueDatedatetimeNão pode ser usado com discountsDueDate. A data de vencimento de até 3 descontos diferentes que podem ser oferecidos
taxes.discountsDueDate.amountnumberNão pode ser usado com discountsDueDate. O valor de até 3 descontos diferentes que podem ser oferecidos
taxes.interestTypeenumFIXED_AMOUNT_CALENDAR_DAY , PERCENTAGE_PER_DAY_CALENDAR_DAY, PERCENTAGE_PER_MONTH_CALENDAR_DAY ou PERCENTAGE_PER_YEAR_CALENDAR_DAY
taxes.interestAmountnumberValor a ser adicionado após o vencimento, dependendo do tipo de conjunto
taxes.fineTypeenumFIXED_AMOUNT ou PERCENTAGE
taxes.fineAmountnumberValor a ser adicionado após o vencimento
correlationIdstringObrigatório. Os IDs de correlação são para conciliação com o sistema do cliente. Este valor será retornado para a integração por meio de um webhook e pode ser usado para consultas sobre cobranças e pagamentos.
descriptionstringDescrição interna da cobrança (para uma descrição visível para o cliente use o objeto additionalInfos
amountnumberObrigatório Valor da cobrança
formatResponseenumONLY_PAYLOAD valor padrão caso não seja diretamente passado. E o PAYLOAD_AND_QRCODE que contém a imagem com resolução 250x250.
expiresInnumberLimite para expiração do QRCode, com granularidade de segundos, para que o pagamento da cobrança possa ser realizado, a partir da data-hora de criação ou do vencimento, se existir.
Se não for informado, assume-se o valor default 86400.
payerobjectObrigatório. Informações do cliente pagador
payer.namestringNome do cliente pagador
payer.documentstringDocumento (CPF/CNPJ) do cliente pagador
payer.validatebooleanFlag indicando que o pagador deve ser validado durante o processo de caixa. Com esta flag habilitada, o QR Code só pode ser pago por este pagador.
addressobjectRequired. Informações da cidade onde é efetuada a transação
address.cityNamestringNome da Cidade onde é efetuada transação
address.zipCodestringCEP da localidade onde é efetuada transação
address.ufstringUnidade Federativa onde é efetuada transação
address.statestringUnidade Federativa onde é efetuada transação
address.streetstringNome da rua onde é efetuada a transação.
additionalInfosobjectObjeto contendo informações adicionais visíveis ao pagador
additionalInfos.namestringNome da informação adicional ou descrição que você deseja adicionar
additionalInfos.valuestringA informação adicional ou descrição que você deseja adicionar

Uma maneira simples de criar um QR code com data de vencimento com todos os descontos/multas é a seguinte:

{ 
"correlationId": "{{$guid}}",
    "amount": 80,
    "dueDate": "2025-12-30",
    "formatResponse": "PAYLOAD_AND_QRCODE",
    "payer": {
        "name": "João Alves",
        "document": "07034346593"
    },
    "address": {
        "cityName": "ARACAJU",
        "zipCode": "49000000",
        "uf": "SE",
        "state": "SE",
        "street": "LOGRADOURO"
    },
    "taxes": {
        "rebateType": "FIXED_AMOUNT",
        "rebateAmount": 1,
        "discountType": "FIXED_AMOUNT",
        "discountAmount": 1,
        "interestType": "PERCENTAGE_PER_DAY_CALENDAR_DAY",
        "interestAmount": 1,
        "fineType": "PERCENTAGE",
        "fineAmount": 10
    }
}

Aqui está outra maneira, aqui você pode adicionar até 3 datas de desconto:

{
    "correlationId": "{{$guid}}",
    "amount": 80,
    "dueDate": "2025-12-30",
    "payer": {
        "name": "João Alves",
        "document": "07034346593"
    },
    "address": {
        "cityName": "ARACAJU",
        "zipCode": "49000000",
        "uf": "SE",
        "state": "SE",
        "street": "LOGRADOURO"
    },
    "taxes": {
        "rebateType": "FIXED_AMOUNT",
        "rebateAmount": 1,
        "discountType": "FIXED_AMOUNT",
        "discountsDueDate": [
            {
                "dueDate": "2025-05-16",
                "amount": 20
            },
            {
                "dueDate": "2025-06-16",
                "amount": 10
            }
        ],
        "interestType": "PERCENTAGE_PER_DAY_CALENDAR_DAY",
        "interestAmount": 1,
        "fineType": "PERCENTAGE",
        "fineAmount": 10
    },
    "additionalInfos": [
        {
            "name": "INFO 01",
            "value": "INFO VALUE 01"
        }
    ]
}

Resposta (Response)

O código de status 200 indica sucesso na transação

{
    "correlationId": "ac7a235a-1a91-47b0-8da5-0eb75abf3617",
    "transactionId": "wcharge0aac4378c3cf4c37b0ec16c7c",
    "amount": 59.00,
    "originalAmount": 80,
    "dueDate": "2025-12-30",
    "maxDaysOverdue": 30,
    "taxes": {
        "rebateType": "FIXED_AMOUNT",
        "rebateAmount": 1,
        "discountType": "FIXED_AMOUNT",
        "discountsDueDate": [
            {
                "dueDate": "2025-05-16",
                "amount": 20.00
            },
            {
                "dueDate": "2025-06-16",
                "amount": 10.00
            }
        ],
        "interestType": "PERCENTAGE_PER_DAY_CALENDAR_DAY",
        "interestAmount": 1,
        "fineType": "PERCENTAGE",
        "fineAmount": 10
    },
    "status": "ACTIVE",
    "revision": 0,
    "payer": {
        "name": "JOAO ALVES",
        "document": "***343465**"
    },
    "address": {
        "cityName": "ARACAJU",
        "zipCode": "49000000",
        "uf": "SE",
        "state": "SE",
        "street": "LOGRADOURO"
    },
    "createdAt": "2024-12-17T12:22:02.757Z",
    "updatedAt": "2024-12-17T12:22:02.757Z",
    "expiresAt": "2026-01-29T23:59:59.000Z",
    "payloadPix": "00020101021226830014br.gov.bcb.pix2561pix-h.delbank.com.br/v2/cobv/wcharge0aac4378c3cf4c37b0ec16c7c5204000053039865802BR5907DELBANK6007ARACAJU62070503***63040F7B",
    "additionalInfos": [
        {
            "name": "INFO 01",
            "value": "INFO VALUE 01"
        }
    ]
}