{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"dc4678c9-b2b9-4fc9-819b-fce4c9ad1557","name":"Dados Jah - PIX","description":"# API de Gestão de Pix (Dados Jah)\n\nBem-vindo à documentação da API Pix da **Dados Jah**!\n\nEsta API permite que o seu sistema (site, aplicativo, ERP, e-commerce ou qualquer outro software) crie cobranças Pix, receba pagamentos, consulte transações, faça devoluções e gerencie contas bancárias — tudo de forma automatizada, sem precisar acessar o internet banking do banco.\n\n> **Resumo :** Pix é o sistema de pagamentos instantâneos do Banco Central. Com esta API, o seu programa \"conversa\" diretamente com os bancos e PSPs para emitir QR Codes, receber notificações de pagamento e movimentar dinheiro em tempo real. \n  \n\n---\n\n# O que é o Pix? (Explicação simples)\n\nO **Pix** é um meio de pagamento eletrônico criado pelo Banco Central do Brasil. Ele permite transferir dinheiro de uma conta para outra em segundos, a qualquer dia e horário, incluindo fins de semana e feriados.\n\nExistem duas formas principais de usar o Pix:\n\n1. **Para pagar:** uma pessoa escaneia um QR Code ou usa a opção \"Pix Copia e Cola\" no aplicativo do banco.\n    \n2. **Para receber:** uma empresa gera um QR Code ou uma string Pix e envia para o cliente pagar.\n    \n\nA API da Dados Jah cuida de **gerar esses QR Codes e strings**, consultar se o pagamento foi feito e devolver o dinheiro quando necessário.\n\n---\n\n# O que esta API faz por você?\n\nEm vez de você precisar integrar o seu sistema diretamente com cada banco (Bradesco, Itaú, Inter, etc.), você se comunica apenas com a **API Dados Jah**. Nós cuidamos da parte complexa da conversa com os bancos.\n\n### Principais funcionalidades\n\n| Funcionalidade | O que faz | Endpoint principal |\n| --- | --- | --- |\n| **Cobrança Imediata (COB)** | Gera um QR Code/PIX para pagamento à vista, sem data de vencimento. | `POST /cob` |\n| **Cobrança com Vencimento (COBV)** | Gera um \"boleto Pix\" com data de vencimento, juros, multa e desconto. | `POST /cobv` |\n| **QR Code Estático** | Gera um QR Code reutilizável, com valor fixo ou livre. | `POST /cob/generate-static-qrcode` |\n| **Consultar Pix recebidos** | Lista todos os pagamentos que entraram na sua conta. | `GET /pix/recebidos` |\n| **Consultar transação específica** | Busca os detalhes oficiais de um pagamento pelo identificador do Banco Central. | `GET /pix/consultar` |\n| **Devolver/reembolsar** | Estorna um pagamento recebido, total ou parcialmente. | `POST /pix/devolucao` |\n| **Gerenciar contas bancárias** | Cadastra, edita e remove contas Pix vinculadas. | `POST /user/account` |\n| **Enviar certificados** | Envia os arquivos de segurança exigidos pelos bancos. | `POST /certificate` |\n\n---\n\n# Glossário: termos que você precisa conhecer\n\n| Termo | Significado simples |\n| --- | --- |\n| **API** | \"Ponte\" que permite que dois programas de computador troquem informações automaticamente. |\n| **PSP** | Provedor de Serviço de Pagamento. É o banco ou instituição financeira que processa o Pix (ex: Banco Inter, Itaú, Bradesco). |\n| **Chave Pix** | Identificador cadastrado no banco (CPF, e-mail, celular ou chave aleatória) usado para receber pagamentos. |\n| **QR Code Dinâmico** | QR Code de uso único, gerado para uma cobrança específica, com informações detalhadas do pagamento. |\n| **QR Code Estático** | QR Code que pode ser reutilizado várias vezes, ideal para doações, caixas de loja, etc. |\n| **Pix Copia e Cola** | String de texto que representa o QR Code. O cliente copia e cola no aplicativo do banco para pagar. |\n| **txid** | Código de identificação da cobrança gerado pelo recebedor (26 a 35 caracteres). |\n| **endToEndId** | Identificador único de uma transação Pix, gerado pelo Banco Central quando o pagamento é confirmado. |\n| **mTLS** | Protocolo de segurança que exige um certificado digital para o sistema se comunicar com o banco. |\n| **OAuth2 / Scope** | Mecanismo de permissão. O scope define o que cada token de acesso pode fazer (ler, escrever, cancelar). |\n| **Homologação** | Ambiente de testes. Nenhum dinheiro real é movimentado. |\n| **Produção** | Ambiente real. Pagamentos e devoluções movimentam dinheiro de verdade. |\n| **JWT / accessToken** | \"Senha temporária\" que o seu sistema recebe após fazer login e deve usar em todas as chamadas seguintes. |\n| **COB** | Cobrança Imediata. Pix com vencimento \"para já\". |\n| **COBV** | Cobrança com Vencimento. Pix com data de vencimento futura, juros, multa e desconto. |\n| **Base64** | Formato de codificação usado para enviar arquivos (como certificados) dentro de textos JSON. |\n\n---\n\n# Tipos de QR Code: qual usar e quando?\n\n### 1\\. QR Code Dinâmico Imediato (COB)\n\n- **Quando usar:** venda no e-commerce, checkout de loja, cobrança por serviço.\n    \n- **Características:**\n    \n    - Tem uma data de expiração (ex: 1 hora, 24 horas).\n        \n    - Pode ser pago apenas uma vez.\n        \n    - Mostra o valor exato e informações do devedor.\n        \n    - Ideal para cobranças personalizadas.\n        \n- **Endpoint:** `POST /cob`\n    \n\n### 2\\. QR Code Dinâmico com Vencimento (COBV)\n\n- **Quando usar:** substituir boletos, faturas mensais, carnês, parcelamentos.\n    \n- **Características:**\n    \n    - Tem uma data de vencimento definida.\n        \n    - Após o vencimento, pode aplicar juros, multa e descontos por antecipação.\n        \n    - O valor pode mudar conforme a data de pagamento.\n        \n- **Endpoint:** `POST /cobv`\n    \n\n### 3\\. QR Code Estático\n\n- **Quando usar:** doações, caixas de loja física, cobranças sem identificação do cliente.\n    \n- **Características:**\n    \n    - Pode ser reutilizado infinitas vezes.\n        \n    - Pode ter valor fixo ou deixar o cliente digitar o valor.\n        \n    - Não gera \"txid\" nem identifica o pagador automaticamente.\n        \n- **Endpoint:** `POST /cob/generate-static-qrcode`\n    \n\n---\n\n# Ambientes: Homologação vs Produção\n\nO ambiente (homologação ou produção) é definido por **conta bancária** através do campo `tpAmb` no cadastro da conta (`POST /user/account`). Isso permite que um mesmo usuário tenha contas em homologação e produção simultaneamente.\n\n| tpAmb | Ambiente | Descrição |\n| --- | --- | --- |\n| `0` | **Sandbox (Homologação)** | Testes — nenhum dinheiro real é movimentado |\n| `1` | **Produção** | Ambiente real — pagamentos e devoluções valem dinheiro |\n| `2` | **Pré-Produção** | Ambiente intermediário para validação final (quando o PSP oferecer) |\n\n### Homologação (`tpAmb: 0`)\n\n- **O que é:** um ambiente seguro que simula o banco real.\n    \n- **Dinheiro real?** Não. Todos os valores são fictícios.\n    \n- **Objetivo:** testar a integração sem risco.\n    \n- **Como usar:**\n    \n    1. Cadastre a conta com `\"tpAmb\": 0`.\n        \n    2. Use as credenciais de teste fornecidas pelo PSP.\n        \n    3. Crie cobranças, faça pagamentos simulados e valide os fluxos.\n        \n- **Cuidados:**\n    \n    - Não use certificados de produção.\n        \n    - Não envie CPF/CNPJ de clientes reais em testes desnecessários.\n        \n    - PSPs diferentes têm regras diferentes de sandbox; consulte a documentação do seu banco.\n        \n\n### Produção (`tpAmb: 1`)\n\n- **O que é:** o ambiente onde pagamentos reais acontecem.\n    \n- **Dinheiro real?** Sim. Todo pagamento e devolução movimenta valores reais.\n    \n- **Como usar:**\n    \n    1. Só libere após todos os testes em homologação estarem aprovados.\n        \n    2. Cadastre a conta com `\"tpAmb\": 1`.\n        \n    3. Use certificados reais emitidos pelo PSP.\n        \n    4. Use `clientId` e `clientSecret` reais.\n        \n- **Cuidados:**\n    \n    - Nunca exponha `clientSecret`, tokens ou certificados em código público.\n        \n    - Faça backup dos certificados em local seguro.\n        \n    - Tenha um processo de conciliação diária.\n        \n\n> ⚠️ **Atenção:** uma única conta não pode misturar ambientes. Se precisar testar e operar ao mesmo tempo, crie duas contas: uma com `tpAmb: 0` (homologação) e outra com `tpAmb: 1` (produção), cada uma com suas respectivas credenciais e certificados. \n  \n\n---\n\n# Como começar (passo a passo)\n\n### Passo 1: entenda o seu papel\n\nNa API Dados Jah existem dois atores principais:\n\n- **Sistema:** quem administra a plataforma, cria usuários e gerencia contas.\n    \n- **Usuário (cliente):** quem emite cobranças, recebe pagamentos e faz devoluções.\n    \n\n**Como funciona na prática:**\n\n1. Primeiro, você usa as rotas do **Sistema** (`/auth/system/login`, `/system/user`, etc.) para criar o usuário/  \n    cliente que vai operar.\n    \n2. Depois que o usuário está criado, você passa a usar as rotas do **Usuário** (`/auth/user/login`, `/ cob`, `/pix`, etc.) para emitir cobranças, receber pagamentos e fazer devoluções.\n    \n\n> **Resumo:** o Sistema é usado para \"fazer o cadastro inicial\". A partir daí, o dia a dia da operação financeira acontece pelas rotas do Usuário. \n  \n\n### Passo 2: obtenha credenciais\n\nVocê precisa de:\n\n1. Uma conta na Dados Jah (sistema).\n    \n2. Uma conta bancária com Pix habilitado no PSP escolhido.\n    \n3. As credenciais do PSP (`clientId`, `clientSecret`, certificado, etc.).\n    \n\n### Passo 3: defina o ambiente de cada conta\n\nDiferente de outras APIs que usam URLs diferentes para cada ambiente, aqui o ambiente é definido **por conta bancária** através do campo `tpAmb`:\n\n- `0` = Sandbox / Homologação (testes)\n    \n- `1` = Produção (dinheiro real)\n    \n- `2` = Pré-Produção (se o PSP oferecer)\n    \n\nIsso permite que uma única aplicação opere contas de teste e contas reais ao mesmo tempo.\n\n### Passo 4: autentique-se\n\n- Para rotas administrativas: `POST /auth/system/login`.\n    \n- Para rotas do cliente: `POST /auth/user/login`.\n    \n- Guarde o `accessToken` retornado. Ele deve ser enviado no cabeçalho `Authorization: Bearer {token}`.\n    \n\n### Passo 5: cadastre a conta Pix\n\nUse `POST /user/account` informando:\n\n- nome da conta;\n    \n- PSP escolhido (ex: `INTER`, `ITAU`, `BRADESCO`);\n    \n- tipo e valor da chave Pix;\n    \n- `clientId` e `clientSecret`;\n    \n- `tpAmb`: `0` para homologação, `1` para produção;\n    \n- scopes necessários;\n    \n- se a conta está ativa.\n    \n\n### Passo 6: envie o certificado (se exigido pelo PSP)\n\nUse `POST /certificate` enviando o arquivo convertido para Base64 e a extensão correta (`.pfx`, `.crt`, `.key`). É possível enviar múltiplos certificados para uma mesma conta, desde que tenham extensões diferentes. Arquivos com a mesma extensão substituirão os existentes.\n\n### Passo 7: crie a primeira cobrança\n\nUse `POST /cob` para gerar um Pix Copia e Cola e testar o fluxo completo.\n\n---\n\n# Fluxo prático: Do login ao primeiro pagamento\n\nImagine que você quer vender um produto de R$ 10,00.\n\n### 1\\. Login do usuário\n\n``` bash\nPOST {{BaseURL}}/auth/user/login\nContent-Type: application/json\n{\n  \"email\": \"usuario@empresa.com\",\n  \"password\": \"SuaSenhaSegura\"\n}\n\n ```\n\n**Resposta esperada:**\n\n``` json\n{\n  \"statusCode\": 201,\n  \"data\": {\n    \"accessToken\": \"eyJhbGciOiJIUzI1NiIs...\"\n  }\n}\n\n ```\n\nGuarde esse token. Ele será usado em todas as próximas chamadas.\n\n### 2\\. Cadastrar a conta bancária\n\n``` bash\nPOST {{BaseURL}}/user/account\nAuthorization: Bearer {{token-user}}\nContent-Type: application/json\n[\n  {\n    \"nameAccount\": \"Conta Principal\",\n    \"psp\": \"INTER\",\n    \"keyTypePIX\": \"EMAIL\",\n    \"keyPIX\": \"financeiro@empresa.com\",\n    \"clientId\": \"seu-client-id-do-inter\",\n    \"clientSecret\": \"seu-client-secret-do-inter\",\n    \"scopes\": [\"scCobWrite\", \"scCobRead\", \"scPixWrite\", \"scPixRead\"],\n    \"active\": true\n  }\n]\n\n ```\n\n**Dica:** salve o `idAccount` retornado em uma variável de ambiente do Postman.\n\n### 3\\. Criar a cobrança\n\n``` bash\nPOST {{BaseURL}}/cob\nAuthorization: Bearer {{token-user}}\nContent-Type: application/json\n{\n  \"async\": false,\n  \"idAccount\": \"{{idAccount}}\",\n  \"cobs\": [\n    {\n      \"reqOriginalValue\": \"10.00\",\n      \"reqExpirationSeconds\": 3600,\n      \"reqDebtorCPFCNPJ\": \"02598982000190\",\n      \"reqDebtorName\": \"João Silva\"\n    }\n  ]\n}\n\n ```\n\n**Resposta esperada:**\n\n``` json\n{\n  \"statusCode\": 201,\n  \"data\": {\n    \"resTxIdCob\": \"...\",\n    \"resPixCopyandPaste\": \"00020101021226860014br.gov.bcb.pix2567...\",\n    \"resStatus\": \"ATIVA\"\n  }\n}\n\n ```\n\n### 4\\. Enviar o Pix Copia e Cola para o cliente\n\nO campo `resPixCopyandPaste` contém uma string grande. Você pode:\n\n- mostrá-la como texto para o cliente copiar e colar no banco;\n    \n- transformá-la em imagem de QR Code na sua aplicação.\n    \n\n### 5\\. Confirmar o pagamento\n\nQuando o cliente pagar, você pode consultar da seguinte forma:\n\n1. **Consulta manual:** chame `GET /cob` com `forceUpdate=true` para confirmar o status.\n    \n\n---\n\n# Scopes OAuth2 (permissões de acesso)\n\nOs scopes definem o que cada token pode fazer. Quando você cadastra uma conta Pix (`POST /user/account`), deve informar quais scopes ela precisa.\n\n| Scope | Permissão | Para que serve |\n| --- | --- | --- |\n| `scCobWrite` | Escrita | Criar, revisar e cancelar cobranças imediatas (COB). |\n| `scCobRead` | Leitura | Consultar cobranças imediatas (COB). |\n| `scCobVWrite` | Escrita | Criar, revisar e cancelar cobranças com vencimento (COBV). |\n| `scCobVRead` | Leitura | Consultar cobranças com vencimento (COBV). |\n| `scPixWrite` | Escrita | Solicitar devoluções. |\n| `scPixRead` | Leitura | Consultar transações Pix. |\n| `scPayloadLocationWrite` | Escrita | Criar e gerenciar payload locations. |\n| `scPayloadLocationRead` | Leitura | Consultar payload locations. |\n\n> **Dica prática:** para a maioria dos casos, comece com `[\"scCobWrite\", \"scCobRead\", \"scPixWrite\", \"scPixRead\"]`. \n  \n\n---\n\n# PSPs Suportados\n\nCada banco/PSP exige credenciais e certificados diferentes. Consulte abaixo o que é necessário para cada um:\n\n| PSP | Código | Certificado | Credenciais necessárias |\n| --- | --- | --- | --- |\n| **BRADESCO** | 0 | PFX | ClientID, ClientSecret, SenhaPFX |\n| **ITAU** | 1 | KEY + CRT | ClientID, ClientSecret |\n| **BANCO_DO_BRASIL** | 2 | PFX ou KEY/CRT | ClientID, ClientSecret, DeveloperApplicationKey |\n| **SANTANDER** | 3 | PFX | ConsumerKey, ConsumerSecret |\n| **SHIPAY** | 4 | Nenhum | SecretKey, AccessKey |\n| **SICREDI** | 5 | KEY + CRT | ClientID, ClientSecret |\n| **SICOOB** | 6 | KEY + CRT | TokenSandbox |\n| **PAGSEGURO** | 7 | KEY + CRT | ClientID, ClientSecret |\n| **GERENCIANET** | 8 | PFX | ClientID, ClientSecret |\n| **PIXPDV** | 9 | Nenhum | CNPJ, Token, SecretKey |\n| **INTER** | 10 | KEY + CRT | ClientID, ClientSecret |\n| **AILOS** | 11 | KEY + CRT + Root | ClientID, ClientSecret, ArqCertificadoRoot |\n| **MATERA** | 12 | KEY + CRT | SecretKey, AccountID, MediatorFee |\n| **CIELO** | 13 | KEY + CRT | ClientID, ClientSecret |\n| **MERCADO_PAGO** | 14 | Nenhum | AccessToken |\n| **GATE2ALL** | 15 | Nenhum | AuthenticationApi, AuthenticationKey |\n| **BANRISUL** | 16 | PFX | ClientID, ClientSecret |\n| **C6BANK** | 17 | KEY + CRT | ClientID, ClientSecret |\n| **APPLESS** | 18 | Nenhum | SecretKeyHMAC |\n| **QQPAG** | 19 | Nenhum | ChavePIX, ClientID, ClientSecret |\n\n### O que cada sigla significa?\n\n- **PFX / P12:** arquivo único que contém certificado + chave privada.\n    \n- **KEY:** arquivo com a chave privada.\n    \n- **CRT:** arquivo com o certificado público.\n    \n- **Root:** certificado raiz da autoridade certificadora.\n    \n- **ClientID / ClientSecret:** identificador e senha da aplicação fornecidos pelo banco.\n    \n- **AccessToken / Token:** token de acesso direto fornecido por alguns PSPs.\n    \n\n---\n\n# Guia essencial de requisições e respostas\n\n### Formato dos dados\n\n- **Valores monetários:** sempre string com ponto decimal e duas casas.\n    \n    - ✅ Correto: `\"150.00\"`, `\"10.50\"`, `\"0.99\"`\n        \n    - ❌ Incorreto: `150.00` (número), `\"150,00\"` (vírgula)\n        \n- **Datas e horas:** padrão ISO 8601 com fuso horário.\n    \n    - Exemplo: `\"2026-06-26T17:00:29-03:00\"`\n        \n- **txid:** de 26 a 35 caracteres, letras e números apenas.\n    \n- **Booleanos:** `true` ou `false`, sem aspas.\n    \n\n### Estrutura padrão da resposta\n\nEm caso de erro:\n\n``` json\n{\n  \"statusCode\": 400,\n  \"error\": \"Bad Request\",\n  \"message\": [\"Campo reqOriginalValue é obrigatório\"]\n}\n\n ```\n\n### Paginação\n\nPara listas, envie:\n\n- `page`: número da página (começa em 1).\n    \n- `pageSize`: quantidade de itens por página.\n    \n\nA resposta trará:\n\n- `currentPage`: página atual.\n    \n- `totalPages`: total de páginas.\n    \n- `totalItens`: total de registros encontrados.\n    \n\n---\n\n# Situações e status mais importantes\n\n### `situation` — status interno da API Dados Jah\n\n| Valor | Significado |\n| --- | --- |\n| `Received` | A requisição foi recebida e está na fila. |\n| `InProcessing` | A API está conversando com o PSP. |\n| `Processed` | Tudo deu certo e a resposta foi processada. |\n| `Error` | Algo deu errado. Verifique o campo `message`. |\n\n### `resStatus` — status oficial da cobrança no Banco Central\n\n| Valor | Significado |\n| --- | --- |\n| `ATIVA` | Cobrança criada e aguardando pagamento. |\n| `CONCLUIDA` | Pagamento confirmado. |\n| `REMOVIDA_PELO_USUARIO_RECEBEDOR` | Você cancelou a cobrança. |\n| `REMOVIDA_PELO_PSP` | O banco cancelou a cobrança. |\n\n### `keyTypePIX` — tipos de chave Pix\n\n| Valor | Descrição |\n| --- | --- |\n| `NENHUMA` | Sem chave configurada. |\n| `EMAIL` | E-mail, ex: `usuario@email.com` |\n| `CPF` | CPF (somente números) |\n| `CNPJ` | CNPJ (somente números) |\n| `PHONE` | Celular com DDI/DDD, ex: `+5511999999999` |\n| `ALEATORIA` | Chave aleatória gerada pelo PSP |\n\n---\n\n# Troubleshooting: resolvendo problemas comuns\n\n### Erro 401 — Unauthorized\n\n**Causas mais comuns:**\n\n- Token não foi enviado no header `Authorization`.\n    \n- Token expirado.\n    \n- Token de sistema usado em rota de usuário, ou vice-versa.\n    \n\n**Como resolver:**\n\n1. Faça login novamente e copie o novo `accessToken`.\n    \n2. Verifique se o header está no formato correto: `Authorization: Bearer eyJhbG...`.\n    \n3. Confirma se está usando o token correto para a rota.\n    \n\n### Erro 400 — Bad Request\n\n**Causas mais comuns:**\n\n- Campo obrigatório faltando.\n    \n- Valor enviado como número em vez de string.\n    \n- CPF/CNPJ inválido.\n    \n- Data no formato errado.\n    \n\n**Como resolver:**\n\n1. Leia a mensagem de erro retornada no campo `message`.\n    \n2. Compare o seu payload com os exemplos desta documentação.\n    \n3. Valide CPF/CNPJ antes de enviar.\n    \n\n### Erro 403 — Forbidden\n\n**Causas mais comuns:**\n\n- O token não tem o scope necessário para a operação.\n    \n- A conta Pix usada não tem permissão para aquela ação.\n    \n\n**Como resolver:**\n\n1. Verifique os scopes cadastrados em `POST /user/account`.\n    \n2. Inclua todos os scopes necessários para o fluxo.\n    \n\n### Erro 409 — Conflict\n\n**Causas mais comuns:**\n\n- `txid` já foi usado em outra cobrança.\n    \n- Usuário ou e-mail já cadastrado.\n    \n\n**Como resolver:**\n\n1. Gere um novo `txid` único.\n    \n2. Para usuários, verifique se o e-mail/CPF já existe.\n    \n\n### Erro 422 — Unprocessable Entity\n\n**Causas mais comuns:**\n\n- O PSP rejeitou os dados.\n    \n- Certificado incorreto ou expirado.\n    \n- `clientId`/`clientSecret` inválidos.\n    \n\n**Como resolver:**\n\n1. Teste as credenciais diretamente no portal do desenvolvedor do PSP.\n    \n2. Verifique se o certificado ainda é válido.\n    \n3. Confirme se está usando o ambiente correto (homologação vs produção).\n    \n\n### Erro 500 — Internal Server Error\n\n**Causas mais comuns:**\n\n- Falha interna na API ou no PSP.\n    \n- Timeout na comunicação com o banco.\n    \n\n**Como resolver:**\n\n1. Aguarde alguns segundos e tente novamente.\n    \n2. Verifique o campo `situation`: se for `Error`, leia a mensagem detalhada.\n    \n3. Se persistir, entre em contato com o suporte.\n    \n\n---\n\n# Perguntas frequentes (FAQ)\n\n### ** Preciso integrar com cada banco separadamente?\n\n- Não. Você integra apenas com a API Dados Jah. Nós nos comunicamos com o banco/PSP escolhido.\n    \n\n### ** Posso usar a API sem certificado digital?\n\n- Depende do PSP. PSPs como Shipay, Mercado Pago, QQPag e PixPDV não exigem certificado. Outros, como Bradesco, exigem.\n    \n\n### ** Quanto tempo demora para uma cobrança ser processada?\n\n- Cobranças com um único item são processadas de forma síncrona e retornam o QR Code imediatamente. Lotes com vários itens são processados de forma assíncrona e retornam um `idBatch` para acompanhamento.\n    \n\n### ** O que acontece se o cliente não pagar?\n\n- A cobrança permanece com status `ATIVA` até o prazo de expiração. Após isso, o PSP pode removê-la automaticamente.\n    \n\n### ** Posso cancelar uma cobrança?\n\n- Sim, desde que ainda não tenha sido paga. Use os endpoints de cancelamento de COB ou COBV.\n    \n\n### ** Posso fazer devolução parcial?\n\n- Sim. Informe o valor exato que deseja devolver no campo correspondente.\n    \n\n### ** Posso usar a API em homologação para sempre?\n\n- Não. O ambiente de homologação é apenas para testes. Quando estiver pronto, migre para produção.\n    \n\n### ** Como sei se estou em homologação ou produção?\n\nNa API Dados Jah, o ambiente é definido pelo campo `tpAmb` de **cada conta bancária** cadastrada. Consulte o valor do `tpAmb` na resposta do `GET /user/account`:\n\n| tpAmb | Ambiente |\n| --- | --- |\n| `0` | Homologação (sandbox) |\n| `1` | Produção |\n| `2` | Pré-Produção |\n\n**Na prática:** se sua conta tem `tpAmb: 0`, você está em homologação (testes, sem dinheiro real). Se tem `tpAmb: 1`, está em produção (transações reais). As credenciais e certificados devem ser compatíveis com o ambiente da conta.\n\n### ** Onde encontro as credenciais do PSP?\n\n- No portal do desenvolvedor do banco escolhido. Cada banco tem o seu processo de cadastro e aprovação.\n    \n\n### ** Posso cadastrar várias contas bancárias para o mesmo usuário?\n\n- Sim. Use `POST /user/account` quantas vezes forem necessárias, desde que cada conta tenha uma chave Pix e credenciais válidas.\n    \n\n---\n\n# Dicas de segurança\n\n1. **Nunca compartilhe** `clientSecret`, tokens JWT ou certificados.\n    \n2. Armazene segredos em variáveis de ambiente, nunca no código-fonte.\n    \n3. Use sempre HTTPS em produção.\n    \n4. Renove certificados antes do vencimento.\n    \n5. Monitore logs e transações regularmente.\n    \n\n---\n\n# Suporte e ajuda\n\nSe ficou com dúvidas ou encontrou algum problema, nossa equipe está pronta para ajudar:\n\n- **E-mail:** cda@ctec.com.br\n    \n- **WhatsApp:** (33) 3271-9900\n    \n- **Site:** [https://dadosjah.com.br](https://dadosjah.com.br)","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"53424652","team":22446200,"collectionId":"dc4678c9-b2b9-4fc9-819b-fce4c9ad1557","publishedId":"2sBY4Jy3eP","public":true,"publicUrl":"https://documenter-api.postman.tech/view/53424652/2sBY4Jy3eP","privateUrl":"https://go.postman.co/documentation/53424652-dc4678c9-b2b9-4fc9-819b-fce4c9ad1557","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":"Api para cobranças de Pix."},{"name":"title","value":"Dados Jah - Pix"}],"appearance":{"default":"system_default","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.12.2","publishDate":"2026-07-24T19:07:35.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"Dados Jah - Pix","description":"Api para cobranças de Pix."},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/343137e4b6f25ef78466526139fe6253a9859c6384e3331c915a716dd189880f","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2sBY4Jy3eP"}