📖 Introdução
Bem-vindo à documentação da FlashPix API. Esta API permite integração completa com o sistema de pagamentos PIX, incluindo geração de QR Codes, pagamentos e consulta de saldo.
Base URL
https://api.flashpix.cloud
Protocolo
A API utiliza o protocolo HTTP/HTTPS com requisições e respostas no formato JSON.
Características
- ✅ Autenticação OAuth 2.0 com Client Credentials
- ✅ Geração de QR Code PIX dinâmico
- ✅ Pagamentos PIX via chave
- ✅ Consulta de saldo em tempo real
- ✅ Webhooks para notificações
- ✅ Cálculo automático de taxas
🔐 Autenticação
A API utiliza tokens JWT (JSON Web Tokens) para autenticação. Você precisa obter um access_token através do endpoint OAuth antes de fazer requisições aos endpoints protegidos.
Fluxo de Autenticação
- Obtenha suas credenciais (client_id e client_secret)
- Faça uma requisição POST para
/v2/oauth/token com Basic Auth
- Receba o access_token na resposta
- Use o token no header Authorization: Bearer {token} nas próximas requisições
ℹ️ Importante: Os tokens têm tempo de expiração configurável. Quando expirar, você precisará solicitar um novo token.
| Header |
Valor |
Descrição |
Authorization |
Bearer {access_token} |
Token JWT obtido via OAuth (endpoints protegidos) |
Content-Type |
application/json |
Formato do corpo da requisição |
🔑 OAuth - Obter Token de Acesso
POST
/v2/oauth/token
Endpoint para obter ou renovar o access_token usando credenciais do cliente.
Headers
| Header |
Tipo |
Descrição |
Authorization |
Obrigatório |
Basic Auth com client_id:client_secret em Base64 |
Exemplo de Requisição
POST /v2/oauth/token HTTP/1.1
api.flashpix.cloud
Basic Y2xpZW50X2lkOmNsaWVudF9zZWNyZXQ=
application/json
Exemplo com cURL
curl -X POST https://api.flashpix.cloud/v2/oauth/token \
-H "Authorization: Basic $(echo -n 'client_id:client_secret' | base64)" \
-H "Content-Type: application/json"
Resposta de Sucesso (200 OK)
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_in": 3600
}
Parâmetros da Resposta
| Campo |
Tipo |
Descrição |
access_token |
string |
Token JWT para autenticação nas próximas requisições |
expires_in |
integer |
Tempo de validade do token em segundos |
Possíveis Erros
| Código |
Mensagem |
Descrição |
| 401 |
Cabeçalho Authorization ausente ou inválido |
Header Authorization não foi enviado ou está mal formatado |
| 400 |
Formato do Authorization inválido |
Credenciais não estão no formato correto (client_id:client_secret) |
| 404 |
Credenciais inválidas |
Client ID ou Client Secret incorretos |
💰 Consultar Saldo
POST
/v2/balance
Endpoint para consultar o saldo disponível do usuário autenticado.
⚠️ Autenticação Necessária: Este endpoint requer um token JWT válido no header Authorization.
Headers
| Header |
Tipo |
Descrição |
Authorization |
Obrigatório |
Bearer {access_token} |
Content-Type |
Obrigatório |
application/json |
Exemplo de Requisição
POST /v2/balance HTTP/1.1
api.flashpix.cloud
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
application/json
Exemplo com cURL
curl -X POST https://api.flashpix.cloud/v2/balance \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"
Resposta de Sucesso (200 OK)
Parâmetros da Resposta
| Campo |
Tipo |
Descrição |
amount |
number |
Saldo disponível do usuário em reais (R$) |
Possíveis Erros
| Código |
Mensagem |
Descrição |
| 401 |
Token inválido ou expirado |
O token JWT não é válido ou já expirou |
| 404 |
Usuário não encontrado |
O usuário associado ao token não existe no sistema |
💳 PIX - Pagamentos
Gerar QR Code PIX
POST
/v2/pix/qrcode
Endpoint para gerar um QR Code PIX dinâmico para recebimento de pagamentos.
⚠️ Autenticação Necessária: Este endpoint requer um token JWT válido no header Authorization.
Headers
| Header |
Tipo |
Descrição |
Authorization |
Obrigatório |
Bearer {access_token} |
Content-Type |
Obrigatório |
application/json |
Parâmetros do Body (JSON)
| Campo |
Tipo |
Obrigatório |
Descrição |
amount |
number |
Sim |
Valor do pagamento em reais (ex: 100.50) |
external_id |
string |
Sim |
ID único da transação (deve ser único no sistema) |
payerQuestion |
string |
Sim |
Descrição/motivo do pagamento |
postbackUrl |
string |
Sim |
URL para receber notificações de webhook |
payer |
object |
Sim |
Dados do pagador |
payer.name |
string |
Sim |
Nome completo do pagador |
payer.document |
string |
Sim |
CPF ou CNPJ do pagador |
Exemplo de Requisição
POST /v2/pix/qrcode HTTP/1.1
api.flashpix.cloud
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
application/json
{
"amount": 150.00,
"external_id": "TXN123456789",
"payerQuestion": "Pagamento de serviço",
"postbackUrl": "https://seusite.com/webhook",
"payer": {
"name": "João Silva",
"document": "12345678900"
}
}
Exemplo com cURL
curl -X POST https://api.flashpix.cloud/v2/pix/qrcode \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"amount": 150.00,
"external_id": "TXN123456789",
"payerQuestion": "Pagamento de serviço",
"postbackUrl": "https://seusite.com/webhook",
"payer": {
"name": "João Silva",
"document": "12345678900"
}
}'
Resposta de Sucesso (201 Created)
{
"transactionId": "e76e996f57849498d0ddm4ebrz4y5g55",
"status": "PENDING",
"qrCode": "00020126580014br.gov.bcb.pix...",
"qrCodeImage": "data:image/png;base64,iVBORw0KGgoAAAANS...",
"postbackUrl": "https://seusite.com/webhook",
"amount": 150.00,
"external_id": "TXN123456789"
}
Parâmetros da Resposta
| Campo |
Tipo |
Descrição |
transactionId |
string |
ID único da transação gerado pelo sistema |
status |
string |
Status da transação (PENDING, COMPLETED, FAILED) |
qrCode |
string |
Código PIX copia e cola |
qrCodeImage |
string |
Imagem do QR Code em Base64 |
postbackUrl |
string |
URL configurada para webhook |
amount |
number |
Valor da transação |
external_id |
string |
ID externo fornecido na requisição |
ℹ️ Taxas: O sistema calcula automaticamente as taxas de recebimento baseadas na configuração do banco de dados (tax_cashin e tax_min). A taxa é registrada na transação mas não afeta o valor do QR Code.
Possíveis Erros
| Código |
Mensagem |
Descrição |
| 400 |
O external_id já está em uso |
O external_id fornecido já existe em outra transação |
| 401 |
Token inválido ou expirado |
O token JWT não é válido ou já expirou |
| 500 |
Erro ao criar QR Code |
Erro na comunicação com a API externa ou erro interno |
Realizar Pagamento PIX
POST
/v2/pix/payment
Endpoint para realizar um pagamento PIX para uma chave PIX específica.
⚠️ Autenticação Necessária: Este endpoint requer um token JWT válido no header Authorization.
Headers
| Header |
Tipo |
Descrição |
Authorization |
Obrigatório |
Bearer {access_token} |
Content-Type |
Obrigatório |
application/json |
Parâmetros do Body (JSON)
| Campo |
Tipo |
Obrigatório |
Descrição |
amount |
number |
Sim |
Valor do pagamento em reais (ex: 100.50) |
description |
string |
Sim |
Descrição do pagamento |
creditParty |
object |
Sim |
Dados do recebedor |
creditParty.name |
string |
Sim |
Nome do recebedor |
creditParty.keyType |
string |
Sim |
Tipo da chave PIX (CPF, CNPJ, EMAIL, PHONE, EVP) |
creditParty.key |
string |
Sim |
Chave PIX do recebedor |
Exemplo de Requisição
POST /v2/pix/payment HTTP/1.1
api.flashpix.cloud
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
application/json
{
"amount": 250.00,
"description": "Pagamento de fornecedor",
"creditParty": {
"name": "Maria Santos",
"keyType": "CPF",
"key": "98765432100"
}
}
Exemplo com cURL
curl -X POST https://api.flashpix.cloud/v2/pix/payment \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"amount": 250.00,
"description": "Pagamento de fornecedor",
"creditParty": {
"name": "Maria Santos",
"keyType": "CPF",
"key": "98765432100"
}
}'
Resposta de Sucesso (200 OK)
HTTP/1.1 200 OK
Em caso de sucesso, o endpoint retorna status 200 sem corpo na resposta. O saldo do usuário é automaticamente debitado e a transação é registrada no banco de dados.
ℹ️ Taxas e Saldo: O sistema calcula automaticamente as taxas de saque (tax_cashout e tax_min). O valor total (amount + taxa) é debitado do saldo do usuário. A transação só é processada se houver saldo suficiente.
✅ IDs Automáticos: O sistema gera automaticamente:
- external_id: ID de 10 dígitos numéricos
- transactionId: ID único no formato hexadecimal
- end2endId: ID no formato E + timestamp + caracteres aleatórios
Possíveis Erros
| Código |
Mensagem |
Descrição |
| 400 |
Parâmetros inválidos |
Campos obrigatórios ausentes ou inválidos |
| 400 |
Saldo insuficiente |
O usuário não possui saldo suficiente para realizar o pagamento |
| 401 |
Token inválido ou expirado |
O token JWT não é válido ou já expirou |
| 404 |
Usuário não encontrado |
O usuário associado ao token não existe |
| 500 |
Erro ao processar pagamento |
Erro na comunicação com a API externa ou erro interno |
⚠️ Códigos de Erro
A API utiliza códigos de status HTTP padrão para indicar sucesso ou falha das requisições.
Códigos de Sucesso
| Código |
Status |
Descrição |
| 200 |
OK |
Requisição processada com sucesso |
| 201 |
Created |
Recurso criado com sucesso (ex: QR Code gerado) |
Códigos de Erro do Cliente
| Código |
Status |
Descrição |
| 400 |
Bad Request |
Requisição inválida ou parâmetros incorretos |
| 401 |
Unauthorized |
Autenticação falhou ou token inválido/expirado |
| 404 |
Not Found |
Recurso não encontrado |
Códigos de Erro do Servidor
| Código |
Status |
Descrição |
| 500 |
Internal Server Error |
Erro interno do servidor ou erro na API externa |
Formato de Resposta de Erro
Quando ocorre um erro, a API retorna um objeto JSON com a seguinte estrutura:
{
"statusCode": 400,
"message": "Descrição do erro",
"errorDetails": {
}
}
Exemplos de Erros Comuns
Token Expirado
{
"message": "Token inválido ou expirado."
}
Credenciais Inválidas
{
"statusCode": 404,
"message": "Credenciais inválidas."
}
Saldo Insuficiente
{
"message": "Saldo insuficiente."
}
External ID Duplicado
{
"message": "O external_id já está em uso em outra transação."
}
🔔 Webhooks
A API envia notificações via webhook para informar sobre mudanças no status das transações.
Configuração
Ao criar um QR Code PIX, você deve fornecer uma URL no campo postbackUrl. Esta URL receberá notificações POST quando o status da transação mudar.
ℹ️ Importante: Sua URL de webhook deve estar acessível publicamente e responder com status 200 OK para confirmar o recebimento da notificação.
As notificações são enviadas via POST com Content-Type application/json:
{
"transactionId": "e76e996f57849498d0ddm4ebrz4y5g55",
"external_id": "TXN123456789",
"status": "COMPLETED",
"amount": 150.00,
"timestamp": "2024-01-15T10:30:00Z"
}
Status Possíveis
| Status |
Descrição |
PENDING |
Transação criada, aguardando pagamento |
COMPLETED |
Pagamento confirmado com sucesso |
FAILED |
Transação falhou ou foi cancelada |
🔒 Segurança
Boas Práticas
- ✅ Nunca exponha suas credenciais (client_id e client_secret) no frontend
- ✅ Armazene tokens de forma segura e nunca os compartilhe
- ✅ Use HTTPS em produção para todas as requisições
- ✅ Implemente rate limiting para prevenir abuso
- ✅ Valide e sanitize todos os dados de entrada
- ✅ Monitore logs de acesso e transações suspeitas
- ✅ Mantenha as dependências atualizadas
- ✅ Configure webhooks com URLs HTTPS válidas
- ✅ Implemente retry logic para webhooks falhados
📞 Suporte
Para dúvidas, problemas ou sugestões sobre a API:
- 📧 Email: suporte@flashpix.cloud
- 📱 Telefone: (11) 1234-5678
- 💬 Chat: Disponível no painel administrativo