{
  "info": {
    "name": "BluntPay API v1",
    "description": "Collection oficial da API pública BluntPay: Pix (cash-in e cash-out), Cripto (depósitos, saques em usdtbsc/trx/btc/ltc/usdterc20 e estimativa), boletos, saldo e MED.\n\nValor mínimo por operação: R$ 5,00.\n\nVariáveis:\n- base_url: https://api.bluntpay.com.br/v1\n- api_key: sua chave bp_<prefixo>_<segredo> (guarde como variável de ambiente, nunca no código)\n- charge_idempotency_key: OBRIGATÓRIA, chave única por intenção de cobrança\n- payout_idempotency_key: opcional, chave única por intenção de saque\n\nIdempotency-Key é OBRIGATÓRIA em POST /charges (ausente devolve 400 idempotency_key_required) e opcional nos demais POSTs. NOVA intenção = nova chave; retentativa da MESMA intenção = a mesma chave. external_id é opcional em cobranças e obrigatório em saques.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "base_url",
      "value": "https://api.bluntpay.com.br/v1",
      "type": "string"
    },
    {
      "key": "api_key",
      "value": "bp_a1b2c3d4_troque_pela_sua_chave",
      "type": "string"
    },
    {
      "key": "charge_idempotency_key",
      "value": "charge-pedido-1092",
      "type": "string"
    },
    {
      "key": "payout_idempotency_key",
      "value": "saque-847293",
      "type": "string"
    },
    {
      "key": "crypto_payout_idempotency_key",
      "value": "saque_cripto_847293"
    },
    {
      "key": "crypto_quote_currency",
      "value": "trx",
      "type": "string"
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{api_key}}",
        "type": "string"
      }
    ]
  },
  "item": [
    {
      "name": "Saldo",
      "item": [
        {
          "name": "GET /balance",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/balance",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "balance"
              ]
            },
            "description": "Escopo: balance:read. Retorna available_balance, pending_balance, blocked_balance, total_balance e currency."
          }
        }
      ]
    },
    {
      "name": "Cash-in (Pix)",
      "item": [
        {
          "name": "POST /charges",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{charge_idempotency_key}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 150.00,\n  \"description\": \"Pedido #1092\",\n  \"external_id\": \"pedido_1092\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/charges",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "charges"
              ]
            },
            "description": "Escopo: charges:write. Corpo mínimo: {\"amount\": 100.00}. O header Idempotency-Key é OBRIGATÓRIO ({{charge_idempotency_key}}; ausente devolve 400 idempotency_key_required): se usado, NOVA intenção de pagamento = nova chave e retentativa da MESMA intenção = a mesma chave. Mínimo R$ 5,00. external_id é opcional e deduplica reenvios: mesmo external_id com mesmo amount devolve a cobrança existente (200); com amount diferente devolve 409 EXTERNAL_ID_CONFLICT. postback_url é opcional e não faz parte do quickstart: se utilizada, a URL precisa estar previamente cadastrada e ativa nos endpoints de webhook da conta, senão a API devolve 400 postback_url_not_registered. Execute este POST uma única vez por intenção de pagamento e acompanhe o status por GET."
          }
        },
        {
          "name": "GET /charges (cursor)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/charges?limit=50",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "charges"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "50",
                  "description": "1 a 200, padrão 50"
                },
                {
                  "key": "starting_after",
                  "value": "",
                  "disabled": true,
                  "description": "next_starting_after da página anterior"
                }
              ]
            },
            "description": "Escopo: charges:read. Resposta: data, has_more, next_starting_after."
          }
        },
        {
          "name": "GET /charges/{id}",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/charges/chg_3f9a1c0b8e7d4a2b9c1d0e5f6a7b8c9d",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "charges",
                "chg_3f9a1c0b8e7d4a2b9c1d0e5f6a7b8c9d"
              ]
            },
            "description": "Aceita chg_..., o txid do adquirente ou ext:<external_id>. O webhook charge.paid e o caminho principal de confirmacao em tempo real; este GET e o fallback/reconciliacao e faz sync-on-read: se a cobranca ainda estiver pending e nao expirada, a BluntPay consulta a situacao autoritativa antes de responder. Nunca marque pago localmente; polling moderado com backoff."
          }
        }
      ]
    },
    {
      "name": "Cash-out (Pix)",
      "item": [
        {
          "name": "POST /payouts",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{payout_idempotency_key}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 50.00,\n  \"pix_key\": \"financeiro@empresa.com\",\n  \"pix_key_type\": \"email\",\n  \"recipient_name\": \"Empresa LTDA\",\n  \"external_id\": \"saque_847293\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/payouts",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "payouts"
              ]
            },
            "description": "Escopo: payouts:write. external_id é OBRIGATÓRIO e imutável (ex.: saque_847293): gere e persista um por intenção. O header Idempotency-Key é OPCIONAL ({{payout_idempotency_key}}). Mínimo R$ 5,00. amount é líquido; gross_amount (amount + fee) é debitado do saldo. Mesmo external_id com dados iguais devolve o mesmo saque em qualquer status, inclusive failed/reversed; divergentes devolvem 409 EXTERNAL_ID_CONFLICT. Uma nova tentativa operacional após failed/reversed exige nova intenção com NOVO external_id. Em ambiguous_payout_status, NÃO repita este POST: consulte GET /payouts/ext:<external_id>. Saldo insuficiente devolve 402 com code insufficient_balance_for_fees (não o genérico INSUFFICIENT_BALANCE) e details.max_withdrawable, o maior amount líquido possível com o saldo atual."
          }
        },
        {
          "name": "GET /payouts (cursor)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/payouts?limit=50",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "payouts"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "50",
                  "description": "1 a 200, padrão 50"
                },
                {
                  "key": "starting_after",
                  "value": "",
                  "disabled": true
                }
              ]
            }
          }
        },
        {
          "name": "GET /payouts/{id}",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/payouts/pyt_9c1d0e5f6a7b8c9d3f9a1c0b8e7d4a2b",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "payouts",
                "pyt_9c1d0e5f6a7b8c9d3f9a1c0b8e7d4a2b"
              ]
            },
            "description": "Escopo: payouts:read. Aceita pyt_..., o uuid interno ou ext:<external_id> (ex.: {{base_url}}/payouts/ext:saque_847293). Use esta consulta antes de qualquer nova tentativa quando o POST devolver ambiguous_payout_status. A confirmacao em tempo real vem pelo webhook de saque; este GET e o fallback/reconciliacao e faz sync-on-read: em processing a BluntPay consulta a situacao autoritativa antes de responder e so aplica status terminal confirmado. Retry da MESMA intencao de saque reutiliza exatamente o MESMO external_id - gerar um novo cria uma nova intencao e pode causar saque duplicado."
          }
        }
      ]
    },
    {
      "name": "Cripto (moedas e cotacao)",
      "item": [
        {
          "name": "GET /crypto/currencies",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/crypto/currencies?flow=withdrawal",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "crypto",
                "currencies"
              ],
              "query": [
                {
                  "key": "flow",
                  "value": "withdrawal",
                  "description": "Opcional: deposit ou withdrawal."
                }
              ]
            },
            "description": "Escopo: charges:read OU payouts:read. Descoberta oficial das moedas/redes suportadas nos fluxos cripto da BluntPay. Resposta: { object: \"list\", data: [ { code, symbol, name, network, network_name, can_deposit, can_withdraw, requires_memo } ] }. Use code em pay_currency (deposito) e currency (saque); network e o slug estavel da rede. Consulte este endpoint em vez de chumbar codigos na integracao."
          },
          "response": []
        },
        {
          "name": "POST /crypto/quotes (saque)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"from\": \"usdt\",\n  \"to\": \"{{crypto_quote_currency}}\",\n  \"amount\": 100,\n  \"network\": \"tron\",\n  \"operation\": \"withdrawal\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/crypto/quotes",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "crypto",
                "quotes"
              ]
            },
            "description": "Escopos: withdrawal exige payouts:read; deposit exige charges:read; conversion (USD/USDT -> BRL) aceita charges:read OU payouts:read. Cotacao INFORMATIVA antes do saque. from e sempre usdt (moeda do saldo) e amount esta em USDT. Resposta: { object: \"crypto_quote\", quote_id, operation, from, to, network, amount, estimated_amount, rate, minimum, minimum_currency, price_locked: false, expires_at, created_at }. Nao trava preco (price_locked sempre false), nao reserva saldo e o quote_id NAO e aceito por nenhum outro endpoint. Nunca assuma paridade 1:1. Erros: 422 unsupported_currency / unsupported_network / unsupported_route / invalid_amount / below_minimum; 503 quote_unavailable (transitorio: repita com backoff curto, nunca trate como saldo insuficiente)."
          },
          "response": []
        },
        {
          "name": "POST /crypto/quotes (deposito)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"from\": \"usd\",\n  \"to\": \"usdttrc20\",\n  \"amount\": 50,\n  \"network\": \"tron\",\n  \"operation\": \"deposit\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/crypto/quotes",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "crypto",
                "quotes"
              ]
            },
            "description": "Escopo: charges:read. Cotacao INFORMATIVA antes do deposito: from e sempre usd (moeda de precificacao) e estimated_amount e a quantidade aproximada de cripto que o pagador enviaria. O valor real a pagar e sempre o pay_amount devolvido em POST /crypto/charges. Cotacao expira em 60s (expires_at) e nao garante preco."
          },
          "response": []
        },
        {
          "name": "POST /crypto/quotes (conversion BRL)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"operation\": \"conversion\",\n  \"from\": \"usdt\",\n  \"to\": \"brl\",\n  \"amount\": 50\n}"
            },
            "url": {
              "raw": "{{base_url}}/crypto/quotes",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "crypto",
                "quotes"
              ]
            },
            "description": "Escopo: charges:read OU payouts:read. Cotacao INFORMATIVA de USD/USDT -> BRL. Rotas validas: from usd ou usdt, to brl, amount > 0. Resposta: { object: \"crypto_quote\", quote_id, operation: \"conversion\", from, to, amount, estimated_amount, rate, network: null, minimum: null, price_locked: false, expires_at, created_at }. Serve APENAS para a plataforma converter o saldo interno do jogador no proprio sistema: a BluntPay liquida cash-in cripto em USD/USDT, entao nunca trate received_amount diretamente como BRL. Nao trava preco, nao reserva saldo e nao cria recurso. Rota invalida: 422 unsupported_route. Fonte indisponivel: 503 quote_unavailable (transitorio)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Cash-out (Cripto)",
      "item": [
        {
          "name": "GET /crypto/payouts/minimum",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/crypto/payouts/minimum",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "crypto",
                "payouts",
                "minimum"
              ]
            },
            "description": "Escopo: payouts:read. Devolve o minimo efetivo atual de saque em cripto: { currency, network, min_amount, updated_at }. Consulta ao vivo, sem cache. Consulte antes do POST /crypto/payouts; o POST revalida o minimo novamente. Se o minimo nao puder ser determinado no momento, a resposta e 503 minimum_unavailable."
          }
        },
        {
          "name": "GET /crypto/payouts/estimate",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/crypto/payouts/estimate?amount=100&currency=usdtbsc",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "crypto",
                "payouts",
                "estimate"
              ],
              "query": [
                {
                  "key": "amount",
                  "value": "100"
                },
                {
                  "key": "currency",
                  "value": "usdtbsc"
                }
              ]
            },
            "description": "Escopo: payouts:read. Simula o saque antes de criar, com a mesma matematica do POST: amount (principal em USDT), fee (comercial cobrado por fora), conversion_fee (subset de fee), total_debit, send_amount na moeda escolhida, network_fee_estimated (estimativa conservadora paga pelo destinatario, fora de fee) e receive_estimated. Nao cria saque nem reserva saldo."
          }
        },
        {
          "name": "POST /crypto/payouts",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{crypto_payout_idempotency_key}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 100,\n  \"currency\": \"usdtbsc\",\n  \"address\": \"0x55d398326f99059fF775485246999027B3197955\",\n  \"external_id\": \"saque_cripto_847293\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/crypto/payouts",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "crypto",
                "payouts"
              ]
            },
            "description": "Escopo: payouts:write. Moedas aceitas: trx (TRX - Tron), usdtbsc (USDT - BNB Chain BEP20), btc (Bitcoin), ltc (Litecoin) e usdterc20 (USDT - Ethereum ERC20); outras moedas, inclusive usdttrc20, devolvem 422 unsupported_currency. O endereco deve ser valido na rede da moeda escolhida - endereco de outra rede devolve 422 invalid_address sem debito. O saldo permanece em USDT e o amount inteiro e convertido para a moeda escolhida; a taxa de conversao de 1% (conversion_fee) e cobrada por fora e ja esta inclusa em fee. A taxa de rede fica fora de fee e e descontada do valor recebido. Idempotencia OBRIGATORIA: external_id no corpo OU header Idempotency-Key — mesmo identificador com payload diferente devolve 409 idempotency_conflict. amount e o principal solicitado em USDT (a taxa de rede fica fora de fee e e descontada do valor entregue on-chain, entao o recebido pode ser menor que amount) (minimo efetivo dinamico = max(20 USDT comercial, minimo tecnico dinamico real da rede)); taxas aplicaveis a conta, quando houver, sao debitadas adicionalmente do saldo (gross_amount = amount + fee). Saques criados pela API sao automaticos quando a conta esta habilitada para cash-out cripto via API e a operacao esta dentro das regras/limites da conta, sujeitos a saldo, minimo, validacoes, idempotencia e disponibilidade da rede. Configure 20 USDT como minimo no seu sistema; o minimo efetivo pode ser maior se a rede exigir mais naquele momento."
          }
        },
        {
          "name": "GET /crypto/payouts",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/crypto/payouts?limit=50",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "crypto",
                "payouts"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "50"
                }
              ]
            },
            "description": "Escopo: payouts:read. Lista os saques em cripto da conta autenticada. Use polling aqui para conciliar: completed e terminal e traz o tx_hash. Tambem existem os webhooks crypto.payout.processing/completed/failed."
          }
        }
      ]
    },
    {
      "name": "Cash-in (Cripto)",
      "item": [
        {
          "name": "POST /crypto/charges",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "player-deposit-1"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 100,\n  \"pay_currency\": \"usdttrc20\",\n  \"external_id\": \"player-deposit-1\",\n  \"customer_id\": \"player-9182\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/crypto/charges",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "crypto",
                "charges"
              ]
            },
            "description": "Escopo: charges:write. amount em USD. Minimo comercial definido por moeda/rede (USDT: 20; demais moedas: 15) e, por cima dele, o minimo tecnico dinamico da rede - vale o maior dos dois. pay_currency: usdttrc20, usdtbsc, btc, eth, ltc, sol, usdc, trx, xrp, doge, bnbbsc, ton, ada, bch ou dai. Idempotencia OBRIGATORIA: external_id no corpo OU header Idempotency-Key (payload diferente no mesmo id devolve 409). customer_id identifica o jogador NO SEU sistema. A resposta traz pay_address, pay_amount, network e expires_at. Liquidacao sempre no saldo USDT. Em falha transitoria a resposta pode ser HTTP 202 com status processing: o deposito ja existe e o endereco esta sendo provisionado/recuperado. Repita a MESMA Idempotency-Key/external_id com o mesmo corpo ate receber waiting - trocar o identificador e a unica forma de gerar deposito duplicado. Um external_id vale para um unico deposito, mesmo depois de expirado."
          }
        },
        {
          "name": "GET /crypto/charges",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/crypto/charges?limit=50",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "crypto",
                "charges"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "50"
                },
                {
                  "key": "external_id",
                  "value": "player-deposit-1",
                  "disabled": true
                },
                {
                  "key": "customer_id",
                  "value": "player-9182",
                  "disabled": true
                }
              ]
            },
            "description": "Escopo: charges:read. Lista os depositos em cripto da conta autenticada. Filtre por external_id ou customer_id para conciliar o jogador."
          }
        },
        {
          "name": "GET /crypto/charges/{id}",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/crypto/charges/ext:player-deposit-1",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "crypto",
                "charges",
                "ext:player-deposit-1"
              ]
            },
            "description": "Escopo: charges:read. Aceita ccr_... ou ext:<external_id>. Nenhum lojista le deposito de outro. Os webhooks crypto.charge.* sao o caminho principal; este GET e o fallback/reconciliacao e faz sync-on-read em waiting e confirming. paid = recebimento confirmado; a diferenca entre esperado e recebido fica nos campos de valor: pay_amount (esperado na moeda on-chain), paid_amount (realmente recebido on-chain na pay_currency, para auditoria blockchain; nao e USD/USDT), received_amount (valor liquidado em USD/USDT - use ESTE para creditar o cliente/jogador), credited_amount (liquido que entrou no seu saldo USDT apos taxas; nao use para saldo do cliente final) e amount_status (underpaid | exact | overpaid). Nunca assuma pagamento por leitura propria de saldo/endereco on-chain."
          }
        }
      ]
    },
    {
      "name": "MED (infrações Pix)",
      "item": [
        {
          "name": "GET /med",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/med?limit=20&status=open",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "med"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "20",
                  "description": "1 a 100, padrão 20"
                },
                {
                  "key": "status",
                  "value": "open"
                }
              ]
            }
          }
        },
        {
          "name": "GET /med/{id}",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/med/inf_5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "med",
                "inf_5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c"
              ]
            }
          }
        },
        {
          "name": "POST /med/{id} (defesa)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"defense_text\": \"Pedido entregue e assinado pelo titular.\",\n  \"defense_evidence_url\": \"https://seu-site.com/comprovantes/9921.pdf\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/med/inf_5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "med",
                "inf_5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c"
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Transações",
      "item": [
        {
          "name": "GET /transactions",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/transactions?limit=50",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "transactions"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "50"
                },
                {
                  "key": "starting_after",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "type",
                  "value": "all",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "completed",
                  "disabled": true
                },
                {
                  "key": "origin",
                  "value": "api",
                  "disabled": true
                },
                {
                  "key": "created_from",
                  "value": "2026-01-01T00:00:00Z",
                  "disabled": true
                },
                {
                  "key": "created_to",
                  "value": "2026-01-31T23:59:59Z",
                  "disabled": true
                }
              ]
            },
            "description": "Escopo: transactions:read, ou charges:read + payouts:read para compatibilidade."
          }
        }
      ]
    },
    {
      "name": "Reservado (retorna 501)",
      "item": [
        {
          "name": "POST /boletos",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{charge_idempotency_key}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 150.00,\n  \"due_date\": \"2026-03-01\",\n  \"payer_name\": \"João Silva\",\n  \"payer_document\": \"12345678900\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/boletos",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "boletos"
              ]
            },
            "description": "Hoje responde 501 FEATURE_NOT_AVAILABLE."
          }
        },
        {
          "name": "GET /boletos",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/boletos",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "boletos"
              ]
            }
          }
        },
        {
          "name": "GET /boletos/{id}",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/boletos/bol_exemplo",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "boletos",
                "bol_exemplo"
              ]
            }
          }
        },
        {
          "name": "POST /card/charges",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{charge_idempotency_key}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 150.00,\n  \"card_token\": \"tok_exemplo\",\n  \"installments\": 1\n}"
            },
            "url": {
              "raw": "{{base_url}}/card/charges",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "card",
                "charges"
              ]
            }
          }
        },
        {
          "name": "GET /card/charges",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/card/charges",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "card",
                "charges"
              ]
            }
          }
        },
        {
          "name": "GET /card/charges/{id}",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/card/charges/crd_exemplo",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "card",
                "charges",
                "crd_exemplo"
              ]
            }
          }
        }
      ]
    }
  ]
}

