{"openapi":"3.1.0","info":{"title":"Leigan Payments API","version":"1.0.0","description":"API pública da Leigan Payments para cobranças PIX, saldo, saques e eventos assinados."},"servers":[{"url":"https://api.leiganpayments.com/v1","description":"API de produção."}],"security":[{"BearerAuth":[]}],"paths":{"/transactions":{"post":{"summary":"Criar cobrança PIX","description":"Retorna 201 na primeira criação e 200 na repetição idempotente. Em caso de indisponibilidade, retorna 503 sem criar registro nem alterar o saldo.","operationId":"post_transactions","tags":["Cobranças"],"x-required-scopes":["transactions:write"],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"8 a 120 caracteres. Mesma rota, conta, chave e JSON devolvem a resposta original. Preserve conteúdo e ordem das propriedades do JSON nas repetições.","schema":{"type":"string","minLength":8,"maxLength":120}}],"responses":{"200":{"description":"Repetição idempotente: resposta original, sem nova movimentação.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Transaction"},"idempotent_replay":{"type":"boolean","description":"true quando é a resposta original de uma requisição já recebida."}},"required":["data","idempotent_replay"]},"example":{"data":{"id":"pix_exemplo_1043","amount":10000,"fee":900,"net":9100,"status":"pending","buyer_name":"Cliente Exemplo","buyer_email":"cliente@example.com","reference":"pedido-1043","created_at":"2026-10-18T12:00:00.000Z","paid_at":null,"origin":"api","buyer_document":"***4725","buyer_phone":"***9999","end_to_end_id":null,"nominal_id":"nom_exemplo","nominal_name":"Futuro Pagamentos LTDA","payment_method":"pix","pix":{"copy_paste":"CODIGO_PIX_RETORNADO_PELA_API","expires_at":"2026-10-18T13:00:00.000Z"}},"idempotent_replay":true}}}},"201":{"description":"Solicitação criada.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Transaction"},"idempotent_replay":{"type":"boolean","description":"true quando é a resposta original de uma requisição já recebida."}},"required":["data","idempotent_replay"]},"example":{"data":{"id":"pix_exemplo_1043","amount":10000,"fee":900,"net":9100,"status":"pending","buyer_name":"Cliente Exemplo","buyer_email":"cliente@example.com","reference":"pedido-1043","created_at":"2026-10-18T12:00:00.000Z","paid_at":null,"origin":"api","buyer_document":"***4725","buyer_phone":"***9999","end_to_end_id":null,"nominal_id":"nom_exemplo","nominal_name":"Futuro Pagamentos LTDA","payment_method":"pix","pix":{"copy_paste":"CODIGO_PIX_RETORNADO_PELA_API","expires_at":"2026-10-18T13:00:00.000Z"}},"idempotent_replay":false}}}},"400":{"description":"Requisição ou JSON inválido.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"invalid_request","message":"JSON inválido.","request_id":"req_exemplo"}}}}},"401":{"description":"Credencial ausente, inválida ou revogada.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"invalid_credentials","message":"Credencial inválida.","request_id":"req_exemplo"}}}}},"403":{"description":"Escopo, IP, acesso ou operação sem liberação.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"access_denied","message":"A credencial não possui este escopo.","request_id":"req_exemplo"}}}}},"409":{"description":"Conflito de idempotência ou saldo insuficiente.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"idempotency_conflict","message":"Esta chave já foi utilizada com outro conteúdo.","request_id":"req_exemplo"}}}}},"413":{"description":"Requisição acima de 4.500.000 bytes.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"payload_too_large","message":"Arquivo ou requisição muito grande.","request_id":"req_exemplo"}}}}},"415":{"description":"Tipo de conteúdo não aceito.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"unsupported_media_type","message":"Use Content-Type: application/json.","request_id":"req_exemplo"}}}}},"422":{"description":"Campo, filtro, limite ou chave de idempotência inválido.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"validation_error","message":"Envie Idempotency-Key com 8 a 120 caracteres.","request_id":"req_exemplo"}}}}},"429":{"description":"Limite de 120 requisições/minuto atingido.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos a aguardar antes de tentar novamente."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"rate_limited","message":"Limite de requisições atingido. Aguarde o período indicado.","request_id":"req_exemplo"}}}}},"500":{"description":"Falha interna. Consulte o recurso e repita POSTs com a mesma chave.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"internal_error","message":"Ocorreu uma falha interna. Tente novamente.","request_id":"req_exemplo"}}}}},"503":{"description":"Serviço de pagamentos temporariamente indisponível.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"payments_unavailable","message":"Serviço de pagamentos temporariamente indisponível. Tente novamente mais tarde.","request_id":"req_exemplo"}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTransaction"},"example":{"amount":10000,"payment_method":"pix","external_reference":"pedido-1043","buyer":{"name":"Cliente Exemplo","email":"cliente@example.com","document":"52998224725","phone":"11999999999"}}}}}},"get":{"summary":"Listar cobranças","description":"Consulta somente registros da operação à qual a credencial pertence. Ordenação: created_at decrescente, depois id decrescente. Os filtros são combinados. A paginação usa offset; novas inserções podem deslocar páginas durante a consulta.","operationId":"get_transactions","tags":["Cobranças"],"x-required-scopes":["transactions:read"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Itens por página.","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"offset","in":"query","required":false,"description":"Registros a pular. Próxima página: offset + limit.","schema":{"type":"integer","minimum":0,"default":0}},{"name":"status","in":"query","required":false,"description":"Estado público do recurso.","schema":{"type":"string","enum":["pending","paid","expired"]}},{"name":"search","in":"query","required":false,"description":"Busca parcial por ID, End-to-End ID, referência, nome ou e-mail do pagador.","schema":{"type":"string","maxLength":160}},{"name":"from","in":"query","required":false,"description":"Criação a partir deste instante (inclusivo). ISO 8601 com fuso, ou YYYY-MM-DD em UTC.","schema":{"type":"string","description":""}},{"name":"to","in":"query","required":false,"description":"Criação anterior a este instante (exclusivo). Deve ser posterior a from.","schema":{"type":"string","description":""}},{"name":"origin","in":"query","required":false,"description":"Origem da cobrança.","schema":{"type":"string","enum":["api","panel"]}}],"responses":{"200":{"description":"Consulta realizada.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Transaction"}},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["data","pagination"]},"example":{"data":[{"id":"pix_exemplo_1043","amount":10000,"fee":900,"net":9100,"status":"pending","buyer_name":"Cliente Exemplo","buyer_email":"cliente@example.com","reference":"pedido-1043","created_at":"2026-10-18T12:00:00.000Z","paid_at":null,"origin":"api","buyer_document":"***4725","buyer_phone":"***9999","end_to_end_id":null,"nominal_id":"nom_exemplo","nominal_name":"Futuro Pagamentos LTDA","payment_method":"pix","pix":{"copy_paste":"CODIGO_PIX_RETORNADO_PELA_API","expires_at":"2026-10-18T13:00:00.000Z"}}],"pagination":{"limit":100,"offset":0,"total":1,"has_more":false}}}}},"401":{"description":"Credencial ausente, inválida ou revogada.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"invalid_credentials","message":"Credencial inválida.","request_id":"req_exemplo"}}}}},"403":{"description":"Escopo, IP, acesso ou operação sem liberação.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"access_denied","message":"A credencial não possui este escopo.","request_id":"req_exemplo"}}}}},"422":{"description":"Campo, filtro, limite ou chave de idempotência inválido.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"validation_error","message":"Use limit de 1 a 100 e offset inteiro a partir de zero.","request_id":"req_exemplo"}}}}},"429":{"description":"Limite de 120 requisições/minuto atingido.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos a aguardar antes de tentar novamente."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"rate_limited","message":"Limite de requisições atingido. Aguarde o período indicado.","request_id":"req_exemplo"}}}}},"500":{"description":"Falha interna. Consulte o recurso e repita POSTs com a mesma chave.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"internal_error","message":"Ocorreu uma falha interna. Tente novamente.","request_id":"req_exemplo"}}}}}}}},"/transactions/{id}":{"get":{"summary":"Consultar cobrança","description":"Consulta somente registros da operação à qual a credencial pertence.","operationId":"get_transactions_id","tags":["Cobranças"],"x-required-scopes":["transactions:read"],"parameters":[{"name":"id","in":"path","required":true,"description":"Identificador público retornado pela API.","schema":{"type":"string","description":""}}],"responses":{"200":{"description":"Consulta realizada.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Transaction"}},"required":["data"]},"example":{"data":{"id":"pix_exemplo_1043","amount":10000,"fee":900,"net":9100,"status":"pending","buyer_name":"Cliente Exemplo","buyer_email":"cliente@example.com","reference":"pedido-1043","created_at":"2026-10-18T12:00:00.000Z","paid_at":null,"origin":"api","buyer_document":"***4725","buyer_phone":"***9999","end_to_end_id":null,"nominal_id":"nom_exemplo","nominal_name":"Futuro Pagamentos LTDA","payment_method":"pix","pix":{"copy_paste":"CODIGO_PIX_RETORNADO_PELA_API","expires_at":"2026-10-18T13:00:00.000Z"}}}}}},"401":{"description":"Credencial ausente, inválida ou revogada.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"invalid_credentials","message":"Credencial inválida.","request_id":"req_exemplo"}}}}},"403":{"description":"Escopo, IP, acesso ou operação sem liberação.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"access_denied","message":"A credencial não possui este escopo.","request_id":"req_exemplo"}}}}},"404":{"description":"Recurso inexistente ou pertencente a outra operação.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"not_found","message":"Transação não encontrada.","request_id":"req_exemplo"}}}}},"429":{"description":"Limite de 120 requisições/minuto atingido.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos a aguardar antes de tentar novamente."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"rate_limited","message":"Limite de requisições atingido. Aguarde o período indicado.","request_id":"req_exemplo"}}}}},"500":{"description":"Falha interna. Consulte o recurso e repita POSTs com a mesma chave.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"internal_error","message":"Ocorreu uma falha interna. Tente novamente.","request_id":"req_exemplo"}}}}}}}},"/withdrawals":{"post":{"summary":"Solicitar saque PIX","description":"Retorna 201 na primeira criação e 200 na repetição idempotente. Em caso de indisponibilidade, retorna 503 sem criar registro nem alterar o saldo.","operationId":"post_withdrawals","tags":["Saques"],"x-required-scopes":["withdrawals:write"],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"8 a 120 caracteres. Mesma rota, conta, chave e JSON devolvem a resposta original. Preserve conteúdo e ordem das propriedades do JSON nas repetições.","schema":{"type":"string","minLength":8,"maxLength":120}}],"responses":{"200":{"description":"Repetição idempotente: resposta original, sem nova movimentação.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Withdrawal"},"idempotent_replay":{"type":"boolean","description":"true quando é a resposta original de uma requisição já recebida."}},"required":["data","idempotent_replay"]},"example":{"data":{"id":"wdr_exemplo_1044","amount":10000,"fee":500,"status":"processing","pix_key":"destino@example.com","pix_key_type":"email","created_at":"2026-10-18T12:10:00.000Z"},"idempotent_replay":true}}}},"201":{"description":"Solicitação criada.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Withdrawal"},"idempotent_replay":{"type":"boolean","description":"true quando é a resposta original de uma requisição já recebida."}},"required":["data","idempotent_replay"]},"example":{"data":{"id":"wdr_exemplo_1044","amount":10000,"fee":500,"status":"processing","pix_key":"destino@example.com","pix_key_type":"email","created_at":"2026-10-18T12:10:00.000Z"},"idempotent_replay":false}}}},"400":{"description":"Requisição ou JSON inválido.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"invalid_request","message":"JSON inválido.","request_id":"req_exemplo"}}}}},"401":{"description":"Credencial ausente, inválida ou revogada.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"invalid_credentials","message":"Credencial inválida.","request_id":"req_exemplo"}}}}},"403":{"description":"Escopo, IP, acesso ou operação sem liberação.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"access_denied","message":"A credencial não possui este escopo.","request_id":"req_exemplo"}}}}},"409":{"description":"Conflito de idempotência ou saldo insuficiente.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"idempotency_conflict","message":"Esta chave já foi utilizada com outro conteúdo.","request_id":"req_exemplo"}}}}},"413":{"description":"Requisição acima de 4.500.000 bytes.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"payload_too_large","message":"Arquivo ou requisição muito grande.","request_id":"req_exemplo"}}}}},"415":{"description":"Tipo de conteúdo não aceito.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"unsupported_media_type","message":"Use Content-Type: application/json.","request_id":"req_exemplo"}}}}},"422":{"description":"Campo, filtro, limite ou chave de idempotência inválido.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"validation_error","message":"Envie Idempotency-Key com 8 a 120 caracteres.","request_id":"req_exemplo"}}}}},"429":{"description":"Limite de 120 requisições/minuto atingido.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos a aguardar antes de tentar novamente."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"rate_limited","message":"Limite de requisições atingido. Aguarde o período indicado.","request_id":"req_exemplo"}}}}},"500":{"description":"Falha interna. Consulte o recurso e repita POSTs com a mesma chave.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"internal_error","message":"Ocorreu uma falha interna. Tente novamente.","request_id":"req_exemplo"}}}}},"503":{"description":"Serviço de pagamentos temporariamente indisponível.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"payments_unavailable","message":"Serviço de pagamentos temporariamente indisponível. Tente novamente mais tarde.","request_id":"req_exemplo"}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWithdrawal"},"example":{"amount":10000,"pix_key":"destino@example.com","pix_key_type":"email"}}}}},"get":{"summary":"Listar saques","description":"Consulta somente registros da operação à qual a credencial pertence. Ordenação: created_at decrescente, depois id decrescente. Os filtros são combinados. A paginação usa offset; novas inserções podem deslocar páginas durante a consulta.","operationId":"get_withdrawals","tags":["Saques"],"x-required-scopes":["withdrawals:read"],"parameters":[{"name":"limit","in":"query","required":false,"description":"Itens por página.","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"offset","in":"query","required":false,"description":"Registros a pular. Próxima página: offset + limit.","schema":{"type":"integer","minimum":0,"default":0}},{"name":"status","in":"query","required":false,"description":"Estado público do recurso.","schema":{"type":"string","enum":["processing","completed","cancelled"]}},{"name":"search","in":"query","required":false,"description":"Busca parcial por ID ou chave PIX.","schema":{"type":"string","maxLength":160}},{"name":"from","in":"query","required":false,"description":"Criação a partir deste instante (inclusivo). ISO 8601 com fuso, ou YYYY-MM-DD em UTC.","schema":{"type":"string","description":""}},{"name":"to","in":"query","required":false,"description":"Criação anterior a este instante (exclusivo). Deve ser posterior a from.","schema":{"type":"string","description":""}}],"responses":{"200":{"description":"Consulta realizada.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Withdrawal"}},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["data","pagination"]},"example":{"data":[{"id":"wdr_exemplo_1044","amount":10000,"fee":500,"status":"processing","pix_key":"destino@example.com","pix_key_type":"email","created_at":"2026-10-18T12:10:00.000Z"}],"pagination":{"limit":100,"offset":0,"total":1,"has_more":false}}}}},"401":{"description":"Credencial ausente, inválida ou revogada.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"invalid_credentials","message":"Credencial inválida.","request_id":"req_exemplo"}}}}},"403":{"description":"Escopo, IP, acesso ou operação sem liberação.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"access_denied","message":"A credencial não possui este escopo.","request_id":"req_exemplo"}}}}},"422":{"description":"Campo, filtro, limite ou chave de idempotência inválido.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"validation_error","message":"Use limit de 1 a 100 e offset inteiro a partir de zero.","request_id":"req_exemplo"}}}}},"429":{"description":"Limite de 120 requisições/minuto atingido.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos a aguardar antes de tentar novamente."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"rate_limited","message":"Limite de requisições atingido. Aguarde o período indicado.","request_id":"req_exemplo"}}}}},"500":{"description":"Falha interna. Consulte o recurso e repita POSTs com a mesma chave.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"internal_error","message":"Ocorreu uma falha interna. Tente novamente.","request_id":"req_exemplo"}}}}}}}},"/withdrawals/{id}":{"get":{"summary":"Consultar saque","description":"Consulta somente registros da operação à qual a credencial pertence.","operationId":"get_withdrawals_id","tags":["Saques"],"x-required-scopes":["withdrawals:read"],"parameters":[{"name":"id","in":"path","required":true,"description":"Identificador público retornado pela API.","schema":{"type":"string","description":""}}],"responses":{"200":{"description":"Consulta realizada.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Withdrawal"}},"required":["data"]},"example":{"data":{"id":"wdr_exemplo_1044","amount":10000,"fee":500,"status":"processing","pix_key":"destino@example.com","pix_key_type":"email","created_at":"2026-10-18T12:10:00.000Z"}}}}},"401":{"description":"Credencial ausente, inválida ou revogada.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"invalid_credentials","message":"Credencial inválida.","request_id":"req_exemplo"}}}}},"403":{"description":"Escopo, IP, acesso ou operação sem liberação.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"access_denied","message":"A credencial não possui este escopo.","request_id":"req_exemplo"}}}}},"404":{"description":"Recurso inexistente ou pertencente a outra operação.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"not_found","message":"Saque não encontrado.","request_id":"req_exemplo"}}}}},"429":{"description":"Limite de 120 requisições/minuto atingido.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos a aguardar antes de tentar novamente."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"rate_limited","message":"Limite de requisições atingido. Aguarde o período indicado.","request_id":"req_exemplo"}}}}},"500":{"description":"Falha interna. Consulte o recurso e repita POSTs com a mesma chave.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"internal_error","message":"Ocorreu uma falha interna. Tente novamente.","request_id":"req_exemplo"}}}}}}}},"/balance":{"get":{"summary":"Consultar saldo","description":"Consulta somente registros da operação à qual a credencial pertence.","operationId":"get_balance","tags":["Saldo"],"x-required-scopes":["balance:read"],"parameters":[],"responses":{"200":{"description":"Consulta realizada.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Balance"}},"required":["data"]},"example":{"data":{"available":910000,"currency":"BRL"}}}}},"401":{"description":"Credencial ausente, inválida ou revogada.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"invalid_credentials","message":"Credencial inválida.","request_id":"req_exemplo"}}}}},"403":{"description":"Escopo, IP, acesso ou operação sem liberação.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"access_denied","message":"A credencial não possui este escopo.","request_id":"req_exemplo"}}}}},"429":{"description":"Limite de 120 requisições/minuto atingido.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."},"Retry-After":{"schema":{"type":"integer"},"description":"Segundos a aguardar antes de tentar novamente."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"rate_limited","message":"Limite de requisições atingido. Aguarde o período indicado.","request_id":"req_exemplo"}}}}},"500":{"description":"Falha interna. Consulte o recurso e repita POSTs com a mesma chave.","headers":{"X-Request-ID":{"schema":{"type":"string","description":""},"description":"Identificador único da requisição."},"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Limite da janela aplicada. Enviado após a avaliação de limite."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Requisições restantes na janela aplicada."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Fim da janela em Unix timestamp, segundos."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"internal_error","message":"Ocorreu uma falha interna. Tente novamente.","request_id":"req_exemplo"}}}}}}}}},"webhooks":{"transaction.created":{"post":{"summary":"transaction.created","description":"Cobrança criada; não confirma pagamento.","security":[],"parameters":[{"name":"X-leigan-Event-Id","in":"header","required":true,"description":"Mesmo valor de id no JSON.","schema":{"type":"string","description":""}},{"name":"X-leigan-Signature","in":"header","required":true,"description":"t=timestamp,v1=hmac_sha256_hex. Verifique o corpo bruto e janela de 300 segundos.","schema":{"type":"string","description":""}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventTransactionCreated"},"example":{"id":"evt_exemplo_transaction_created","type":"transaction.created","created_at":"2026-10-18T12:05:00.000Z","data":{"id":"pix_exemplo_1043","amount":10000,"fee":900,"net":9100,"status":"pending","buyer_name":"Cliente Exemplo","buyer_email":"cliente@example.com","reference":"pedido-1043","created_at":"2026-10-18T12:00:00.000Z","paid_at":null,"origin":"api","buyer_document":"***4725","buyer_phone":"***9999","end_to_end_id":null,"nominal_id":"nom_exemplo","nominal_name":"Futuro Pagamentos LTDA","payment_method":"pix","pix":{"copy_paste":"CODIGO_PIX_RETORNADO_PELA_API","expires_at":"2026-10-18T13:00:00.000Z"}}}}}},"responses":{"204":{"description":"Evento recebido e persistido pelo seu endpoint. Qualquer resposta 2xx confirma a entrega."}}}},"transaction.status_changed":{"post":{"summary":"transaction.status_changed","description":"Estado da cobrança atualizado. Consulte status para identificar pagamento ou expiração.","security":[],"parameters":[{"name":"X-leigan-Event-Id","in":"header","required":true,"description":"Mesmo valor de id no JSON.","schema":{"type":"string","description":""}},{"name":"X-leigan-Signature","in":"header","required":true,"description":"t=timestamp,v1=hmac_sha256_hex. Verifique o corpo bruto e janela de 300 segundos.","schema":{"type":"string","description":""}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventTransactionStatusChanged"},"example":{"id":"evt_exemplo_transaction_status_changed","type":"transaction.status_changed","created_at":"2026-10-18T12:05:00.000Z","data":{"id":"pix_exemplo_1043","amount":10000,"fee":900,"net":9100,"status":"paid","buyer_name":"Cliente Exemplo","buyer_email":"cliente@example.com","reference":"pedido-1043","created_at":"2026-10-18T12:00:00.000Z","paid_at":"2026-10-18T12:05:00.000Z","origin":"api","buyer_document":"***4725","buyer_phone":"***9999","end_to_end_id":null,"nominal_id":"nom_exemplo","nominal_name":"Futuro Pagamentos LTDA","payment_method":"pix","pix":null}}}}},"responses":{"204":{"description":"Evento recebido e persistido pelo seu endpoint. Qualquer resposta 2xx confirma a entrega."}}}},"withdrawal.created":{"post":{"summary":"withdrawal.created","description":"Solicitação de saque recebida; ainda não concluída.","security":[],"parameters":[{"name":"X-leigan-Event-Id","in":"header","required":true,"description":"Mesmo valor de id no JSON.","schema":{"type":"string","description":""}},{"name":"X-leigan-Signature","in":"header","required":true,"description":"t=timestamp,v1=hmac_sha256_hex. Verifique o corpo bruto e janela de 300 segundos.","schema":{"type":"string","description":""}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventWithdrawalCreated"},"example":{"id":"evt_exemplo_withdrawal_created","type":"withdrawal.created","created_at":"2026-10-18T12:05:00.000Z","data":{"id":"wdr_exemplo_1044","amount":10000,"fee":500,"status":"processing","pix_key":"destino@example.com","pix_key_type":"email","created_at":"2026-10-18T12:10:00.000Z"}}}}},"responses":{"204":{"description":"Evento recebido e persistido pelo seu endpoint. Qualquer resposta 2xx confirma a entrega."}}}},"withdrawal.status_changed":{"post":{"summary":"withdrawal.status_changed","description":"Estado público do saque atualizado.","security":[],"parameters":[{"name":"X-leigan-Event-Id","in":"header","required":true,"description":"Mesmo valor de id no JSON.","schema":{"type":"string","description":""}},{"name":"X-leigan-Signature","in":"header","required":true,"description":"t=timestamp,v1=hmac_sha256_hex. Verifique o corpo bruto e janela de 300 segundos.","schema":{"type":"string","description":""}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventWithdrawalStatusChanged"},"example":{"id":"evt_exemplo_withdrawal_status_changed","type":"withdrawal.status_changed","created_at":"2026-10-18T12:05:00.000Z","data":{"id":"wdr_exemplo_1044","amount":10000,"fee":500,"status":"completed","pix_key":"destino@example.com","pix_key_type":"email","created_at":"2026-10-18T12:10:00.000Z"}}}}},"responses":{"204":{"description":"Evento recebido e persistido pelo seu endpoint. Qualquer resposta 2xx confirma a entrega."}}}},"endpoint.test":{"post":{"summary":"endpoint.test","description":"Teste solicitado no painel.","security":[],"parameters":[{"name":"X-leigan-Event-Id","in":"header","required":true,"description":"Mesmo valor de id no JSON.","schema":{"type":"string","description":""}},{"name":"X-leigan-Signature","in":"header","required":true,"description":"t=timestamp,v1=hmac_sha256_hex. Verifique o corpo bruto e janela de 300 segundos.","schema":{"type":"string","description":""}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventEndpointTest"},"example":{"id":"evt_exemplo_endpoint_test","type":"endpoint.test","created_at":"2026-10-18T12:05:00.000Z","data":{"message":"Verificação de conexão."}}}}},"responses":{"204":{"description":"Evento recebido e persistido pelo seu endpoint. Qualquer resposta 2xx confirma a entrega."}}}}},"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Chave da operação criada no painel, exibida uma vez. O prefixo das credenciais é lg_live_."}},"schemas":{"Buyer":{"type":"object","properties":{"name":{"type":"string","description":"Nome completo do pagador.","minLength":1,"maxLength":120},"email":{"type":"string","description":"E-mail do pagador.","format":"email"},"document":{"type":"string","description":"CPF com 11 dígitos ou CNPJ com 14, sem pontuação.","pattern":"^(\\d{11}|\\d{14})$"},"phone":{"type":"string","description":"DDD e telefone; aceita código do país e + opcional.","pattern":"^\\+?\\d{10,15}$"}},"required":["name","email","document","phone"]},"CreateTransaction":{"type":"object","properties":{"amount":{"type":"integer","format":"int64","description":"Valor bruto em centavos de BRL. Respeita os limites vigentes da conta e da nominal.","minimum":1000},"payment_method":{"type":"string","description":"Método disponível. Quando omitido, assume pix.","const":"pix","default":"pix"},"external_reference":{"type":"string","description":"Referência do seu sistema, retornada em data.reference. Não substitui a chave de idempotência.","maxLength":100,"default":""},"buyer":{"$ref":"#/components/schemas/Buyer"}},"required":["amount","buyer"]},"CreateWithdrawal":{"type":"object","properties":{"amount":{"type":"integer","format":"int64","description":"Principal do saque em centavos. O saldo deve cobrir amount + fee. Respeita os limites da operação.","minimum":1000},"pix_key":{"type":"string","description":"Chave de destino, no formato correspondente a pix_key_type.","minLength":1,"maxLength":140},"pix_key_type":{"type":"string","description":"cpf_cnpj: 11/14 dígitos; email: e-mail; phone: + e país com 10 a 15 dígitos; random: UUID.","enum":["cpf_cnpj","email","phone","random"]}},"required":["amount","pix_key","pix_key_type"]},"Transaction":{"type":"object","properties":{"id":{"type":"string","description":"Identificador opaco da cobrança."},"amount":{"type":"integer","format":"int64","description":"Valor bruto."},"fee":{"type":"integer","format":"int64","description":"Tarifa total da cobrança: arredondamento do percentual + parcela fixa."},"net":{"type":"integer","format":"int64","description":"Valor líquido: amount − fee. Creditado somente após paid."},"status":{"type":"string","description":"pending: aguardando; paid: confirmado; expired: expirado.","enum":["pending","paid","expired"]},"buyer_name":{"type":"string","description":"Nome do pagador."},"buyer_email":{"type":"string","description":"E-mail do pagador."},"buyer_document":{"type":"string","description":"Documento mascarado; não contém o CPF/CNPJ completo."},"buyer_phone":{"type":"string","description":"Telefone mascarado."},"reference":{"type":"string","description":"external_reference enviado na criação; vazio quando omitido."},"origin":{"type":"string","description":"Definida pelo servidor. A lista inclui cobranças da API e do painel.","enum":["api","panel"]},"nominal_id":{"type":["string","null"],"description":"Nominal registrada no momento da criação."},"nominal_name":{"type":["string","null"],"description":"Nome comercial da nominal no momento da criação."},"end_to_end_id":{"type":["string","null"],"description":"Identificador E2E do PIX, quando disponível. Pode ser null antes da confirmação."},"created_at":{"type":"string","format":"date-time","description":"Instante de criação em UTC."},"paid_at":{"type":["string","null"],"format":"date-time","description":"Confirmação em UTC; null enquanto não paga."},"payment_method":{"type":"string","description":"Método da cobrança.","const":"pix"},"pix":{"type":["object","null"],"properties":{"copy_paste":{"type":"string","description":"Conteúdo PIX. Apresente o valor retornado pela API ao pagador."},"expires_at":{"type":"string","format":"date-time","description":"Validade informada pela cobrança."}},"required":["copy_paste","expires_at"],"description":"Disponível enquanto pending; null após pagamento ou expiração."}},"required":["id","amount","fee","net","status","buyer_name","buyer_email","buyer_document","buyer_phone","reference","origin","nominal_id","nominal_name","end_to_end_id","created_at","paid_at","payment_method","pix"]},"Withdrawal":{"type":"object","properties":{"id":{"type":"string","description":"Identificador opaco da solicitação."},"amount":{"type":"integer","format":"int64","description":"Principal solicitado."},"fee":{"type":"integer","format":"int64","description":"Tarifa debitada junto ao principal."},"pix_key":{"type":"string","description":"Chave PIX de destino."},"pix_key_type":{"type":"string","description":"Tipo da chave.","enum":["cpf_cnpj","email","phone","random"]},"status":{"type":"string","description":"processing: em andamento; completed: concluído; cancelled: cancelado com liberação do saldo.","enum":["processing","completed","cancelled"]},"created_at":{"type":"string","format":"date-time","description":"Instante da solicitação em UTC."}},"required":["id","amount","fee","pix_key","pix_key_type","status","created_at"]},"Balance":{"type":"object","properties":{"available":{"type":"integer","format":"int64","description":"Saldo líquido disponível da operação, já descontadas solicitações de saque e suas tarifas."},"currency":{"type":"string","description":"Moeda dos valores.","const":"BRL"}},"required":["available","currency"]},"Pagination":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Tamanho solicitado da página."},"offset":{"type":"integer","minimum":0,"description":"Quantidade de registros pulados."},"total":{"type":"integer","minimum":0,"description":"Total com os mesmos filtros."},"has_more":{"type":"boolean","description":"Há outra página após esta."}},"required":["limit","offset","total","has_more"]},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Código estável para tratar a falha."},"message":{"type":"string","description":"Explicação para esta requisição. Não dependa do texto para decisões automáticas."},"request_id":{"type":"string","description":"Mesmo identificador do header X-Request-ID. Informe-o ao suporte."}},"required":["code","message","request_id"]}},"required":["error"]},"EventTransactionCreated":{"type":"object","properties":{"id":{"type":"string","description":"ID único do evento. Use para eliminar entregas duplicadas."},"type":{"type":"string","description":"Tipo de evento.","const":"transaction.created"},"created_at":{"type":"string","format":"date-time","description":"Instante de criação do evento, preservado nas retentativas."},"data":{"$ref":"#/components/schemas/Transaction"}},"required":["id","type","created_at","data"]},"EventTransactionStatusChanged":{"type":"object","properties":{"id":{"type":"string","description":"ID único do evento. Use para eliminar entregas duplicadas."},"type":{"type":"string","description":"Tipo de evento.","const":"transaction.status_changed"},"created_at":{"type":"string","format":"date-time","description":"Instante de criação do evento, preservado nas retentativas."},"data":{"$ref":"#/components/schemas/Transaction"}},"required":["id","type","created_at","data"]},"EventWithdrawalCreated":{"type":"object","properties":{"id":{"type":"string","description":"ID único do evento. Use para eliminar entregas duplicadas."},"type":{"type":"string","description":"Tipo de evento.","const":"withdrawal.created"},"created_at":{"type":"string","format":"date-time","description":"Instante de criação do evento, preservado nas retentativas."},"data":{"$ref":"#/components/schemas/Withdrawal"}},"required":["id","type","created_at","data"]},"EventWithdrawalStatusChanged":{"type":"object","properties":{"id":{"type":"string","description":"ID único do evento. Use para eliminar entregas duplicadas."},"type":{"type":"string","description":"Tipo de evento.","const":"withdrawal.status_changed"},"created_at":{"type":"string","format":"date-time","description":"Instante de criação do evento, preservado nas retentativas."},"data":{"$ref":"#/components/schemas/Withdrawal"}},"required":["id","type","created_at","data"]},"EventEndpointTest":{"type":"object","properties":{"id":{"type":"string","description":"ID único do evento. Use para eliminar entregas duplicadas."},"type":{"type":"string","description":"Tipo de evento.","const":"endpoint.test"},"created_at":{"type":"string","format":"date-time","description":"Instante de criação do evento, preservado nas retentativas."},"data":{"type":"object","properties":{"message":{"type":"string","description":"Mensagem do teste."}},"required":["message"]}},"required":["id","type","created_at","data"]}}}}