{
  "info": {
    "name": "API Transakto v1",
    "description": "Collection pronta da API pública de Transakto.\n\n**Como usar**\n\n1. Abra a aba Variables da collection e preencha `apiKey` com a chave gerada em Configurações, API, na dashboard.\n2. Confira `baseUrl` (já vem com a URL desta instalação).\n3. Rode \"Dados da conta\" para validar a chave.\n4. \"Criar cobrança\", \"Criar transferência\" e \"Criar endpoint\" gravam o id criado em `chargeId`, `payoutId` e `webhookId`, então as consultas seguintes já funcionam.\n\nValores em centavos inteiros. Criações exigem `Idempotency-Key` (a collection gera um `{{$guid}}` por envio).\n\nDocumentação completa: https://docs.transakto.io\nVersão em Markdown para IA: https://docs.transakto.io/ai.md",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "apikey",
    "apikey": [
      {
        "key": "key",
        "value": "x-api-key",
        "type": "string"
      },
      {
        "key": "value",
        "value": "{{apiKey}}",
        "type": "string"
      },
      {
        "key": "in",
        "value": "header",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.transakto.io",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "sk_live_...",
      "type": "string"
    },
    {
      "key": "chargeId",
      "value": "",
      "type": "string"
    },
    {
      "key": "payoutId",
      "value": "",
      "type": "string"
    },
    {
      "key": "webhookId",
      "value": "",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "Cobranças",
      "description": "Cobranças Pix criadas pela API.",
      "item": [
        {
          "name": "Criar cobrança",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (pm.response.code === 200 || pm.response.code === 201) {",
                  "  pm.collectionVariables.set('chargeId', pm.response.json().id)",
                  "}"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Obrigatório nas criações. O Postman gera um valor novo a cada envio; na sua integração use o id do pedido ou do lote, estável entre retries."
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/charges",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "charges"
              ]
            },
            "description": "Escopo `charge:write`. Gera uma cobrança Pix e devolve o copia e cola em `pix.br_code`. `amount` mínimo 100 (R$ 1,00). `expires_in` de 60 a 604800 segundos. `webhook_url` precisa ser http(s) pública.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 4990,\n  \"method\": \"pix\",\n  \"description\": \"Assinatura mensal\",\n  \"reference\": \"pedido-1042\",\n  \"expires_in\": 3600,\n  \"customer\": {\n    \"name\": \"Maria Souza\",\n    \"email\": \"maria@exemplo.com.br\",\n    \"document\": \"123.456.789-09\"\n  },\n  \"webhook_url\": \"https://meusistema.com.br/hooks/pagamentos\",\n  \"webhook_secret\": \"um-segredo-bem-longo\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "Criada",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "Obrigatório nas criações. O Postman gera um valor novo a cada envio; na sua integração use o id do pedido ou do lote, estável entre retries."
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/charges",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "charges"
                  ]
                },
                "description": "Escopo `charge:write`. Gera uma cobrança Pix e devolve o copia e cola em `pix.br_code`. `amount` mínimo 100 (R$ 1,00). `expires_in` de 60 a 604800 segundos. `webhook_url` precisa ser http(s) pública.",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"amount\": 4990,\n  \"method\": \"pix\",\n  \"description\": \"Assinatura mensal\",\n  \"reference\": \"pedido-1042\",\n  \"expires_in\": 3600,\n  \"customer\": {\n    \"name\": \"Maria Souza\",\n    \"email\": \"maria@exemplo.com.br\",\n    \"document\": \"123.456.789-09\"\n  },\n  \"webhook_url\": \"https://meusistema.com.br/hooks/pagamentos\",\n  \"webhook_secret\": \"um-segredo-bem-longo\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"8f1c2a90-1f4b-4f0e-9d33-5a2c1b7e9a10\",\n  \"object\": \"charge\",\n  \"status\": \"pending\",\n  \"amount\": 4990,\n  \"currency\": \"BRL\",\n  \"method\": \"pix\",\n  \"description\": \"Assinatura mensal\",\n  \"reference\": \"pedido-1042\",\n  \"customer\": {\n    \"name\": \"Maria Souza\",\n    \"email\": \"maria@exemplo.com.br\",\n    \"document\": \"12345678909\"\n  },\n  \"pix\": {\n    \"br_code\": \"00020126580014BR.GOV.BCB.PIX...\",\n    \"end_to_end_id\": null\n  },\n  \"receiver\": {\n    \"name\": \"Loja Exemplo LTDA\",\n    \"document\": \"12345678000199\",\n    \"pix_key\": \"financeiro@exemplo.com.br\",\n    \"pix_key_type\": \"EMAIL\",\n    \"institution_name\": \"Banco Exemplo\",\n    \"institution_ispb\": \"00000000\",\n    \"branch\": \"0001\",\n    \"account\": \"1234567\",\n    \"account_type\": \"CACC\"\n  },\n  \"webhook_url\": \"https://meusistema.com.br/hooks/pagamentos\",\n  \"expires_at\": \"2026-07-28T15:00:00.000Z\",\n  \"paid_at\": null,\n  \"created_at\": \"2026-07-28T14:00:00.000Z\"\n}"
            }
          ]
        },
        {
          "name": "Consultar cobrança",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/charges/{{chargeId}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "charges",
                "{{chargeId}}"
              ]
            },
            "description": "Escopo `charge:read`. Estados: pending, paid, expired, canceled, failed, refunded, charged_back, infraction."
          },
          "response": [
            {
              "name": "Encontrada",
              "originalRequest": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{baseUrl}}/v1/charges/{{chargeId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "charges",
                    "{{chargeId}}"
                  ]
                },
                "description": "Escopo `charge:read`. Estados: pending, paid, expired, canceled, failed, refunded, charged_back, infraction."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"8f1c2a90-1f4b-4f0e-9d33-5a2c1b7e9a10\",\n  \"object\": \"charge\",\n  \"status\": \"pending\",\n  \"amount\": 4990,\n  \"currency\": \"BRL\",\n  \"method\": \"pix\",\n  \"description\": \"Assinatura mensal\",\n  \"reference\": \"pedido-1042\",\n  \"customer\": {\n    \"name\": \"Maria Souza\",\n    \"email\": \"maria@exemplo.com.br\",\n    \"document\": \"12345678909\"\n  },\n  \"pix\": {\n    \"br_code\": \"00020126580014BR.GOV.BCB.PIX...\",\n    \"end_to_end_id\": null\n  },\n  \"receiver\": {\n    \"name\": \"Loja Exemplo LTDA\",\n    \"document\": \"12345678000199\",\n    \"pix_key\": \"financeiro@exemplo.com.br\",\n    \"pix_key_type\": \"EMAIL\",\n    \"institution_name\": \"Banco Exemplo\",\n    \"institution_ispb\": \"00000000\",\n    \"branch\": \"0001\",\n    \"account\": \"1234567\",\n    \"account_type\": \"CACC\"\n  },\n  \"webhook_url\": \"https://meusistema.com.br/hooks/pagamentos\",\n  \"expires_at\": \"2026-07-28T15:00:00.000Z\",\n  \"paid_at\": null,\n  \"created_at\": \"2026-07-28T14:00:00.000Z\"\n}"
            }
          ]
        },
        {
          "name": "Listar cobranças",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/charges?limit=20",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "charges"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "20",
                  "description": "Inteiro de 1 a 100. Padrão 20."
                },
                {
                  "key": "starting_after",
                  "value": "",
                  "description": "Id do último item da página anterior.",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "paid",
                  "description": "pending, paid, expired, canceled, failed, refunded, charged_back, infraction.",
                  "disabled": true
                },
                {
                  "key": "method",
                  "value": "pix",
                  "description": "Meio de pagamento.",
                  "disabled": true
                },
                {
                  "key": "created_after",
                  "value": "2026-01-01T00:00:00.000Z",
                  "description": "ISO 8601. Só itens criados depois deste instante.",
                  "disabled": true
                },
                {
                  "key": "created_before",
                  "value": "2026-12-31T23:59:59.000Z",
                  "description": "ISO 8601. Só itens criados antes deste instante.",
                  "disabled": true
                }
              ]
            },
            "description": "Escopo `charge:read`. Da mais recente para a mais antiga, paginação por cursor."
          },
          "response": [
            {
              "name": "Página",
              "originalRequest": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{baseUrl}}/v1/charges?limit=20",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "charges"
                  ],
                  "query": [
                    {
                      "key": "limit",
                      "value": "20",
                      "description": "Inteiro de 1 a 100. Padrão 20."
                    },
                    {
                      "key": "starting_after",
                      "value": "",
                      "description": "Id do último item da página anterior.",
                      "disabled": true
                    },
                    {
                      "key": "status",
                      "value": "paid",
                      "description": "pending, paid, expired, canceled, failed, refunded, charged_back, infraction.",
                      "disabled": true
                    },
                    {
                      "key": "method",
                      "value": "pix",
                      "description": "Meio de pagamento.",
                      "disabled": true
                    },
                    {
                      "key": "created_after",
                      "value": "2026-01-01T00:00:00.000Z",
                      "description": "ISO 8601. Só itens criados depois deste instante.",
                      "disabled": true
                    },
                    {
                      "key": "created_before",
                      "value": "2026-12-31T23:59:59.000Z",
                      "description": "ISO 8601. Só itens criados antes deste instante.",
                      "disabled": true
                    }
                  ]
                },
                "description": "Escopo `charge:read`. Da mais recente para a mais antiga, paginação por cursor."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"object\": \"list\",\n  \"data\": [\n    {\n      \"id\": \"8f1c2a90-1f4b-4f0e-9d33-5a2c1b7e9a10\",\n      \"object\": \"charge\",\n      \"status\": \"paid\",\n      \"amount\": 4990,\n      \"currency\": \"BRL\",\n      \"method\": \"pix\",\n      \"reference\": \"pedido-1042\",\n      \"paid_at\": \"2026-07-28T14:12:31.000Z\",\n      \"created_at\": \"2026-07-28T14:00:00.000Z\"\n    }\n  ],\n  \"has_more\": false\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Transferências",
      "description": "Transferências Pix a partir do saldo da conta.",
      "item": [
        {
          "name": "Criar transferência",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (pm.response.code === 200 || pm.response.code === 201) {",
                  "  pm.collectionVariables.set('payoutId', pm.response.json().id)",
                  "}"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{$guid}}",
                "description": "Obrigatório nas criações. O Postman gera um valor novo a cada envio; na sua integração use o id do pedido ou do lote, estável entre retries."
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/payouts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "payouts"
              ]
            },
            "description": "Escopo `payout:write`. ATENÇÃO: move dinheiro de verdade. `amount` mínimo 500 (R$ 5,00). `pix_key_type`: cpf, cnpj, email, phone ou random. O valor mais a tarifa saem do saldo disponível na criação.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 150000,\n  \"pix_key_type\": \"cnpj\",\n  \"pix_key\": \"12.345.678/0001-95\",\n  \"recipient_name\": \"Fornecedor LTDA\",\n  \"description\": \"Repasse semanal\",\n  \"reference\": \"lote-3\",\n  \"webhook_url\": \"https://meusistema.com.br/hooks/repasses\",\n  \"webhook_secret\": \"um-segredo-bem-longo\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "name": "Criada",
              "originalRequest": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}",
                    "description": "Obrigatório nas criações. O Postman gera um valor novo a cada envio; na sua integração use o id do pedido ou do lote, estável entre retries."
                  }
                ],
                "url": {
                  "raw": "{{baseUrl}}/v1/payouts",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "payouts"
                  ]
                },
                "description": "Escopo `payout:write`. ATENÇÃO: move dinheiro de verdade. `amount` mínimo 500 (R$ 5,00). `pix_key_type`: cpf, cnpj, email, phone ou random. O valor mais a tarifa saem do saldo disponível na criação.",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"amount\": 150000,\n  \"pix_key_type\": \"cnpj\",\n  \"pix_key\": \"12.345.678/0001-95\",\n  \"recipient_name\": \"Fornecedor LTDA\",\n  \"description\": \"Repasse semanal\",\n  \"reference\": \"lote-3\",\n  \"webhook_url\": \"https://meusistema.com.br/hooks/repasses\",\n  \"webhook_secret\": \"um-segredo-bem-longo\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"3b7a11d0-7e5c-4c6a-9d21-0e4f5a6b7c8d\",\n  \"object\": \"payout\",\n  \"status\": \"pending\",\n  \"method\": \"pix\",\n  \"amount\": 150000,\n  \"fee\": 0,\n  \"currency\": \"BRL\",\n  \"description\": \"Repasse semanal\",\n  \"reference\": \"lote-3\",\n  \"recipient\": {\n    \"name\": \"Fornecedor LTDA\",\n    \"document\": null,\n    \"pix_key_type\": \"cnpj\",\n    \"pix_key\": \"12.345.678/0001-95\"\n  },\n  \"end_to_end_id\": null,\n  \"failure_reason\": null,\n  \"webhook_url\": \"https://meusistema.com.br/hooks/repasses\",\n  \"processed_at\": null,\n  \"created_at\": \"2026-07-28T14:00:00.000Z\"\n}"
            }
          ]
        },
        {
          "name": "Consultar transferência",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/payouts/{{payoutId}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "payouts",
                "{{payoutId}}"
              ]
            },
            "description": "Escopo `payout:read`. Estados: pending, processing, completed, failed, canceled."
          },
          "response": [
            {
              "name": "Encontrada",
              "originalRequest": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{baseUrl}}/v1/payouts/{{payoutId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "payouts",
                    "{{payoutId}}"
                  ]
                },
                "description": "Escopo `payout:read`. Estados: pending, processing, completed, failed, canceled."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"3b7a11d0-7e5c-4c6a-9d21-0e4f5a6b7c8d\",\n  \"object\": \"payout\",\n  \"status\": \"pending\",\n  \"method\": \"pix\",\n  \"amount\": 150000,\n  \"fee\": 0,\n  \"currency\": \"BRL\",\n  \"description\": \"Repasse semanal\",\n  \"reference\": \"lote-3\",\n  \"recipient\": {\n    \"name\": \"Fornecedor LTDA\",\n    \"document\": null,\n    \"pix_key_type\": \"cnpj\",\n    \"pix_key\": \"12.345.678/0001-95\"\n  },\n  \"end_to_end_id\": null,\n  \"failure_reason\": null,\n  \"webhook_url\": \"https://meusistema.com.br/hooks/repasses\",\n  \"processed_at\": null,\n  \"created_at\": \"2026-07-28T14:00:00.000Z\"\n}"
            }
          ]
        },
        {
          "name": "Listar transferências",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/payouts?limit=20",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "payouts"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "20",
                  "description": "Inteiro de 1 a 100. Padrão 20."
                },
                {
                  "key": "starting_after",
                  "value": "",
                  "description": "Id do último item da página anterior.",
                  "disabled": true
                },
                {
                  "key": "status",
                  "value": "pending",
                  "description": "pending, processing, completed, failed ou canceled.",
                  "disabled": true
                },
                {
                  "key": "method",
                  "value": "pix",
                  "description": "pix ou ted.",
                  "disabled": true
                },
                {
                  "key": "created_after",
                  "value": "2026-01-01T00:00:00.000Z",
                  "description": "ISO 8601. Só itens criados depois deste instante.",
                  "disabled": true
                },
                {
                  "key": "created_before",
                  "value": "2026-12-31T23:59:59.000Z",
                  "description": "ISO 8601. Só itens criados antes deste instante.",
                  "disabled": true
                }
              ]
            },
            "description": "Escopo `payout:read`. Inclui as transferências solicitadas pela dashboard."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Conta",
      "item": [
        {
          "name": "Saldo",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/balance",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "balance"
              ]
            },
            "description": "Escopo `balance:read`. Compare transferências com `available`, não com `total`."
          },
          "response": [
            {
              "name": "Saldo",
              "originalRequest": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{baseUrl}}/v1/balance",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "balance"
                  ]
                },
                "description": "Escopo `balance:read`. Compare transferências com `available`, não com `total`."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"object\": \"balance\",\n  \"currency\": \"BRL\",\n  \"available\": 872300,\n  \"pending\": 145000,\n  \"total\": 1017300\n}"
            }
          ]
        },
        {
          "name": "Dados da conta",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/account",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "account"
              ]
            },
            "description": "Escopo `account:read`. Chamada barata para validar a chave. `auto_payout_enabled` diz se transferências seguem direto ou esperam aprovação manual."
          },
          "response": [
            {
              "name": "Conta",
              "originalRequest": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{baseUrl}}/v1/account",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "account"
                  ]
                },
                "description": "Escopo `account:read`. Chamada barata para validar a chave. `auto_payout_enabled` diz se transferências seguem direto ou esperam aprovação manual."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"1c9d4f22-7a3e-4b58-8f10-2d6b9c0e3a41\",\n  \"object\": \"account\",\n  \"name\": \"Loja Exemplo\",\n  \"legal_name\": \"Exemplo Comércio LTDA\",\n  \"document\": \"12345678000195\",\n  \"document_type\": \"CNPJ\",\n  \"phone\": \"+5511900000000\",\n  \"status\": \"active\",\n  \"onboarding_status\": \"COMPLETED\",\n  \"auto_payout_enabled\": false,\n  \"created_at\": \"2026-01-14T10:22:00.000Z\"\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Webhooks",
      "description": "Endpoints cadastrados da aplicação dona da chave. Para a maioria das integrações, `webhook_url` na criação da cobrança é mais simples.",
      "item": [
        {
          "name": "Catálogo de eventos",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/webhooks/events",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhooks",
                "events"
              ]
            },
            "description": "Não exige escopo. Todos os eventos `recurso.método.ação`, com `dispatched` falso para os que ainda não são emitidos."
          },
          "response": []
        },
        {
          "name": "Listar endpoints",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/webhooks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhooks"
              ]
            },
            "description": "Escopo `webhook:read`. O segredo nunca volta: `has_secret` só informa que existe."
          },
          "response": [
            {
              "name": "Lista",
              "originalRequest": {
                "method": "GET",
                "header": [],
                "url": {
                  "raw": "{{baseUrl}}/v1/webhooks",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "webhooks"
                  ]
                },
                "description": "Escopo `webhook:read`. O segredo nunca volta: `has_secret` só informa que existe."
              },
              "status": "OK",
              "code": 200,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"object\": \"list\",\n  \"data\": [\n    {\n      \"id\": \"5e2f...\",\n      \"object\": \"webhook\",\n      \"url\": \"https://meusistema.com.br/hooks/pagamentos\",\n      \"description\": \"Baixa de pedidos\",\n      \"events\": [\n        \"charge.pix.emitted\",\n        \"charge.pix.paid\"\n      ],\n      \"active\": true,\n      \"has_secret\": true,\n      \"created_at\": \"2026-07-28T14:00:00.000Z\"\n    }\n  ]\n}"
            }
          ]
        },
        {
          "name": "Criar endpoint",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "if (pm.response.code === 200 || pm.response.code === 201) {",
                  "  pm.collectionVariables.set('webhookId', pm.response.json().id)",
                  "}"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/webhooks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhooks"
              ]
            },
            "description": "Escopo `webhook:write`. `url` http(s) pública, `events` com ao menos um evento do catálogo, `secret` com mínimo de 8 caracteres.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://meusistema.com.br/hooks/pagamentos\",\n  \"events\": [\n    \"charge.pix.paid\",\n    \"charge.pix.refunded\"\n  ],\n  \"description\": \"Baixa de pedidos\",\n  \"secret\": \"um-segredo-bem-longo\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Atualizar endpoint",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/webhooks/{{webhookId}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhooks",
                "{{webhookId}}"
              ]
            },
            "description": "Escopo `webhook:write`. Aceita `url`, `events`, `description`, `secret` e `active`. `{ \"active\": false }` pausa as entregas sem apagar.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"active\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Remover endpoint",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/webhooks/{{webhookId}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "webhooks",
                "{{webhookId}}"
              ]
            },
            "description": "Escopo `webhook:write`. Responde 204 sem corpo."
          },
          "response": [
            {
              "name": "Removido",
              "originalRequest": {
                "method": "DELETE",
                "header": [],
                "url": {
                  "raw": "{{baseUrl}}/v1/webhooks/{{webhookId}}",
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "path": [
                    "v1",
                    "webhooks",
                    "{{webhookId}}"
                  ]
                },
                "description": "Escopo `webhook:write`. Responde 204 sem corpo."
              },
              "status": "No Content",
              "code": 204,
              "_postman_previewlanguage": "json",
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": ""
            }
          ]
        }
      ]
    }
  ]
}