A API de Pix permite criar links de pagamento , consultar o status de um Pix e realizar devoluções de valores . Ela pode ser usada tanto por fornecedores quanto por varejistas .
Como começar a usar
Pra ter acesso, é só falar com a pessoa que te atende aqui na Blu — pode ser seu Executivo de Contas ou o time de suporte. Eles vão acionar o time responsável, que cuida de liberar o uso da API e te enviar o token de autenticação.
Requisitos
Ter uma chave Pix registrada na sua conta digital Blu. ( )
Ter o token de autenticação para uso das APIs.
Orientações
Preencha todos os campos obrigatórios ao usar as APIs.
Para obter o Pix copia e cola ou o QR Code , utilize a API de Consultar Pix .
Criar Pix
POST
https://api.blu.com.br/b2b/pix/
Esta API é responsável por retornar o código para que sejam consultados os dados do Pix.
Objetivo
Possibilitar aos nossos fornecedores e varejistas possam criar cobranças Pix.
Request Body
Obrigatório. Data em que o Pix irá expirar no formato YYYY-MM-DD.
Descrição do Pix que aparecerá para o pagador.
Máximo 25 caracteres.
Obrigatório. Valor a ser pago no Pix.
Descrição interna para o portal Blu.
Máximo 12 caracteres.
200: OK Pix criado 401: Unauthorized Token inválido 422: Unprocessable Entity expires_at no passado ou vazio 422: Unprocessable Entity value igual a zero, negativo ou vazio
Copy {
"transaction_token": "XXXXXXXX-XXXXXXXXXX-XXXXXXX-XXXXXXXX-XXXX-XXXXXXXXXXXXX"
}
Copy {
"message": "Usuário não encontrado para o token informado."
}
Copy {
"success": false,
"message": "A validação falhou: Data de expiração não pode estar no passado",
"statusCode": 422
}
Copy {
"success": false,
"message": "A validação falhou: Valor deve ser maior que 0",
"statusCode": 422
}
O retorno da criação do Pix é apenas um uuid que deve ser usado na API Consultar Pix para então obter os dados do Pix e poder acompanha-lo.
O retorno da criação do Pix é um arquivo JSON, com um único campo:
Campos da Transação
Data Type
Descrição
uuid para ser utilizado na API Consultar Pix
Consultar Pix
Consultar Pix
GET
https://api.blu.com.br/b2b/pix/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Esta API é responsável por consultar os dados do Pix criado via API e saber seu status.
Objetivo
Possibilitar aos nossos fornecedores e varejistas possam consultar os dados e status de um um Pix criado via API por meio de seu id .
Fique atento! para visualizar os exemplos dos responses abaixo, clique no botão > para abrir o campo de leitura.
Query Parameters
200: OK Consulta realizada - Pix Criado 401: Unauthorized Token inválido 404: Not Found uuid inválido 200: OK Consulta realizada - Pago 200: OK Consulta realizada - Devoluções
Copy {
"id": "XXXXXXXXXXXXXX-XXXXXXX-XXXXXX-XXXXXXX-XXXXXXXXXXXX",
"tx_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"transaction_token": "XXXXXXXX-XXXXXXX-XXXXXX-XXXXXXX-XXXXXX-XXXXXXXXXXXX",
"status": "status retornado",
"expires_at": "YYYY-MM-DD",
"description": "Descrição do Pix",
"description_internal": "Descrição do Pix no Portal Blu",
"value": "00.00",
"created_at": "YYYY-MM-DDTHH:MM:SS.SSSZ",
"emv": "pix copia e cola",
"qr_code_base64": "url do qr code"
}
Copy {
"message": "Usuário não encontrado para o token informado."
}
Copy {
"message": "Nenhum pix encontrado para o identificador informado."
}
Copy {
"id": "XXXXXXXXXXXXXX-XXXXXXX-XXXXXX-XXXXXXX-XXXXXXXXXXXX",
"tx_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"transaction_token": "XXXXXXXX-XXXXXXX-XXXXXX-XXXXXXX-XXXXXX-XXXXXXXXXXXX",
"status": "status retornado",
"expires_at": "YYYY-MM-DD",
"description": "Descrição do Pix",
"description_internal": "Descrição do Pix no Portal Blu",
"value": "00.00",
"created_at": "YYYY-MM-DDTHH:MM:SS.SSSZ",
"emv": "pix copia e cola",
"qr_code_base64": "url do qr code",
"payment_inbounds": [
{
"data": {
"id": "XXXXXXXXXXXXX-XXXXXX-XXXXXX-XXXXX-XXXXXXXXXXXX",
"type": "payment_inbound",
"attributes": {
"debit_party": {
"account": "XXXXXXXXXXX",
"bank": "XXXXXXXX",
"branch": "XXX",
"personType": "XXXXXXXX",
"taxId": "XXXXXXXXXXXX",
"accountType": "XXXXXX",
"name": "Nome de quem pagou o Pix"
},
"pactual_id": "XXXXXXXXXXXXX-XXXXXX-XXXXXX-XXXXX-XXXXXXXXXXXX",
"autorizathion_code": "XXXXXXXXXXXXXXXXXXXXXXXXXXX",
"movement_id": "XXXXXXXX",
"value": "00.00",
"debt_id": "XXXXXXXXXXXXX-XXXXXX-XXXXXX-XXXXX-XXXXXXXXXXXX",
"created_at": "YYYY-MM-DDTHH:MM:SS.SSSZ",
"description": "Descrição do Pix",
"receiver_key": null,
"tx_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
]
}
Copy {
"id": "XXXXXXXXXXXXXX-XXXXXXX-XXXXXX-XXXXXXX-XXXXXXXXXXXX",
"tx_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"transaction_token": "XXXXXXXX-XXXXXXX-XXXXXX-XXXXXXX-XXXXXX-XXXXXXXXXXXX",
"status": "status retornado",
"expires_at": "YYYY-MM-DD",
"description": "Descrição do Pix",
"description_internal": "Descrição do Pix no Portal Blu",
"value": "00.00",
"created_at": "YYYY-MM-DDTHH:MM:SS.SSSZ",
"emv": "pix copia e cola",
"qr_code_base64": "url do qr code",
"payment_inbounds": [
{
"data": {
"id": "XXXXXXXXXXXXX-XXXXXX-XXXXXX-XXXXX-XXXXXXXXXXXX",
"type": "payment_inbound",
"attributes": {
"debit_party": {
"account": "XXXXXXXXXXX",
"bank": "XXXXXXXX",
"branch": "XXX",
"personType": "XXXXXXXX",
"taxId": "XXXXXXXXXXXX",
"accountType": "XXXXXX",
"name": "Nome de quem pagou o Pix"
},
"pactual_id": "XXXXXXXXXXXXX-XXXXXX-XXXXXX-XXXXX-XXXXXXXXXXXX",
"autorizathion_code": "XXXXXXXXXXXXXXXXXXXXXXXXXXX",
"movement_id": "XXXXXXXX",
"value": "00.00",
"debt_id": "XXXXXXXXXXXXX-XXXXXX-XXXXXX-XXXXX-XXXXXXXXXXXX",
"created_at": "YYYY-MM-DDTHH:MM:SS.SSSZ",
"description": "Descrição do Pix",
"receiver_key": null,
"tx_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXX",
"refunds": [
{
"data": {
"id": "XXXXXXXXXXXXX-XXXXXX-XXXXXX-XXXXX-XXXXXXXXXXXX",
"type": "refund",
"attributes": {
"value": "00.00",
"client_transaction_refund_id": "XXXXXXXXXXXXX-XXXXXX-XXXXXX-XXXXX-XXXXXXXXXXXX",
"requester_uuid": "XXXXXXX",
"status": "confirmed",
"return_identification_transiting_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXX",
"reason": "Mensagem de Devolução",
"requested_at": "YYYY-MM-DDTHH:MM:SS.SSSZ",
"liquidated_at": null,
"payment_inbound_id": "XXXXXXXXXXXXX-XXXXXX-XXXXXX-XXXXX-XXXXXXXXXXXX",
"original_e2e_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXX",
"original_pactual_id": "XXXXXXXXXXXXX-XXXXXX-XXXXXX-XXXXX-XXXXXXXXXXXX",
"pactual_id": "XXXXXXXXXXXXX-XXXXXX-XXXXXX-XXXXX-XXXXXXXXXXXX"
[...]
}
}
]
}
]
}
Para realizar uma Devolução de Pix deve ser utilizado o campo movement_id que aparece após o pagamento do Pix.
O retorno da consulta do Pix é um arquivo JSON, contendo as informações do Pix e seu status. Abaixo vemos todos os campos que serão retornados:
Campos da Transação
Data Type
Descrição
id do Pix perante ao banco.
Token do Pix na Blu, utilizado para localizar o Pix.
Data de expiração do Pix no formato AAAA-MM-DD.
Descrição externa do Pix inserida na criação.
Descrição interna do Pix inserida na criação.
Data de criação do Pix no formato AAAA-MM-DD.
Link a ser utilizado para Pix Copia e Cola.
Dados para montar o qr code do Pix.
Devolução de Pix
Após o pagamento de um Pix é possível devolvê-lo de forma total ou parcial e para isso a API de Devolução de Pix deve ser utilizada. Para realizar a
Devolução de Pix
POST
https://api.blu.com.br/b2b/pix/refund
Esta API possibilita devolver total ou parcialmente um Pix criado via API.
Objetivo
Possibilitar aos nossos fornecedores e varejistas possam devolver valores cobrados via Pix.
Fique atento! para visualizar os exemplos dos responses abaixo, clique no botão > para abrir o campo de leitura.
Request Body
Obrigatório. Id do pagamento do Pix.
Descrição do motivo da devolução.
Obrigatório. Valor da devolução.
200: OK Valores devolvidos 401: Unauthorized Token inválido 422: Unprocessable Entity value igual a zero, negativo ou vazio
Copy {
"client_transaction": {
"uuid": "XXXXXXX-XXXXXX-XXXXX-XXXXXXXX-XXXXXXXXXXXXX",
"gross_value": "-00.00",
"happened_at": "YYYY-MM-DDTHH:MM:SS.SSS-00:00",
"released_at": "YYYY-MM-DD",
"status": "status"
}
}
Copy {
"message": "Usuário não encontrado para o token informado."
}
Copy {
"success": false,
"message": "A validação falhou: Valor deve ser maior que 0",
"statusCode": 422
}
A API Devolução de Pix não critica se o valor devolvido é ou não maior que o valor da transação. Contudo, a operação só é executada e aparece na sessão refunds da Consulta Pix se o valor ou igual ou menor que o valor do Pix pago.
Os cURLs para executar as APIs do Link de Pagamento são exibidos abaixo, bem como a collection com todas as APIs para ser importada no Postman está em anexo na página.
Criar Pix
cURL NodeJs
Copy curl --location 'https://api.blu.com.br/b2b/pix/' \
--header 'Authorization: Bearer XXXXXXXXXXXXXXXXXX' \
--header 'Content-Type: application/json' \
--data '{
"expires_at": "AAAA-MM-DD",
"description": "Descrição Externa do Pix",
"description_internal": "Descrição Interna do Pix",
"value": "0.00"
}'
Copy var request = require('request');
var options = {
'method': 'POST',
'url': 'https://api.blu.com.br/b2b/pix/',
'headers': {
'Authorization': 'Bearer XXXXXXXXXXXXXXXXXX',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"expires_at": "AAAA-MM-DD",
"description": "Descrição Externa do Pix",
"description_internal": "Descrição Interna do Pix",
"value": "0.00"
})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
Consultar Pix
cURL NodeJs
Copy curl --location --globoff 'https://api.blu.com.br/b2b/pix/{transaction-token}' \
--header 'Authorization: Bearer XXXXXXXXXXXXXXXXXX'
Copy var request = require('request');
var options = {
'method': 'GET',
'url': 'https://api.blu.com.br/b2b/pix/{transaction-token}',
'headers': {
'Authorization': 'Bearer XXXXXXXXXXXXXXXXXX'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
Devolver Pix
cURL NodeJs
Copy curl --location 'https://api.blu.com.br/b2b/pix/refund' \
--header 'Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXX' \
--header 'Content-Type: application/json' \
--data '{
"movement_id": "XXXXXXXXXXXXXXXXXXXXXX",
"reason": "Motivo para Devolução",
"value": "00.00"
}'
Copy var request = require('request');
var options = {
'method': 'POST',
'url': 'https://api.blu.com.br/b2b/pix/refund',
'headers': {
'Authorization': 'Bearer XXXXXXXXXXXXXXXXXXXXXXX',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"movement_id": "XXXXXXXXXXXXXXXXXXXXXX",
"reason": "Motivo para Devolução",
"value": "00.00"
})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});