{
  "info": {
    "name": "API da WysePay",
    "description": "Cobranças Pix, links de pagamento, clientes, saldo e saques. Autentique com a sua chave de API no header `x-api-key` (ou `Authorization: Bearer`). Chaves `wyp_test_` usam o modo teste; chaves `wyp_`, dinheiro real.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.wysepay.com.br"
    },
    {
      "key": "apiKey",
      "value": "wyp_test_..."
    }
  ],
  "item": [
    {
      "name": "Gerar uma cobrança Pix",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "x-api-key",
            "value": "{{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/charges/pix",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "charges",
            "pix"
          ],
          "variable": []
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"amountCents\": 8990,\n  \"description\": \"Pedido #1042\",\n  \"customer\": {\n    \"name\": \"Ana Souza\",\n    \"email\": \"ana@exemplo.com.br\",\n    \"phone\": \"11912345678\",\n    \"documentType\": \"CPF\",\n    \"document\": \"12345678909\"\n  },\n  \"metadata\": {\n    \"orderId\": \"1042\"\n  }\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Cria a cobrança e devolve o código Pix (copia e cola e QR Code). O status começa em `WAITING_PAYMENT`; quando o cliente pagar, chega o webhook `transaction.paid`.\n\nPermissão da chave: `charges:write`."
      }
    },
    {
      "name": "Listar transações",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "x-api-key",
            "value": "{{apiKey}}"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/transactions",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "transactions"
          ],
          "variable": []
        },
        "description": "As cobranças da conta, da mais nova para a mais antiga, com filtros. Veja Paginação.\n\nPermissão da chave: `transactions:read`."
      }
    },
    {
      "name": "Consultar uma transação",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "x-api-key",
            "value": "{{apiKey}}"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/transactions/:id",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "transactions",
            ":id"
          ],
          "variable": [
            {
              "key": "id",
              "value": ""
            }
          ]
        },
        "description": "A situação atual da cobrança. Um Pix vencido sem pagamento aparece como `EXPIRED`.\n\nPermissão da chave: `transactions:read`."
      }
    },
    {
      "name": "Criar um link de pagamento",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "x-api-key",
            "value": "{{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/payment-links",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "payment-links"
          ],
          "variable": []
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"amountCents\": 8990,\n  \"description\": \"Pedido #1042\",\n  \"metadata\": {\n    \"orderId\": \"1042\"\n  },\n  \"returnUrl\": \"https://loja.com.br/obrigado?pedido=1042\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Cria um checkout com o valor e a descrição. Envie a `url` ao cliente: ele preenche os dados, paga com Pix e vê o comprovante.\n\nPermissão da chave: `payment_links:write`."
      }
    },
    {
      "name": "Listar links de pagamento",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "x-api-key",
            "value": "{{apiKey}}"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/payment-links",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "payment-links"
          ],
          "variable": []
        },
        "description": "Os links da conta, do mais novo para o mais antigo.\n\nPermissão da chave: `payment_links:read`."
      }
    },
    {
      "name": "Consultar um link",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "x-api-key",
            "value": "{{apiKey}}"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/payment-links/:id",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "payment-links",
            ":id"
          ],
          "variable": [
            {
              "key": "id",
              "value": ""
            }
          ]
        },
        "description": "Um link de pagamento e se ele ainda aceita pagamentos (`active`).\n\nPermissão da chave: `payment_links:read`."
      }
    },
    {
      "name": "Desativar um link",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "x-api-key",
            "value": "{{apiKey}}"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/payment-links/:id/deactivate",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "payment-links",
            ":id",
            "deactivate"
          ],
          "variable": [
            {
              "key": "id",
              "value": ""
            }
          ]
        },
        "description": "O link para de aceitar pagamentos e o checkout mostra que ele não está disponível. Cobranças já geradas continuam valendo.\n\nPermissão da chave: `payment_links:write`."
      }
    },
    {
      "name": "Cadastrar um cliente",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "x-api-key",
            "value": "{{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/customers",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "customers"
          ],
          "variable": []
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"Ana Souza\",\n  \"document\": \"12345678909\",\n  \"email\": \"ana@exemplo.com.br\",\n  \"phone\": \"11912345678\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Cadastra o cliente, ou atualiza o que já tem esse CPF ou CNPJ (há um cliente por documento). Campos não enviados ficam como estavam.\n\nPermissão da chave: `customers:write`."
      }
    },
    {
      "name": "Listar clientes",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "x-api-key",
            "value": "{{apiKey}}"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/customers",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "customers"
          ],
          "variable": []
        },
        "description": "Os clientes da conta, do mais novo para o mais antigo. Filtre por `document` para achar um CPF ou CNPJ.\n\nPermissão da chave: `customers:read`."
      }
    },
    {
      "name": "Consultar um cliente",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "x-api-key",
            "value": "{{apiKey}}"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/customers/:id",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "customers",
            ":id"
          ],
          "variable": [
            {
              "key": "id",
              "value": ""
            }
          ]
        },
        "description": "Os dados e o endereço de um cliente.\n\nPermissão da chave: `customers:read`."
      }
    },
    {
      "name": "Atualizar um cliente",
      "request": {
        "method": "PATCH",
        "header": [
          {
            "key": "x-api-key",
            "value": "{{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/customers/:id",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "customers",
            ":id"
          ],
          "variable": [
            {
              "key": "id",
              "value": ""
            }
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"name\": \"Ana Souza\",\n  \"email\": \"ana@exemplo.com.br\",\n  \"phone\": \"11912345678\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Muda os campos enviados. O CPF ou CNPJ não muda.\n\nPermissão da chave: `customers:write`."
      }
    },
    {
      "name": "Consultar o saldo",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "x-api-key",
            "value": "{{apiKey}}"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/balance",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "balance"
          ],
          "variable": []
        },
        "description": "Disponível, a liberar e bloqueado, e quanto dá para sacar agora.\n\nPermissão da chave: `balance:read`."
      }
    },
    {
      "name": "Sacar para uma chave Pix",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "x-api-key",
            "value": "{{apiKey}}"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/withdrawals",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "withdrawals"
          ],
          "variable": []
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"amountCents\": 50000,\n  \"pixKey\": \"12345678000190\",\n  \"pixKeyType\": \"CNPJ\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "description": "Tira o valor do saldo e envia para a chave Pix. Precisa da permissão `withdrawals:write`, que vem desligada, e respeita o limite diário e os IPs da chave. Com chave de teste, o saque é simulado e pago na hora.\n\nPermissão da chave: `withdrawals:write`."
      }
    },
    {
      "name": "Listar saques",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "x-api-key",
            "value": "{{apiKey}}"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/withdrawals",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "withdrawals"
          ],
          "variable": []
        },
        "description": "Os saques da conta (pelo painel e pela API), do mais novo para o mais antigo.\n\nPermissão da chave: `withdrawals:read`."
      }
    },
    {
      "name": "Consultar um saque",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "x-api-key",
            "value": "{{apiKey}}"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/withdrawals/:id",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "withdrawals",
            ":id"
          ],
          "variable": [
            {
              "key": "id",
              "value": ""
            }
          ]
        },
        "description": "A situação de um saque.\n\nPermissão da chave: `withdrawals:read`."
      }
    },
    {
      "name": "Simular o pagamento",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "x-api-key",
            "value": "{{apiKey}}"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/v1/sandbox/transactions/:id/pay",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "v1",
            "sandbox",
            "transactions",
            ":id",
            "pay"
          ],
          "variable": [
            {
              "key": "id",
              "value": ""
            }
          ]
        },
        "description": "Só com chave de teste: marca a cobrança de teste como paga e envia o webhook `transaction.paid`, como num pagamento real.\n\nPermissão da chave: `charges:write`."
      }
    }
  ]
}
