Os valores aqui são inteiros em centavos: R$ 100,00 se envia como 10000. Decimais são
recusados com 422, e o porquê está em Valores em centavos.
Envie Idempotency-Key nesta chamada e você pode repetir com tranquilidade depois de um erro de
rede: a mesma chave devolve o recurso que já existe, em vez de criar um segundo.
Veja Idempotência.
items é obrigatório. Mande pelo menos um item, e a soma de quantity * amount de todos eles
precisa bater exatamente com o amount da cobrança — senão a chamada volta 422items_do_not_match_amount. Vendendo uma coisa só, mande um item único com o valor cheio.
A resposta traz pix.qr_code, o payload copia-e-cola. A imagem do QR não é devolvida: você a
gera localmente a partir do payload. Ver Checkout PIX de ponta a ponta.
Chave secreta do vendedor, criada no painel em Desenvolvedores.
O valor em claro existe uma única vez, na criação. Guardamos só o
hash SHA-256 - nem o suporte consegue recuperá-lo, o que é o ponto:
um dump do nosso banco não permite cobrar em nome de ninguém.
A chave vai no servidor. Colocá-la no navegador do comprador a
entrega a qualquer pessoa que abra a página.
O preço do que você está vendendo, em centavos inteiros.
R$ 100,00 = 10000. Um decimal aqui é recusado com 422.
No cartão PARCELADO, o amount que volta na resposta é MAIOR
que este: o juro é cobrado do comprador e soma ao total. Você
manda o preço do produto; nós calculamos o que ele paga. Ver
amount no objeto Charge.
A soma de quantity × amount de todos os itens deve bater
exatamente com o amount da cobrança.
No PIX é obrigatório. Os itens são a única descrição do que
está sendo vendido que chega ao arranjo de pagamento, e é o que o
comprador lê no aplicativo do banco ao confirmar - uma cobrança
que não diz o que cobra chega à tela dele como um valor sem
causa.
No cartão, mande items OU description. Aquela tela não
existe ali, e montar um array cuja soma tem de fechar para vender
uma coisa só é trabalho sem função: description: "Plano mensal"
basta, e nós derivamos o item. Quem vende um carrinho continua
mandando os itens.
Sua referência (número do pedido, id interno). Volta na consulta
e nos webhooks, e serve de filtro em GET /v1/charges - é o que
permite casar a cobrança com o seu pedido sem guardar o nosso
id.
Até 20 pares de chave/valor seus, devolvidos na consulta e
nos webhooks. É o reference para quem precisa de mais de um
rótulo - com uma diferença: reference filtra a listagem,
metadata não.
Os valores devem ser strings. Um número aqui é recusado com
422: {"total": 10.10} voltaria como 10.1, e a formatação
do seu dado é sua. Envie {"total": "10.10"}.
Validade do QR, em segundos. O piso de 60s evita uma cobrança
que expira antes de o comprador abrir o aplicativo do banco.
Omitindo o campo, a cobrança vale 24 horas.
Numa integração servidor-a-servidor quem abre a conexão conosco
é o seu servidor. Sem este campo é o endereço dele que
guardamos, e o "Local" da venda no painel apontaria para o seu
datacenter em toda cobrança. Mande o IP de quem está comprando
e o dado passa a valer numa contestação.
Fica fora de customer porque é da tentativa, não do cadastro:
muda a cada compra da mesma pessoa.
Omitido, é pix - e continua sendo, para sempre. Toda
integração que existe hoje manda o corpo sem este campo, e
torná-lo obrigatório as quebraria todas por uma adição nossa.
Com credit_card, o objeto card passa a ser obrigatório e
expires_in passa a ser recusado: cartão não expira.
Com boleto, o objeto boleto é opcional - a plataforma já tem
prazo e instruções padrão. Boleto só está disponível para lojas
em conta de split na Pagar.me; fora desse arranjo a resposta é
422 com boleto_not_available.
Opcional quando payment_method é boleto, e recusado nos
demais - mandá-lo num PIX devolve 422, pela mesma razão do
card: aceitar e ignorar faria você acreditar que emitiu um
boleto.
Obrigatório quando payment_method é credit_card, e
recusado nos demais. Mandá-lo num PIX devolve 422: aceitar
e ignorar faria você ver a cobrança nascer e acreditar que
cobrou no cartão.
A autenticação do portador é opcional nesta API, e o padrão é
não autenticar. Você não precisa deste campo para cobrar no
cartão.
Mande required quando quiser autenticar: a cobrança passa a
exigir card.three_ds, e você roda o desafio no navegador antes
de cobrar - ver POST /v1/three_ds_tokens. É o caminho de quem
quer a transferência de responsabilidade: sem autenticação,
uma contestação por "não fui eu" sai do seu saldo; com ela,
responde o banco emissor.
automatic (o padrão) e off fazem a mesma coisa hoje: não
autenticam. off existe para quem já o escreveu no código um dia
e não deve ver a cobrança quebrar por uma simplificação nossa.
O interruptor de 3DS da sua conta, no painel, não vale aqui -
ele governa os checkouts hospedados por nós, onde somos nós que
montamos a tela e podemos pedir o desafio ao comprador. Nesta API
quem monta a tela é você, e exigir um identificador que só o
navegador produz devolveria um 422 impossível de resolver a
quem cobra de um servidor.
Guarda o cartão no cofre se, e somente se, a venda for
aprovada, e a próxima cobrança usa card.id. Recusada, nada
é guardado: uma referência de autorização negada é uma
referência que a própria Pagar.me pode não honrar depois.
O pm_ não volta nesta resposta - ele nasce depois dela.
Busque-o em GET /v1/cards?customer_document=….
Recusado junto com card.id: aquele cartão já está
guardado, e aceitar-e-ignorar ensinaria errado.
Guardar credencial de pagamento sem o comprador ter pedido é
problema regulatório antes de ser problema de produto. O
consentimento é seu para colher.
Declare aqui quando esta cobrança é parte de uma assinatura.
Só no cartão; num PIX é recusado com 422. E installments
passa a aceitar apenas 1: a bandeira não parcela uma
cobrança recorrente - quem quer dividir uma assinatura cobra
mais vezes, não uma vez em doze.
Omitir o campo numa cobrança de série não dá erro nenhum, e é
justamente o problema: a Pagar.me aceita o pedido, e a falta vira
multa de bandeira semanas depois. Mastercard, Visa e Elo exigem a
declaração.
Declarar recorrência **não** devolve o liability shift. Ela é
conformidade de bandeira - evita multa, não evita contestação. A
proteção continua vindo da autenticação do portador, e por isso o
caminho seguro é **autenticar a primeira cobrança** (com o
comprador na tela, sem cartão guardado) e deixar as seguintes
correrem declaradas.
Numa loja que exige 3DS, uma cobrança com card.id e
recurrencepassa em vez de levar 403 one_click_requires_three_ds - e corre sem transferência de
responsabilidade. É uma escolha sua.
O identificador do evento de identificação do aparelho - é o
deviceEventId que o createToken() da Pagar.me devolve ao
seu JavaScript.
Opcional sempre. Bloqueador de anúncio corta a identificação
com frequência, e recusar a venda porque o enriquecimento de
risco não carregou troca uma fraude possível por uma perda
certa.
Maximum string length: 255
Response
Cobrança criada e aguardando pagamento.
Uma cobrança, como a API a devolve. Todo campo desta lista está
sempre presente - os anuláveis vêm com null, nunca ausentes.
Marcar como opcional o que nunca falta obrigaria você a testar a
existência de uma chave que sempre existe.
Nos webhooks há uma exceção documentada: veja ChargeMinimal.
Situação da cobrança. Só os estados de trânsito - pending,
processing e in_analysis - ainda mudam sozinhos; os demais são
terminais, exceto os que ainda admitem estorno.
processing e in_analysis são do cartão: a autorização é
decidida na mesma requisição, mas pode parar na análise de fraude
antes de virar paid ou failed. No PIX a cobrança vai direto de
pending para o desfecho.
partially_refunded é estado próprio, e não um refunded com
asterisco: tratar uma venda devolvida pela metade como estornada
faria seu relatório descontar o valor inteiro.
chargedback é definitivo: o dinheiro voltou pelo caminho da
bandeira, e nem cancelamento nem estorno são mais possíveis.
O meio pelo qual esta cobrança foi criada. Omitir o campo na
criação continua significando pix - é o que toda integração
que existe hoje espera, e mudar isso as quebraria todas de uma
vez.
Cuidado com a assimetria, porque ela é a pegadinha desta API: no
POST você manda o PREÇO DO PRODUTO, e aqui volta o TOTAL. No
Pix e no cartão à vista os dois são iguais; no cartão parcelado
este é maior, porque inclui o juro que o comprador pagou.
O preço do produto, de volta, é amount - interest.
Não é amount - platform_fee. Essa conta dá um número maior,
e a diferença é o JURO do parcelamento: ele está dentro do
amount porque o comprador o pagou, mas não é receita de
ninguém aqui - atravessa até o arranjo de pagamento.
A identidade que fecha, e que o banco confere em toda cobrança:
Presente em toda cobrança, inclusive nas de cartão - onde os
três campos vêm null. Um objeto sempre presente evita o
if (charge.pix) antes de cada leitura.
Presente em toda cobrança, inclusive nas de PIX - onde os campos
vêm null. Mesma regra do pix acima, e pelo mesmo motivo.
O que não está aqui, e não vai estar: os seis primeiros
dígitos, o código de retorno da adquirente e a nota do
antifraude. Os dois primeiros são diagnóstico nosso; a nota numa
resposta pública seria um oráculo de risco para quem testa
cartão em lote. O código de recusa sai numa recusa, em
error.details.decline_code, onde quem lê é o seu servidor.
Presente em toda cobrança, inclusive nas de PIX e de cartão -
onde os campos vêm null. Mesma regra do pix e do card, e
pelo mesmo motivo.
Boleto é oferecido apenas a lojas em conta de split na Pagar.me.
Numa loja fora desse arranjo, POST /v1/charges com
payment_method: boleto responde 422 com
boleto_not_available.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Vext","colors":{"primary":"#1A7A14","light":"#4FFC46","dark":"#14640F"},"logo":{"light":"https://mintcdn.com/vext/kcwCRAttQYaZqJCy/logo/light.svg?fit=max\u0026auto=format\u0026n=kcwCRAttQYaZqJCy\u0026q=85\u0026s=fb9b46dfbd546322b281376800e5d841","dark":"https://mintcdn.com/vext/kcwCRAttQYaZqJCy/logo/dark.svg?fit=max\u0026auto=format\u0026n=kcwCRAttQYaZqJCy\u0026q=85\u0026s=b5d7910037e70bdeaabd3c84a89ba3b8"},"favicon":"https://mintcdn.com/vext/OcFZC8TCCCNiFjKO/favicon.svg?fit=max\u0026auto=format\u0026n=OcFZC8TCCCNiFjKO\u0026q=85\u0026s=e0dfe4ab440758e15218c96ed34fe259","api":{"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl","php","javascript","python"]}},"appearance":{"default":"system"},"navbar":{"links":[{"href":"https://wa.me/5511936185272","label":"Suporte"}]},"footer":{"links":[{"header":"Documentação","items":[{"label":"Primeira cobrança","href":"/quickstart"},{"label":"Referência da API","href":"/api-reference/introducao"},{"label":"Webhooks","href":"/webhooks/visao-geral"}]},{"header":"Vext","items":[{"label":"Suporte","href":"https://wa.me/5511936185272"}]}]},"search":{"prompt":"Buscar na documentação da Vext"},"icons":{"library":"lucide"},"contextual":{"options":["copy","view","claude","chatgpt","mcp"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"vext","hasAudioNarration":false,"actualSubdomain":"vext","customDomains":["docs.usevext.com"],"gitSource":{"type":"github","owner":"brendooliveira","repo":"documentation","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae0ead2400e864d11faf0ec","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Referência da API","count":30},{"language":"default","tag":"Guias","count":26},{"language":"default","tag":"Cobranças","count":5},{"language":"default","tag":"Eventos de cobrança","count":5},{"language":"default","tag":"Convenções da API","count":5},{"language":"default","tag":"Cartão","count":5},{"language":"default","tag":"Depois da venda","count":5},{"language":"default","tag":"Cartões","count":4},{"language":"default","tag":"Objetos","count":4},{"language":"default","tag":"Cartão no navegador","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/cobrancas/criar","slug":"/api-reference/cobrancas/criar","pageMetadata":{"title":"Criar cobrança","description":"Cria uma cobrança PIX com split entre o vendedor e a plataforma, e devolve o payload copia-e-cola.","icon":"circle-dollar-sign","openapi":"api-reference/openapi.yaml POST /v1/charges","href":"/api-reference/cobrancas/criar"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Cria uma cobrança PIX com split entre o vendedor e a plataforma, e devolve o payload copia-e-cola.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Note}=_components;if(!Note)_missingMdxReference(`Note`,true);return _jsxs(_Fragment,{children:[_jsx(Note,{children:_jsxs(_components.p,{children:[`Os valores aqui são `,_jsx(_components.strong,{children:`inteiros em centavos`}),`: R$ 100,00 se envia como `,_jsx(_components.code,{children:`10000`}),`. Decimais são\nrecusados com `,_jsx(_components.code,{children:`422`}),`, e o porquê está em `,_jsx(_components.a,{href:`/essenciais/valores-em-centavos`,children:`Valores em centavos`}),`.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Envie `,_jsx(_components.code,{children:`Idempotency-Key`}),` nesta chamada e você pode repetir com tranquilidade depois de um erro de\nrede: a mesma chave devolve o recurso que já existe, em vez de criar um segundo.\nVeja `,_jsx(_components.a,{href:`/essenciais/idempotencia`,children:`Idempotência`}),`.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`items`}),` é `,_jsx(_components.strong,{children:`obrigatório`}),`. Mande pelo menos um item, e a soma de `,_jsx(_components.code,{children:`quantity * amount`}),` de todos eles\nprecisa bater exatamente com o `,_jsx(_components.code,{children:`amount`}),` da cobrança — senão a chamada volta `,_jsx(_components.code,{children:`422`}),`\n`,_jsx(_components.code,{children:`items_do_not_match_amount`}),`. Vendendo uma coisa só, mande um item único com o valor cheio.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`A resposta traz `,_jsx(_components.code,{children:`pix.qr_code`}),`, o payload copia-e-cola. A `,_jsx(_components.strong,{children:`imagem`}),` do QR não é devolvida: você a\ngera localmente a partir do payload. Ver `,_jsx(_components.a,{href:`/receitas/checkout-pix`,children:`Checkout PIX de ponta a ponta`}),`.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Criar cobrança","description":"Cria uma cobrança PIX com split entre o vendedor e a plataforma, e devolve o payload copia-e-cola.","icon":"circle-dollar-sign","openapi":"api-reference/openapi.yaml POST /v1/charges","href":"/api-reference/cobrancas/criar"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Cobranças"],"summary":"Criar cobrança","operationId":"createCharge","description":"Cria uma cobrança PIX com split entre o vendedor e a plataforma, e devolve o payload copia-e-cola.","security":["44b5c720-27b2-4247-8825-80364261154a"],"parameters":["5aa0f419-e75d-4838-9623-8e059f5e6fae"],"requestBody":"496075db-9564-46e1-b982-a9b19aef65e7","responses":{"201":"73f38a32-5e9a-4d33-a6ea-3e138867a7d7","400":"cb0f04a7-61ba-4cc0-a3a4-e98eaa8f1f75","401":"1789bb47-4121-4568-8d7f-6f9cca0d983c","402":"ab9021e4-f246-4f3b-83e7-12547fdadc4c","403":"1f9678b5-ca04-4bb1-b85d-f29cf79f198d","409":"154bf7fc-9dfe-4ffe-b740-abd7074ea5c1","422":"81a4f2ea-69db-464a-8110-d4e0a3194802","429":"95d3a6d1-92fd-4a57-959b-6cc5ef52f4b1","500":"5574a2e1-4676-411f-8f83-de2958b2583a","502":"a502683f-6a85-4838-b167-02f758f8f592","503":"7332f507-edd8-4cd3-b945-b8302c13bdfb"},"method":"post","type":"path","servers":["ed9958ae-3134-4ef6-8d55-2744b0263cea"],"path":"/v1/charges","baseUrlOptions":["https://api.usevext.com"],"title":"Criar cobrança","codeSamples":[],"requestExampleLanguages":["bash","php","javascript","python"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"5aa0f419-e75d-4838-9623-8e059f5e6fae":{"name":"Idempotency-Key","in":"header","required":false,"description":"Identificador único da SUA tentativa. Use o mesmo valor ao repetir\na requisição depois de um erro de rede.\n\nOpcional, mas recomendado em toda criação de cobrança e estorno.\nSem ele, uma repetição cria uma segunda cobrança.\n","schema":{"type":"string","maxLength":255,"isRequired":false,"description":"Identificador único da SUA tentativa. Use o mesmo valor ao repetir\na requisição depois de um erro de rede.\n\nOpcional, mas recomendado em toda criação de cobrança e estorno.\nSem ele, uma repetição cria uma segunda cobrança.\n","uniqueKey":"","typeLabel":"string"},"example":"pedido-1042"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["amount","customer","items"],"properties":{"amount":{"type":"integer","description":"**O preço do que você está vendendo**, em centavos inteiros.\nR$ 100,00 = `10000`. Um decimal aqui é recusado com `422`.\n\nNo cartão PARCELADO, o `amount` que volta na resposta é MAIOR\nque este: o juro é cobrado do comprador e soma ao total. Você\nmanda o preço do produto; nós calculamos o que ele paga. Ver\n`amount` no objeto `Charge`.\n","format":"int64","minimum":1,"isRequired":true,"uniqueKey":"amount","typeLabel":"integer\u003cint64>"},"customer":{"type":"object","required":["name","email","document","phone_ddd","phone_number"],"properties":{"name":{"type":"string","maxLength":120,"example":"João Comprador","isRequired":true,"uniqueKey":"customer.name","typeLabel":"string"},"email":{"type":"string","format":"email","maxLength":180,"description":"Obrigatório: sem e-mail o provedor aceita o pedido e devolve\numa cobrança sem QR code.\n","example":"joao@exemplo.com.br","isRequired":true,"uniqueKey":"customer.email","typeLabel":"string\u003cemail>"},"document":{"type":"string","maxLength":20,"description":"CPF ou CNPJ. Pontuação é aceita e descartada - guardamos apenas\nos dígitos. Obrigatório: sem documento o provedor aceita o\npedido e devolve uma cobrança sem QR code.\n","example":"111.444.777-35","isRequired":true,"uniqueKey":"customer.document","typeLabel":"string"},"phone_ddd":{"type":"string","maxLength":3,"description":"DDD de quem vai pagar. Obrigatório: sem telefone o provedor\naceita o pedido e devolve uma cobrança sem QR code.\n","example":"11","isRequired":true,"uniqueKey":"customer.phone_ddd","typeLabel":"string"},"phone_number":{"type":"string","maxLength":12,"description":"Número sem o DDD. Oito dígitos (fixo) ou nove (celular, sempre\ncomeçando com 9).\n","example":"987654321","isRequired":true,"uniqueKey":"customer.phone_number","typeLabel":"string"},"document_type":{"oneOf":[{"type":"string","enum":["CPF","CNPJ","PASSPORT",null],"uniqueKey":"customer.document_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["CPF","CNPJ","PASSPORT",null],"uniqueKey":"customer.document_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"customer.document_type","typeLabel":"enum\u003cstring> | null"}},"isRequired":true,"uniqueKey":"customer","typeLabel":"object"},"items":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","required":["description","quantity","amount"],"properties":{"description":{"type":"string","maxLength":180,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].description","typeLabel":"string"},"quantity":{"type":"integer","minimum":1,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].quantity","typeLabel":"integer"},"amount":{"type":"integer","description":"Valor **unitário** em centavos inteiros. A soma de\n`quantity * amount` de todos os itens precisa ser exatamente\nigual ao `amount` da cobrança.\n","format":"int64","isRequired":true,"uniqueKey":"\\items.items.[INDEX].amount","typeLabel":"integer\u003cint64>"},"code":{"oneOf":[{"type":"string","maxLength":60,"description":"Seu código do produto.","uniqueKey":"\\items.items.[INDEX].code.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":60,"description":"Seu código do produto.","uniqueKey":"\\items.items.[INDEX].code.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].code","typeLabel":"string | null"}},"uniqueKey":"\\items.items.[INDEX]","typeLabel":"object"},"description":"A soma de `quantity × amount` de todos os itens deve bater\n**exatamente** com o `amount` da cobrança.\n\n**No PIX é obrigatório.** Os itens são a única descrição do que\nestá sendo vendido que chega ao arranjo de pagamento, e é o que o\ncomprador lê no aplicativo do banco ao confirmar - uma cobrança\nque não diz o que cobra chega à tela dele como um valor sem\ncausa.\n\n**No cartão, mande `items` OU `description`.** Aquela tela não\nexiste ali, e montar um array cuja soma tem de fechar para vender\numa coisa só é trabalho sem função: `description: \"Plano mensal\"`\nbasta, e nós derivamos o item. Quem vende um carrinho continua\nmandando os itens.\n","isRequired":true,"uniqueKey":"\\items","typeLabel":"object[]"},"description":{"oneOf":[{"type":"string","maxLength":255,"description":"Aparece para o comprador na tela de pagamento.","uniqueKey":"description.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"Aparece para o comprador na tela de pagamento.","uniqueKey":"description.oneOf.1","typeLabel":"null"}],"uniqueKey":"description","typeLabel":"string | null"},"reference":{"oneOf":[{"type":"string","maxLength":120,"description":"Sua referência (número do pedido, id interno). Volta na consulta\ne nos webhooks, e serve de filtro em `GET /v1/charges` - é o que\npermite casar a cobrança com o seu pedido sem guardar o nosso\n`id`.\n","uniqueKey":"reference.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":120,"description":"Sua referência (número do pedido, id interno). Volta na consulta\ne nos webhooks, e serve de filtro em `GET /v1/charges` - é o que\npermite casar a cobrança com o seu pedido sem guardar o nosso\n`id`.\n","uniqueKey":"reference.oneOf.1","typeLabel":"null"}],"uniqueKey":"reference","typeLabel":"string | null"},"metadata":{"oneOf":[{"type":"object","maxProperties":20,"additionalProperties":{"type":"string","maxLength":500,"uniqueKey":"metadata.oneOf.0.additionalProperties","typeLabel":"string"},"propertyNames":{"maxLength":40},"description":"Até **20** pares de chave/valor seus, devolvidos na consulta e\nnos webhooks. É o `reference` para quem precisa de mais de um\nrótulo - com uma diferença: `reference` filtra a listagem,\n`metadata` não.\n\n**Os valores devem ser strings.** Um número aqui é recusado com\n`422`: `{\"total\": 10.10}` voltaria como `10.1`, e a formatação\ndo seu dado é sua. Envie `{\"total\": \"10.10\"}`.\n","example":{"carrinho":"cart_88f21","campanha":"black-friday"},"uniqueKey":"metadata.oneOf.0","typeLabel":"object"},{"type":"null","maxProperties":20,"additionalProperties":{"type":"string","maxLength":500,"uniqueKey":"metadata.oneOf.1.additionalProperties","typeLabel":"string"},"propertyNames":{"maxLength":40},"description":"Até **20** pares de chave/valor seus, devolvidos na consulta e\nnos webhooks. É o `reference` para quem precisa de mais de um\nrótulo - com uma diferença: `reference` filtra a listagem,\n`metadata` não.\n\n**Os valores devem ser strings.** Um número aqui é recusado com\n`422`: `{\"total\": 10.10}` voltaria como `10.1`, e a formatação\ndo seu dado é sua. Envie `{\"total\": \"10.10\"}`.\n","example":{"carrinho":"cart_88f21","campanha":"black-friday"},"uniqueKey":"metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"metadata","typeLabel":"object | null"},"expires_in":{"oneOf":[{"type":"integer","minimum":60,"maximum":604800,"default":86400,"description":"Validade do QR, em segundos. O piso de 60s evita uma cobrança\nque expira antes de o comprador abrir o aplicativo do banco.\nOmitindo o campo, a cobrança vale 24 horas.\n","uniqueKey":"expires_in.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":60,"maximum":604800,"default":86400,"description":"Validade do QR, em segundos. O piso de 60s evita uma cobrança\nque expira antes de o comprador abrir o aplicativo do banco.\nOmitindo o campo, a cobrança vale 24 horas.\n","uniqueKey":"expires_in.oneOf.1","typeLabel":"null"}],"uniqueKey":"expires_in","typeLabel":"integer | null"},"customer_ip":{"oneOf":[{"type":"string","format":"ip","description":"O IP do **comprador**, em IPv4 ou IPv6.\n\nNuma integração servidor-a-servidor quem abre a conexão conosco\né o seu servidor. Sem este campo é o endereço **dele** que\nguardamos, e o \"Local\" da venda no painel apontaria para o seu\ndatacenter em toda cobrança. Mande o IP de quem está comprando\ne o dado passa a valer numa contestação.\n\nFica fora de `customer` porque é da tentativa, não do cadastro:\nmuda a cada compra da mesma pessoa.\n","example":"189.45.12.7","uniqueKey":"customer_ip.oneOf.0","typeLabel":"string\u003cip>"},{"type":"null","format":"ip","description":"O IP do **comprador**, em IPv4 ou IPv6.\n\nNuma integração servidor-a-servidor quem abre a conexão conosco\né o seu servidor. Sem este campo é o endereço **dele** que\nguardamos, e o \"Local\" da venda no painel apontaria para o seu\ndatacenter em toda cobrança. Mande o IP de quem está comprando\ne o dado passa a valer numa contestação.\n\nFica fora de `customer` porque é da tentativa, não do cadastro:\nmuda a cada compra da mesma pessoa.\n","example":"189.45.12.7","uniqueKey":"customer_ip.oneOf.1","typeLabel":"null"}],"uniqueKey":"customer_ip","typeLabel":"string\u003cip> | null"},"payment_method":{"type":"string","enum":["pix","credit_card","boleto"],"default":"pix","description":"Omitido, é `pix` - e continua sendo, para sempre. Toda\nintegração que existe hoje manda o corpo sem este campo, e\ntorná-lo obrigatório as quebraria todas por uma adição nossa.\n\nCom `credit_card`, o objeto `card` passa a ser obrigatório e\n`expires_in` passa a ser recusado: cartão não expira.\n\nCom `boleto`, o objeto `boleto` é opcional - a plataforma já tem\nprazo e instruções padrão. Boleto só está disponível para lojas\nem conta de split na Pagar.me; fora desse arranjo a resposta é\n`422` com `boleto_not_available`.\n","uniqueKey":"payment_method","typeLabel":"enum\u003cstring>"},"boleto":{"oneOf":[{"type":"object","description":"Opcional quando `payment_method` é `boleto`, e **recusado** nos\ndemais - mandá-lo num PIX devolve `422`, pela mesma razão do\n`card`: aceitar e ignorar faria você acreditar que emitiu um\nboleto.\n","properties":{"due_days":{"type":"integer","minimum":1,"maximum":90,"description":"Dias até o vencimento, contados de hoje. Mínimo 1 porque boleto\nque vence no mesmo dia nasce vencido - o banco não o processa.\n","uniqueKey":"boleto.oneOf.0.due_days","typeLabel":"integer"},"instructions":{"type":"string","maxLength":256,"description":"A frase impressa no documento, para o pagador. Substitui a\nnossa; não é acrescentada a ela.\n","uniqueKey":"boleto.oneOf.0.instructions","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"boleto.oneOf.0","typeLabel":"object"},{"type":"null","description":"Opcional quando `payment_method` é `boleto`, e **recusado** nos\ndemais - mandá-lo num PIX devolve `422`, pela mesma razão do\n`card`: aceitar e ignorar faria você acreditar que emitiu um\nboleto.\n","uniqueKey":"boleto.oneOf.1","typeLabel":"null"}],"uniqueKey":"boleto","typeLabel":"object | null"},"card":{"oneOf":[{"type":"object","description":"Obrigatório quando `payment_method` é `credit_card`, e\n**recusado** nos demais. Mandá-lo num PIX devolve `422`: aceitar\ne ignorar faria você ver a cobrança nascer e acreditar que\ncobrou no cartão.\n","required":["installments"],"properties":{"installments":{"type":"integer","minimum":1,"maximum":12,"description":"Conferido de novo contra a escada por valor e a taxa da sua\nconta na criação - consulte `GET /v1/installments` para saber o\nque está disponível antes de cobrar.\n","isRequired":true,"uniqueKey":"card.oneOf.0.installments","typeLabel":"integer"},"id":{"oneOf":[{"type":"string","pattern":"^pm_[0-9a-z]{26}$","description":"Um cartão guardado, de `GET /v1/cards`. **Excludente com\n`token`**, e é o pagamento de um clique: o comprador não digita\nnada, e por isso `holder_name` e `billing_address` não vêm - o\ncofre já os tem.\n\nUma loja que exige 3DS não cobra assim: veja\n`one_click_requires_three_ds` abaixo.\n","example":"pm_01k1y6r6m6q2x0p3d9v4t7c8n2","uniqueKey":"card.oneOf.0.id.oneOf.0","typeLabel":"string"},{"type":"null","pattern":"^pm_[0-9a-z]{26}$","description":"Um cartão guardado, de `GET /v1/cards`. **Excludente com\n`token`**, e é o pagamento de um clique: o comprador não digita\nnada, e por isso `holder_name` e `billing_address` não vêm - o\ncofre já os tem.\n\nUma loja que exige 3DS não cobra assim: veja\n`one_click_requires_three_ds` abaixo.\n","example":"pm_01k1y6r6m6q2x0p3d9v4t7c8n2","uniqueKey":"card.oneOf.0.id.oneOf.1","typeLabel":"null"}],"uniqueKey":"card.oneOf.0.id","typeLabel":"string | null"},"token":{"type":"string","maxLength":255,"description":"O token de uso único, criado no navegador. Vale cerca de um\nminuto - tokenize no envio do formulário, nunca na abertura da\npágina.\n\n**Obrigatório na ausência de `id`.** Com ele vêm `holder_name`\ne `billing_address`, que sem ele são recusados.\n","example":"token_ORP978GFOUoQD58x","uniqueKey":"card.oneOf.0.token","typeLabel":"string"},"holder_name":{"type":"string","maxLength":64,"description":"O nome impresso no cartão, sem acento. A Pagar.me recusa o\npedido com acento ou com mais de 64 caracteres.\n","example":"JOAO COMPRADOR","uniqueKey":"card.oneOf.0.holder_name","typeLabel":"string"},"holder_document":{"oneOf":[{"type":"string","maxLength":20,"description":"CPF ou CNPJ do portador, quando diferente do comprador.","uniqueKey":"card.oneOf.0.holder_document.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":20,"description":"CPF ou CNPJ do portador, quando diferente do comprador.","uniqueKey":"card.oneOf.0.holder_document.oneOf.1","typeLabel":"null"}],"uniqueKey":"card.oneOf.0.holder_document","typeLabel":"string | null"},"brand":{"oneOf":[{"type":"string","maxLength":32,"description":"A bandeira lida do BIN no navegador. Serve para PRECIFICAR, e\nnão é confiável - a de verdade só aparece na resposta do\npedido, e é ela que volta em `card.brand`.\n","uniqueKey":"card.oneOf.0.brand.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":32,"description":"A bandeira lida do BIN no navegador. Serve para PRECIFICAR, e\nnão é confiável - a de verdade só aparece na resposta do\npedido, e é ela que volta em `card.brand`.\n","uniqueKey":"card.oneOf.0.brand.oneOf.1","typeLabel":"null"}],"uniqueKey":"card.oneOf.0.brand","typeLabel":"string | null"},"billing_address":{"type":"object","description":"**Opcional, e em três níveis de esforço.** Escolha um:\n\n| O que você manda | O que acontece |\n| --- | --- |\n| os seis campos | melhor aprovação, e não depende de nada nosso |\n| só `zip_code` + `number` | completamos rua, bairro, cidade e UF pelo CEP |\n| nada | a cobrança passa, e a aprovação cai |\n\nO antifraude reprova bem mais sem endereço, e é ele que a bandeira\ncompara com o cadastro do portador numa contestação. O antifraude\né cobrado por transação, aprovada ou não - vale mandar tudo que\nele sabe ler.\n\n`zip_code` e `number` andam juntos: CEP sem número não identifica\nendereço nenhum, e número sem CEP não se completa. Mandar um só\ndevolve `422`.\n","required":["zip_code","number"],"properties":{"zip_code":{"type":"string","maxLength":16,"example":"01310100","isRequired":true,"uniqueKey":"card.oneOf.0.billing_address.zip_code","typeLabel":"string"},"number":{"type":"string","maxLength":20,"example":"1000","isRequired":true,"uniqueKey":"card.oneOf.0.billing_address.number","typeLabel":"string"},"street":{"oneOf":[{"type":"string","maxLength":120,"description":"Buscado pelo CEP quando você não manda.","uniqueKey":"card.oneOf.0.billing_address.street.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":120,"description":"Buscado pelo CEP quando você não manda.","uniqueKey":"card.oneOf.0.billing_address.street.oneOf.1","typeLabel":"null"}],"uniqueKey":"card.oneOf.0.billing_address.street","typeLabel":"string | null"},"complement":{"oneOf":[{"type":"string","maxLength":80,"uniqueKey":"card.oneOf.0.billing_address.complement.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":80,"uniqueKey":"card.oneOf.0.billing_address.complement.oneOf.1","typeLabel":"null"}],"uniqueKey":"card.oneOf.0.billing_address.complement","typeLabel":"string | null"},"neighborhood":{"oneOf":[{"type":"string","maxLength":80,"description":"Buscado pelo CEP quando você não manda.","uniqueKey":"card.oneOf.0.billing_address.neighborhood.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":80,"description":"Buscado pelo CEP quando você não manda.","uniqueKey":"card.oneOf.0.billing_address.neighborhood.oneOf.1","typeLabel":"null"}],"uniqueKey":"card.oneOf.0.billing_address.neighborhood","typeLabel":"string | null"},"city":{"oneOf":[{"type":"string","maxLength":80,"description":"Buscado pelo CEP quando você não manda.","uniqueKey":"card.oneOf.0.billing_address.city.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":80,"description":"Buscado pelo CEP quando você não manda.","uniqueKey":"card.oneOf.0.billing_address.city.oneOf.1","typeLabel":"null"}],"uniqueKey":"card.oneOf.0.billing_address.city","typeLabel":"string | null"},"state":{"oneOf":[{"type":"string","minLength":2,"maxLength":2,"example":"SP","description":"Buscado pelo CEP quando você não manda.","uniqueKey":"card.oneOf.0.billing_address.state.oneOf.0","typeLabel":"string"},{"type":"null","minLength":2,"maxLength":2,"example":"SP","description":"Buscado pelo CEP quando você não manda.","uniqueKey":"card.oneOf.0.billing_address.state.oneOf.1","typeLabel":"null"}],"uniqueKey":"card.oneOf.0.billing_address.state","typeLabel":"string | null"}},"uniqueKey":"card.oneOf.0.billing_address","typeLabel":"object"},"three_ds":{"oneOf":[{"type":"object","description":"O resultado da autenticação do portador.\n\n**Opcional, como todo o 3DS nesta API.** Só se torna obrigatório\nquando VOCÊ pediu `three_d_secure: \"required\"` - aí a ausência\nvolta `422`, porque pedir autenticação e não autenticar é\nincoerente.\n\nQuem produz estes dois valores é o navegador, contra o servidor\nda Stone. Não tente montá-los do seu lado: quem confere a\nautenticação de verdade é a Pagar.me, no momento do pedido, e\num identificador forjado simplesmente não vira autenticação.\n","required":["transaction_id","status"],"properties":{"transaction_id":{"type":"string","maxLength":64,"isRequired":true,"uniqueKey":"card.oneOf.0.three_ds.oneOf.0.transaction_id","typeLabel":"string"},"status":{"type":"string","enum":["Y","A"],"description":"Só `Y` (autenticado) e `A` (tentativa comprovada) são\naceitos - são os dois que carregam o liability shift em\nVisa e Mastercard. Os demais dizem que o emissor negou ou\nnão respondeu, e a cobrança é recusada antes de sair.\n","isRequired":true,"uniqueKey":"card.oneOf.0.three_ds.oneOf.0.status","typeLabel":"enum\u003cstring>"}},"uniqueKey":"card.oneOf.0.three_ds.oneOf.0","typeLabel":"object"},{"type":"null","description":"O resultado da autenticação do portador.\n\n**Opcional, como todo o 3DS nesta API.** Só se torna obrigatório\nquando VOCÊ pediu `three_d_secure: \"required\"` - aí a ausência\nvolta `422`, porque pedir autenticação e não autenticar é\nincoerente.\n\nQuem produz estes dois valores é o navegador, contra o servidor\nda Stone. Não tente montá-los do seu lado: quem confere a\nautenticação de verdade é a Pagar.me, no momento do pedido, e\num identificador forjado simplesmente não vira autenticação.\n","required":["transaction_id","status"],"properties":{"transaction_id":{"type":"string","maxLength":64},"status":{"type":"string","enum":["Y","A"],"description":"Só `Y` (autenticado) e `A` (tentativa comprovada) são\naceitos - são os dois que carregam o liability shift em\nVisa e Mastercard. Os demais dizem que o emissor negou ou\nnão respondeu, e a cobrança é recusada antes de sair.\n"}},"uniqueKey":"card.oneOf.0.three_ds.oneOf.1","typeLabel":"null"}],"uniqueKey":"card.oneOf.0.three_ds","typeLabel":"object | null"}},"uniqueKey":"card.oneOf.0","typeLabel":"object"},{"type":"null","description":"Obrigatório quando `payment_method` é `credit_card`, e\n**recusado** nos demais. Mandá-lo num PIX devolve `422`: aceitar\ne ignorar faria você ver a cobrança nascer e acreditar que\ncobrou no cartão.\n","uniqueKey":"card.oneOf.1","typeLabel":"null"}],"uniqueKey":"card","typeLabel":"object | null"},"three_d_secure":{"type":"string","enum":["automatic","required","off"],"default":"automatic","description":"**A autenticação do portador é opcional nesta API, e o padrão é\nnão autenticar.** Você não precisa deste campo para cobrar no\ncartão.\n\nMande `required` quando quiser autenticar: a cobrança passa a\nexigir `card.three_ds`, e você roda o desafio no navegador antes\nde cobrar - ver `POST /v1/three_ds_tokens`. É o caminho de quem\nquer a **transferência de responsabilidade**: sem autenticação,\numa contestação por \"não fui eu\" sai do seu saldo; com ela,\nresponde o banco emissor.\n\n`automatic` (o padrão) e `off` fazem a mesma coisa hoje: não\nautenticam. `off` existe para quem já o escreveu no código um dia\ne não deve ver a cobrança quebrar por uma simplificação nossa.\n\nO interruptor de 3DS da sua conta, no painel, **não vale aqui** -\nele governa os checkouts hospedados por nós, onde somos nós que\nmontamos a tela e podemos pedir o desafio ao comprador. Nesta API\nquem monta a tela é você, e exigir um identificador que só o\nnavegador produz devolveria um `422` impossível de resolver a\nquem cobra de um servidor.\n","uniqueKey":"three_d_secure","typeLabel":"enum\u003cstring>"},"save_card":{"type":"boolean","default":false,"description":"Guarda o cartão no cofre **se, e somente se, a venda for\naprovada**, e a próxima cobrança usa `card.id`. Recusada, nada\né guardado: uma referência de autorização negada é uma\nreferência que a própria Pagar.me pode não honrar depois.\n\nO `pm_` não volta nesta resposta - ele nasce depois dela.\nBusque-o em `GET /v1/cards?customer_document=…`.\n\n**Recusado junto com `card.id`**: aquele cartão já está\nguardado, e aceitar-e-ignorar ensinaria errado.\n\nGuardar credencial de pagamento sem o comprador ter pedido é\nproblema regulatório antes de ser problema de produto. O\nconsentimento é seu para colher.\n","uniqueKey":"save_card","typeLabel":"boolean"},"recurrence":{"oneOf":[{"type":"object","description":"**Declare aqui quando esta cobrança é parte de uma assinatura.**\n\nSó no cartão; num PIX é recusado com `422`. E `installments`\npassa a aceitar **apenas 1**: a bandeira não parcela uma\ncobrança recorrente - quem quer dividir uma assinatura cobra\nmais vezes, não uma vez em doze.\n\nOmitir o campo numa cobrança de série **não dá erro nenhum**, e é\njustamente o problema: a Pagar.me aceita o pedido, e a falta vira\nmulta de bandeira semanas depois. Mastercard, Visa e Elo exigem a\ndeclaração.\n\n\u003cWarning>\nDeclarar recorrência **não** devolve o liability shift. Ela é\nconformidade de bandeira - evita multa, não evita contestação. A\nproteção continua vindo da autenticação do portador, e por isso o\ncaminho seguro é **autenticar a primeira cobrança** (com o\ncomprador na tela, sem cartão guardado) e deixar as seguintes\ncorrerem declaradas.\n\nNuma loja que exige 3DS, uma cobrança com `card.id` e\n`recurrence` **passa** em vez de levar `403\none_click_requires_three_ds` - e corre sem transferência de\nresponsabilidade. É uma escolha sua.\n\u003c/Warning>\n","required":["cycle"],"properties":{"cycle":{"type":"string","enum":["first","subsequent"],"description":"`first` na primeira cobrança da série; `subsequent` em todas\nas seguintes.\n\nA série **reinicia** quando o cartão, o meio de pagamento ou\no valor mudam: a cobrança seguinte a qualquer uma dessas\nmudanças é uma nova `first`, e é dela que as próximas passam\na ser origem. Continuar apontando para a origem antiga\ndeclara uma série que a bandeira não reconhece mais.\n","isRequired":true,"uniqueKey":"recurrence.oneOf.0.cycle","typeLabel":"enum\u003cstring>"},"model":{"type":"string","enum":["subscription","standing_order","instalment"],"default":"subscription","description":"`subscription` é a assinatura de valor e frequência fixos -\no caso comum, e o padrão. `standing_order` é a ordem\npermanente de valor variável. `instalment` é a compra\ndividida em cobranças ao longo do tempo, que **não** é o\nparcelamento no cartão (ali a bandeira divide uma única\nautorização).\n","uniqueKey":"recurrence.oneOf.0.model","typeLabel":"enum\u003cstring>"},"origin_charge_id":{"oneOf":[{"type":"string","description":"O `ch_` da **primeira cobrança aprovada** da série.\nObrigatório com `cycle: \"subsequent\"`, e recusado na\nprimeira - lá ele apontaria para si mesma.\n\nÉ o nosso código, e não o do provedor: você já o guarda ao\nlado da assinatura, e as referências da Pagar.me não entram\nnem saem por esta API. Traduzimos para os identificadores\nque a bandeira quer.\n\nUma cobrança sem identificador de recorrência - um PIX, uma\nrecusa - é recusada com `422`, com a frase dizendo qual usar.\n","example":"ch_01k1y6r6m6q2x0p3d9v4t7c8n2","uniqueKey":"recurrence.oneOf.0.origin_charge_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"O `ch_` da **primeira cobrança aprovada** da série.\nObrigatório com `cycle: \"subsequent\"`, e recusado na\nprimeira - lá ele apontaria para si mesma.\n\nÉ o nosso código, e não o do provedor: você já o guarda ao\nlado da assinatura, e as referências da Pagar.me não entram\nnem saem por esta API. Traduzimos para os identificadores\nque a bandeira quer.\n\nUma cobrança sem identificador de recorrência - um PIX, uma\nrecusa - é recusada com `422`, com a frase dizendo qual usar.\n","example":"ch_01k1y6r6m6q2x0p3d9v4t7c8n2","uniqueKey":"recurrence.oneOf.0.origin_charge_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"recurrence.oneOf.0.origin_charge_id","typeLabel":"string | null"}},"uniqueKey":"recurrence.oneOf.0","typeLabel":"object"},{"type":"null","description":"**Declare aqui quando esta cobrança é parte de uma assinatura.**\n\nSó no cartão; num PIX é recusado com `422`. E `installments`\npassa a aceitar **apenas 1**: a bandeira não parcela uma\ncobrança recorrente - quem quer dividir uma assinatura cobra\nmais vezes, não uma vez em doze.\n\nOmitir o campo numa cobrança de série **não dá erro nenhum**, e é\njustamente o problema: a Pagar.me aceita o pedido, e a falta vira\nmulta de bandeira semanas depois. Mastercard, Visa e Elo exigem a\ndeclaração.\n\n\u003cWarning>\nDeclarar recorrência **não** devolve o liability shift. Ela é\nconformidade de bandeira - evita multa, não evita contestação. A\nproteção continua vindo da autenticação do portador, e por isso o\ncaminho seguro é **autenticar a primeira cobrança** (com o\ncomprador na tela, sem cartão guardado) e deixar as seguintes\ncorrerem declaradas.\n\nNuma loja que exige 3DS, uma cobrança com `card.id` e\n`recurrence` **passa** em vez de levar `403\none_click_requires_three_ds` - e corre sem transferência de\nresponsabilidade. É uma escolha sua.\n\u003c/Warning>\n","required":["cycle"],"properties":{"cycle":{"type":"string","enum":["first","subsequent"],"description":"`first` na primeira cobrança da série; `subsequent` em todas\nas seguintes.\n\nA série **reinicia** quando o cartão, o meio de pagamento ou\no valor mudam: a cobrança seguinte a qualquer uma dessas\nmudanças é uma nova `first`, e é dela que as próximas passam\na ser origem. Continuar apontando para a origem antiga\ndeclara uma série que a bandeira não reconhece mais.\n"},"model":{"type":"string","enum":["subscription","standing_order","instalment"],"default":"subscription","description":"`subscription` é a assinatura de valor e frequência fixos -\no caso comum, e o padrão. `standing_order` é a ordem\npermanente de valor variável. `instalment` é a compra\ndividida em cobranças ao longo do tempo, que **não** é o\nparcelamento no cartão (ali a bandeira divide uma única\nautorização).\n"},"origin_charge_id":{"oneOf":[{"type":"string","description":"O `ch_` da **primeira cobrança aprovada** da série.\nObrigatório com `cycle: \"subsequent\"`, e recusado na\nprimeira - lá ele apontaria para si mesma.\n\nÉ o nosso código, e não o do provedor: você já o guarda ao\nlado da assinatura, e as referências da Pagar.me não entram\nnem saem por esta API. Traduzimos para os identificadores\nque a bandeira quer.\n\nUma cobrança sem identificador de recorrência - um PIX, uma\nrecusa - é recusada com `422`, com a frase dizendo qual usar.\n","example":"ch_01k1y6r6m6q2x0p3d9v4t7c8n2"},{"type":"null","description":"O `ch_` da **primeira cobrança aprovada** da série.\nObrigatório com `cycle: \"subsequent\"`, e recusado na\nprimeira - lá ele apontaria para si mesma.\n\nÉ o nosso código, e não o do provedor: você já o guarda ao\nlado da assinatura, e as referências da Pagar.me não entram\nnem saem por esta API. Traduzimos para os identificadores\nque a bandeira quer.\n\nUma cobrança sem identificador de recorrência - um PIX, uma\nrecusa - é recusada com `422`, com a frase dizendo qual usar.\n","example":"ch_01k1y6r6m6q2x0p3d9v4t7c8n2"}]}},"uniqueKey":"recurrence.oneOf.1","typeLabel":"null"}],"uniqueKey":"recurrence","typeLabel":"object | null"},"device_event_id":{"oneOf":[{"type":"string","maxLength":255,"description":"O identificador do evento de identificação do aparelho - é o\n`deviceEventId` que o `createToken()` da Pagar.me devolve ao\nseu JavaScript.\n\nOpcional sempre. Bloqueador de anúncio corta a identificação\ncom frequência, e recusar a venda porque o enriquecimento de\nrisco não carregou troca uma fraude possível por uma perda\ncerta.\n","uniqueKey":"device_event_id.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":255,"description":"O identificador do evento de identificação do aparelho - é o\n`deviceEventId` que o `createToken()` da Pagar.me devolve ao\nseu JavaScript.\n\nOpcional sempre. Bloqueador de anúncio corta a identificação\ncom frequência, e recusar a venda porque o enriquecimento de\nrisco não carregou troca uma fraude possível por uma perda\ncerta.\n","uniqueKey":"device_event_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"device_event_id","typeLabel":"string | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"simples":{"title":"simples","value":{"amount":10000,"description":"Curso de Vue 3","reference":"pedido-1042","metadata":{"carrinho":"cart_88f21","campanha":"black-friday"},"customer_ip":"189.45.12.7","customer":{"name":"João Comprador","email":"joao@exemplo.com.br","document":"11144477735","document_type":"CPF","phone_ddd":"11","phone_number":"987654321"}}},"cartao":{"title":"cartao","description":"Não falta nada aqui. Sem `items` - `description` serve no\nlugar dele no cartão -, sem endereço e sem nenhum campo de\n3DS, que é opcional nesta API.\n\nO `token` vem do navegador, criado por\n`Vext(pk).createToken(...)` - ver `GET /v1/vext.js`. Ele\nvale cerca de um minuto.\n","value":{"amount":10000,"payment_method":"credit_card","description":"Curso de Vue 3","reference":"pedido-1042","customer_ip":"189.45.12.7","card":{"token":"token_ORP978GFOUoQD58x","installments":1,"holder_name":"ANA P SOUZA"},"customer":{"name":"Ana P Souza","email":"ana@exemplo.com.br","document":"11144477735","phone_ddd":"11","phone_number":"987654321"}}},"cartaoCompleto":{"title":"cartaoCompleto","description":"Os três opcionais que valem a pena: endereço de cobrança -\naqui em CEP e número, que completamos -, `customer_ip` do\ncomprador, e a bandeira lida do BIN para precificar o\nparcelamento.\n","value":{"amount":10000,"payment_method":"credit_card","description":"Curso de Vue 3","reference":"pedido-1042","customer_ip":"189.45.12.7","save_card":true,"card":{"token":"token_ORP978GFOUoQD58x","installments":3,"holder_name":"ANA P SOUZA","brand":"visa","billing_address":{"zip_code":"01310100","number":"1000"}},"customer":{"name":"Ana P Souza","email":"ana@exemplo.com.br","document":"11144477735","phone_ddd":"11","phone_number":"987654321"}}},"comItens":{"title":"comItens","description":"A soma de `quantity * amount` de todos os itens precisa\nbater exatamente com `amount`. Sem essa conferência o\ncomprador veria um total diferente da soma do que está\nlevando.\n","value":{"amount":10000,"expires_in":1800,"customer":{"name":"Maria Compradora","document":"11144477735"},"items":[{"code":"curso-vue","description":"Curso de Vue 3","quantity":1,"amount":6000},{"code":"ebook","description":"E-book de apoio","quantity":2,"amount":2000}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"73f38a32-5e9a-4d33-a6ea-3e138867a7d7":{"description":"Cobrança criada e aguardando pagamento.","headers":{"Idempotent-Replayed":{"description":"Presente com valor `true` quando o corpo devolvido é uma resposta\n**gravada**, e não um recurso novo. Nada foi criado nesta chamada.\n","schema":{"type":"string","enum":["true"]}}},"content":{"application/json":{"schema":{"type":"object","description":"Uma cobrança, como a API a devolve. **Todo campo desta lista está\nsempre presente** - os anuláveis vêm com `null`, nunca ausentes.\nMarcar como opcional o que nunca falta obrigaria você a testar a\nexistência de uma chave que sempre existe.\n\nNos webhooks há uma exceção documentada: veja `ChargeMinimal`.\n","required":["object","id","status","payment_method","amount","currency","platform_fee","net_amount","refunded_amount","description","reference","metadata","customer","pix","card","boleto","created_at","paid_at","expired_at","refunded_at"],"properties":{"object":{"type":"string","const":"charge","isRequired":true,"uniqueKey":"object","typeLabel":"string"},"id":{"type":"string","description":"Código público da cobrança. Nunca é a chave primária: expor o\nautoincremento diria a qualquer cliente quantas vendas a\nplataforma inteira processou.\n","example":"ch_01k1y6r6m6q2x0p3d9v4t7c8n2","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"status":{"type":"string","description":"Situação da cobrança. Só os estados de trânsito - `pending`,\n`processing` e `in_analysis` - ainda mudam sozinhos; os demais são\nterminais, exceto os que ainda admitem estorno.\n\n`processing` e `in_analysis` são do cartão: a autorização é\ndecidida na mesma requisição, mas pode parar na análise de fraude\nantes de virar `paid` ou `failed`. No PIX a cobrança vai direto de\n`pending` para o desfecho.\n\n`partially_refunded` é estado próprio, e não um `refunded` com\nasterisco: tratar uma venda devolvida pela metade como estornada\nfaria seu relatório descontar o valor inteiro.\n\n`chargedback` é definitivo: o dinheiro voltou pelo caminho da\nbandeira, e nem cancelamento nem estorno são mais possíveis.\n","enum":["pending","processing","in_analysis","paid","expired","canceled","partially_refunded","refunded","failed","chargedback"],"x-labels":{"pending":"Aguardando pagamento","processing":"Processando","in_analysis":"Em análise","paid":"Pago","expired":"Expirado","canceled":"Cancelado","partially_refunded":"Estornado em parte","refunded":"Estornado","failed":"Falhou","chargedback":"Chargeback"},"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"payment_method":{"type":"string","enum":["pix","credit_card","boleto"],"description":"O meio pelo qual esta cobrança foi criada. Omitir o campo na\ncriação continua significando `pix` - é o que toda integração\nque existe hoje espera, e mudar isso as quebraria todas de uma\nvez.\n","isRequired":true,"uniqueKey":"payment_method","typeLabel":"enum\u003cstring>"},"amount":{"type":"integer","description":"**O que o comprador paga**, em centavos inteiros.\n\nCuidado com a assimetria, porque ela é a pegadinha desta API: no\n`POST` você manda o PREÇO DO PRODUTO, e aqui volta o TOTAL. No\nPix e no cartão à vista os dois são iguais; no cartão parcelado\neste é maior, porque inclui o juro que o comprador pagou.\n\nO preço do produto, de volta, é `amount - interest`.\n","format":"int64","isRequired":true,"uniqueKey":"amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","const":"BRL","isRequired":true,"uniqueKey":"currency","typeLabel":"string"},"platform_fee":{"type":"integer","description":"Nossa taxa, em centavos inteiros. Congelada na criação: reflete\no contrato que valia quando a venda aconteceu, não o de hoje.\n\nEla incide sobre o **preço do produto** (`amount - interest`), e\nnão sobre o total pago. É o que faz parcelar não custar nada a\nvocê - ver `net_amount`.\n","format":"int64","isRequired":true,"uniqueKey":"platform_fee","typeLabel":"integer\u003cint64>"},"net_amount":{"type":"integer","description":"O que fica com o vendedor, em centavos inteiros.\n\n**Não é `amount - platform_fee`.** Essa conta dá um número maior,\ne a diferença é o JURO do parcelamento: ele está dentro do\n`amount` porque o comprador o pagou, mas não é receita de\nninguém aqui - atravessa até o arranjo de pagamento.\n\nA identidade que fecha, e que o banco confere em toda cobrança:\n\n```\namount = net_amount + platform_fee + interest + co-produção\n```\n\nNo Pix e no cartão à vista o juro é zero, e aí\n`amount - platform_fee` fecha.\n","format":"int64","isRequired":true,"uniqueKey":"net_amount","typeLabel":"integer\u003cint64>"},"refunded_amount":{"type":"integer","description":"Total já devolvido ao comprador, em centavos inteiros. Acumulado\nentre estornos parciais.\n","format":"int64","isRequired":true,"uniqueKey":"refunded_amount","typeLabel":"integer\u003cint64>"},"description":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"description.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"description","typeLabel":"string | null"},"reference":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"reference.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"reference.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"reference","typeLabel":"string | null"},"metadata":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"metadata.additionalProperties","typeLabel":"string"},"description":"O que você enviou na criação. **Sempre um objeto**, `{}` quando\nnão houve nada - nunca `null`, para o seu código não ter dois\ncasos a tratar.\n","example":{"carrinho":"cart_88f21","campanha":"black-friday"},"isRequired":true,"uniqueKey":"metadata","typeLabel":"object"},"customer":{"oneOf":[{"type":"object","description":"`null` na cobrança que não tem comprador vinculado. A chave em\nsi nunca falta.\n","required":["name","email","document"],"properties":{"name":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"customer.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"customer.oneOf.0.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"customer.oneOf.0.name","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"customer.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"customer.oneOf.0.email.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"customer.oneOf.0.email","typeLabel":"string | null"},"document":{"oneOf":[{"type":"string","description":"Mascarado. Você já enviou o documento; devolvê-lo inteiro em\ntoda consulta espalharia o dado sem nenhum ganho.\n","example":"111.***.***-35","isRequired":true,"uniqueKey":"customer.oneOf.0.document.oneOf.0","typeLabel":"string"},{"type":"null","description":"Mascarado. Você já enviou o documento; devolvê-lo inteiro em\ntoda consulta espalharia o dado sem nenhum ganho.\n","example":"111.***.***-35","isRequired":true,"uniqueKey":"customer.oneOf.0.document.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"customer.oneOf.0.document","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"customer.oneOf.0","typeLabel":"object"},{"type":"null","description":"`null` na cobrança que não tem comprador vinculado. A chave em\nsi nunca falta.\n","isRequired":true,"uniqueKey":"customer.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"customer","typeLabel":"object | null"},"pix":{"type":"object","description":"Presente em toda cobrança, inclusive nas de cartão - onde os\ntrês campos vêm `null`. Um objeto sempre presente evita o\n`if (charge.pix)` antes de cada leitura.\n","required":["qr_code","expires_at","end_to_end_id"],"properties":{"qr_code":{"oneOf":[{"type":"string","description":"Payload copia-e-cola do PIX. Gere a imagem do QR a partir\ndele - não devolvemos PNG.\n","isRequired":true,"uniqueKey":"pix.qr_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Payload copia-e-cola do PIX. Gere a imagem do QR a partir\ndele - não devolvemos PNG.\n","isRequired":true,"uniqueKey":"pix.qr_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"pix.qr_code","typeLabel":"string | null"},"expires_at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"pix.expires_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"pix.expires_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"pix.expires_at","typeLabel":"string\u003cdate-time> | null"},"end_to_end_id":{"oneOf":[{"type":"string","description":"Identificador da transação no Sistema de Pagamentos\nBrasileiro. Aparece depois do pagamento e é o que o banco do\ncomprador reconhece.\n","isRequired":true,"uniqueKey":"pix.end_to_end_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Identificador da transação no Sistema de Pagamentos\nBrasileiro. Aparece depois do pagamento e é o que o banco do\ncomprador reconhece.\n","isRequired":true,"uniqueKey":"pix.end_to_end_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"pix.end_to_end_id","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"pix","typeLabel":"object"},"card":{"type":"object","description":"Presente em toda cobrança, inclusive nas de PIX - onde os campos\nvêm `null`. Mesma regra do `pix` acima, e pelo mesmo motivo.\n\nO que **não** está aqui, e não vai estar: os seis primeiros\ndígitos, o código de retorno da adquirente e a nota do\nantifraude. Os dois primeiros são diagnóstico nosso; a nota numa\nresposta pública seria um oráculo de risco para quem testa\ncartão em lote. O código de recusa sai numa recusa, em\n`error.details.decline_code`, onde quem lê é o seu servidor.\n","required":["brand","last_four","holder_name","installments","recurrence_cycle","interest","three_d_secure","authorized_at"],"properties":{"brand":{"oneOf":[{"type":"string","description":"A bandeira que a **Pagar.me** reconheceu, e não a que o\nnavegador leu do BIN. Elas divergem, e a que vale é esta.\n","enum":["visa","mastercard","elo","hipercard","amex","diners","discover","aura",null],"isRequired":true,"uniqueKey":"card.brand.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"A bandeira que a **Pagar.me** reconheceu, e não a que o\nnavegador leu do BIN. Elas divergem, e a que vale é esta.\n","enum":["visa","mastercard","elo","hipercard","amex","diners","discover","aura",null],"isRequired":true,"uniqueKey":"card.brand.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"card.brand","typeLabel":"enum\u003cstring> | null"},"last_four":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"card.last_four.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"card.last_four.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"card.last_four","typeLabel":"string | null"},"holder_name":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"card.holder_name.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"card.holder_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"card.holder_name","typeLabel":"string | null"},"installments":{"oneOf":[{"type":"integer","description":"`null` no PIX. A coluna tem default `1`, mas \"uma parcela\"\nnuma cobrança que não parcela é um número que convida a\nconta errada.\n","isRequired":true,"uniqueKey":"card.installments.oneOf.0","typeLabel":"integer"},{"type":"null","description":"`null` no PIX. A coluna tem default `1`, mas \"uma parcela\"\nnuma cobrança que não parcela é um número que convida a\nconta errada.\n","isRequired":true,"uniqueKey":"card.installments.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"card.installments","typeLabel":"integer | null"},"recurrence_cycle":{"oneOf":[{"type":"string","enum":["first","subsequent",null],"description":"O ciclo declarado na criação, de volta - e `null` em toda\ncobrança que não faz parte de uma série, que é a esmagadora\nmaioria.\n\nÉ por ele que você responde \"quais destas cobranças foram de\nassinatura?\" ao conciliar, e é ele que explica a ausência do\ncomprador na tela numa contestação.\n","isRequired":true,"uniqueKey":"card.recurrence_cycle.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["first","subsequent",null],"description":"O ciclo declarado na criação, de volta - e `null` em toda\ncobrança que não faz parte de uma série, que é a esmagadora\nmaioria.\n\nÉ por ele que você responde \"quais destas cobranças foram de\nassinatura?\" ao conciliar, e é ele que explica a ausência do\ncomprador na tela numa contestação.\n","isRequired":true,"uniqueKey":"card.recurrence_cycle.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"card.recurrence_cycle","typeLabel":"enum\u003cstring> | null"},"interest":{"type":"integer","description":"Os juros do parcelamento, em centavos inteiros, e `0` nas\nparcelas sem juros. Eles viajam à Pagar.me como um ITEM à\nparte - ela deriva o valor do pedido da soma dos itens, e um\npedido que não fecha é recusado inteiro.\n","format":"int64","isRequired":true,"uniqueKey":"card.interest","typeLabel":"integer\u003cint64>"},"three_d_secure":{"type":"object","required":["status","transaction_id"],"properties":{"status":{"oneOf":[{"type":"string","description":"O `transStatus` do protocolo. `Y` é autenticado, `A` é\ntentativa comprovada - os dois carregam o liability\nshift em Visa e Mastercard.\n","enum":["Y","A","N","C","U","R","I",null],"isRequired":true,"uniqueKey":"card.three_d_secure.status.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"O `transStatus` do protocolo. `Y` é autenticado, `A` é\ntentativa comprovada - os dois carregam o liability\nshift em Visa e Mastercard.\n","enum":["Y","A","N","C","U","R","I",null],"isRequired":true,"uniqueKey":"card.three_d_secure.status.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"card.three_d_secure.status","typeLabel":"enum\u003cstring> | null"},"transaction_id":{"oneOf":[{"type":"string","description":"O identificador da autenticação. É ele que se apresenta\nà bandeira numa contestação.\n","isRequired":true,"uniqueKey":"card.three_d_secure.transaction_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"O identificador da autenticação. É ele que se apresenta\nà bandeira numa contestação.\n","isRequired":true,"uniqueKey":"card.three_d_secure.transaction_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"card.three_d_secure.transaction_id","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"card.three_d_secure","typeLabel":"object"},"authorized_at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"card.authorized_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"card.authorized_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"card.authorized_at","typeLabel":"string\u003cdate-time> | null"}},"isRequired":true,"uniqueKey":"card","typeLabel":"object"},"boleto":{"type":"object","description":"Presente em toda cobrança, inclusive nas de PIX e de cartão -\nonde os campos vêm `null`. Mesma regra do `pix` e do `card`, e\npelo mesmo motivo.\n\nBoleto é oferecido apenas a lojas em conta de split na Pagar.me.\nNuma loja fora desse arranjo, `POST /v1/charges` com\n`payment_method: boleto` responde 422 com\n`boleto_not_available`.\n","required":["line","barcode","url","pdf","nosso_numero","due_at"],"properties":{"line":{"oneOf":[{"type":"string","description":"Linha digitável - o equivalente do copia-e-cola do PIX, e o\núnico campo que o pagador realmente usa. É o que indica que\no boleto existe: quando ela vem `null`, o provedor recusou a\nemissão e a cobrança nasce `failed`.\n","example":"34191.79001 01043.510047 91020.150008 1 92230000050000","isRequired":true,"uniqueKey":"boleto.line.oneOf.0","typeLabel":"string"},{"type":"null","description":"Linha digitável - o equivalente do copia-e-cola do PIX, e o\núnico campo que o pagador realmente usa. É o que indica que\no boleto existe: quando ela vem `null`, o provedor recusou a\nemissão e a cobrança nasce `failed`.\n","example":"34191.79001 01043.510047 91020.150008 1 92230000050000","isRequired":true,"uniqueKey":"boleto.line.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"boleto.line","typeLabel":"string | null"},"barcode":{"oneOf":[{"type":"string","description":"Endereço da imagem do código de barras na Pagar.me. Não\nservimos o arquivo - como no QR do PIX, devolvemos o\nendereço.\n","isRequired":true,"uniqueKey":"boleto.barcode.oneOf.0","typeLabel":"string"},{"type":"null","description":"Endereço da imagem do código de barras na Pagar.me. Não\nservimos o arquivo - como no QR do PIX, devolvemos o\nendereço.\n","isRequired":true,"uniqueKey":"boleto.barcode.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"boleto.barcode","typeLabel":"string | null"},"url":{"oneOf":[{"type":"string","description":"Página do boleto, para o pagador visualizar.","isRequired":true,"uniqueKey":"boleto.url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Página do boleto, para o pagador visualizar.","isRequired":true,"uniqueKey":"boleto.url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"boleto.url","typeLabel":"string | null"},"pdf":{"oneOf":[{"type":"string","description":"O mesmo documento em PDF.","isRequired":true,"uniqueKey":"boleto.pdf.oneOf.0","typeLabel":"string"},{"type":"null","description":"O mesmo documento em PDF.","isRequired":true,"uniqueKey":"boleto.pdf.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"boleto.pdf","typeLabel":"string | null"},"nosso_numero":{"oneOf":[{"type":"string","description":"Identificador do boleto na conta do emissor. É o número que\no banco devolve no arquivo de retorno, e é por ele que se\nencontra à mão um pagamento cujo webhook não chegou.\n","isRequired":true,"uniqueKey":"boleto.nosso_numero.oneOf.0","typeLabel":"string"},{"type":"null","description":"Identificador do boleto na conta do emissor. É o número que\no banco devolve no arquivo de retorno, e é por ele que se\nencontra à mão um pagamento cujo webhook não chegou.\n","isRequired":true,"uniqueKey":"boleto.nosso_numero.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"boleto.nosso_numero","typeLabel":"string | null"},"due_at":{"oneOf":[{"type":"string","format":"date-time","description":"**Vencimento, não expiração.** O banco aceita boleto depois\ndesta data, e por isso não varremos boleto vencido para\n`expired` - quem tratar esta data como fim encerraria venda\nque ainda pode ser paga. Normalizada pelo provedor para o\nfim do dia.\n","isRequired":true,"uniqueKey":"boleto.due_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"**Vencimento, não expiração.** O banco aceita boleto depois\ndesta data, e por isso não varremos boleto vencido para\n`expired` - quem tratar esta data como fim encerraria venda\nque ainda pode ser paga. Normalizada pelo provedor para o\nfim do dia.\n","isRequired":true,"uniqueKey":"boleto.due_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"boleto.due_at","typeLabel":"string\u003cdate-time> | null"}},"isRequired":true,"uniqueKey":"boleto","typeLabel":"object"},"created_at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"created_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"created_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time> | null"},"paid_at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"paid_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"paid_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"paid_at","typeLabel":"string\u003cdate-time> | null"},"expired_at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"expired_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"expired_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expired_at","typeLabel":"string\u003cdate-time> | null"},"refunded_at":{"oneOf":[{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"refunded_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","isRequired":true,"uniqueKey":"refunded_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"refunded_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"criada":{"title":"criada","value":{"object":"charge","id":"ch_01k1y6r6m6q2x0p3d9v4t7c8n2","status":"pending","payment_method":"pix","amount":10000,"currency":"BRL","platform_fee":798,"net_amount":9103,"refunded_amount":0,"description":"Curso de Vue 3","reference":"pedido-1042","metadata":{"carrinho":"cart_88f21","campanha":"black-friday"},"customer":{"name":"João Comprador","email":"joao@exemplo.com.br","document":"111.***.***-35"},"pix":{"qr_code":"00020101021226840014br.gov.bcb.pix2562qrcodepix.example.com/v2/abcd1234","expires_at":"2026-08-04T15:00:00+00:00","end_to_end_id":null},"created_at":"2026-08-04T14:00:00+00:00","paid_at":null,"expired_at":null,"refunded_at":null}}},"exampleType":"examples"}},"exampleType":"examples"},"cb0f04a7-61ba-4cc0-a3a4-e98eaa8f1f75":{"description":"Requisição malformada.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","code","message","details"],"properties":{"type":{"type":"string","description":"Família do erro. Responde \"de quem é o problema e o que\nfazer\": `invalid_request_error` se corrige mudando a\nchamada, `authentication_error` trocando a chave, e\n`api_error` é nosso - repita, não reescreva.\n","enum":["authentication_error","permission_error","invalid_request_error","idempotency_error","not_found_error","rate_limit_error","api_error","card_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Código estável do erro. **Trate por ele.** A `message` pode\nser reescrita a qualquer momento; o código, não.\n","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Explicação em português, para leitura humana.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Sempre objeto, mesmo vazio. Em `validation_failed`, traz os\ncampos recusados e suas mensagens.\n","additionalProperties":true,"isRequired":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"chaveLonga":{"title":"chaveLonga","value":{"error":{"type":"invalid_request_error","code":"idempotency_key_too_long","message":"A chave de idempotência deve ter no máximo 255 caracteres.","details":{}}}}},"exampleType":"examples"}},"exampleType":"examples"},"1789bb47-4121-4568-8d7f-6f9cca0d983c":{"description":"Chave ausente, desconhecida, revogada ou expirada. A revogada é\ndistinguida da inexistente na MENSAGEM, nunca no status: quem\nintegra precisa saber que a chave existiu e foi desligada, e quem\nestá adivinhando tokens não aprende nada com isso.\n","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","code","message","details"],"properties":{"type":{"type":"string","description":"Família do erro. Responde \"de quem é o problema e o que\nfazer\": `invalid_request_error` se corrige mudando a\nchamada, `authentication_error` trocando a chave, e\n`api_error` é nosso - repita, não reescreva.\n","enum":["authentication_error","permission_error","invalid_request_error","idempotency_error","not_found_error","rate_limit_error","api_error","card_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Código estável do erro. **Trate por ele.** A `message` pode\nser reescrita a qualquer momento; o código, não.\n","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Explicação em português, para leitura humana.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Sempre objeto, mesmo vazio. Em `validation_failed`, traz os\ncampos recusados e suas mensagens.\n","additionalProperties":true,"isRequired":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"ausente":{"title":"ausente","value":{"error":{"type":"authentication_error","code":"missing_api_key","message":"Envie a chave em Authorization: Bearer sk_live_...","details":{}}}},"invalida":{"title":"invalida","value":{"error":{"type":"authentication_error","code":"invalid_api_key","message":"Chave de API inválida.","details":{}}}},"revogada":{"title":"revogada","value":{"error":{"type":"authentication_error","code":"revoked_api_key","message":"Esta chave de API foi revogada. Gere uma nova em Desenvolvedores.","details":{}}}},"expirada":{"title":"expirada","value":{"error":{"type":"authentication_error","code":"expired_api_key","message":"Esta chave de API expirou. Gere uma nova em Desenvolvedores.","details":{}}}}},"exampleType":"examples"}},"exampleType":"examples"},"ab9021e4-f246-4f3b-83e7-12547fdadc4c":{"description":"A operadora recusou o cartão.\n\n**A cobrança EXISTE.** Ela tem código, aparece em `GET /v1/charges`\ne vem inteira em `error.details.charge`. Ainda assim a resposta é\num erro, e a escolha é deliberada: um `201` com `status: \"failed\"`\né exatamente o corpo que uma integração escrita como\n`if (response.ok) { liberar(); }` lê como sucesso - e aí o produto\nsai de graça, em silêncio, até a conciliação.\n\n`decline_code` é o retorno da adquirente. Ele sai aqui, e não no\nobjeto da cobrança, porque quem lê esta resposta é o seu servidor,\ncom a chave secreta: o mesmo dado numa resposta alcançável do\nnavegador seria um oráculo para quem testa cartão em lote.\n\nRepetir a MESMA chamada pode dar certo sem nada mudar do seu lado -\no limite diário do portador vira, o banco libera. E pode nunca dar.\nNão é erro de requisição: o corpo estava certo, a chave estava\ncerta, e quem disse não foi o emissor.\n","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","code","message","details"],"properties":{"type":{"type":"string","description":"Família do erro. Responde \"de quem é o problema e o que\nfazer\": `invalid_request_error` se corrige mudando a\nchamada, `authentication_error` trocando a chave, e\n`api_error` é nosso - repita, não reescreva.\n","enum":["authentication_error","permission_error","invalid_request_error","idempotency_error","not_found_error","rate_limit_error","api_error","card_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Código estável do erro. **Trate por ele.** A `message` pode\nser reescrita a qualquer momento; o código, não.\n","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Explicação em português, para leitura humana.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Sempre objeto, mesmo vazio. Em `validation_failed`, traz os\ncampos recusados e suas mensagens.\n","additionalProperties":true,"isRequired":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"recusado":{"title":"recusado","value":{"error":{"type":"card_error","code":"card_declined","message":"O cartão não tem saldo ou limite disponível. Tente outro cartão.","details":{"charge_id":"ch_01k1y6r6m6q2x0p3d9v4t7c8n2","decline_code":"51"}}}}},"exampleType":"examples"}},"exampleType":"examples"},"1f9678b5-ca04-4bb1-b85d-f29cf79f198d":{"description":"A chave é válida, mas não tem o escopo do endpoint. `403` e não\n`401` de propósito: `401` diria \"sua chave está errada\" a quem tem\na chave certa.\n","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","code","message","details"],"properties":{"type":{"type":"string","description":"Família do erro. Responde \"de quem é o problema e o que\nfazer\": `invalid_request_error` se corrige mudando a\nchamada, `authentication_error` trocando a chave, e\n`api_error` é nosso - repita, não reescreva.\n","enum":["authentication_error","permission_error","invalid_request_error","idempotency_error","not_found_error","rate_limit_error","api_error","card_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Código estável do erro. **Trate por ele.** A `message` pode\nser reescrita a qualquer momento; o código, não.\n","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Explicação em português, para leitura humana.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Sempre objeto, mesmo vazio. Em `validation_failed`, traz os\ncampos recusados e suas mensagens.\n","additionalProperties":true,"isRequired":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"escopo":{"title":"escopo","value":{"error":{"type":"permission_error","code":"insufficient_scope","message":"Esta chave não tem o escopo [refunds:write].","details":{"required_ability":"refunds:write","abilities":["charges:read","charges:write"]}}}},"umClique":{"title":"umClique","value":{"error":{"type":"permission_error","code":"one_click_requires_three_ds","message":"Esta loja exige autenticação do portador, e o pagamento de um clique não a suporta.","details":{}}}}},"exampleType":"examples"}},"exampleType":"examples"},"154bf7fc-9dfe-4ffe-b740-abd7074ea5c1":{"description":"Conflito de chave de idempotência.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","code","message","details"],"properties":{"type":{"type":"string","description":"Família do erro. Responde \"de quem é o problema e o que\nfazer\": `invalid_request_error` se corrige mudando a\nchamada, `authentication_error` trocando a chave, e\n`api_error` é nosso - repita, não reescreva.\n","enum":["authentication_error","permission_error","invalid_request_error","idempotency_error","not_found_error","rate_limit_error","api_error","card_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Código estável do erro. **Trate por ele.** A `message` pode\nser reescrita a qualquer momento; o código, não.\n","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Explicação em português, para leitura humana.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Sempre objeto, mesmo vazio. Em `validation_failed`, traz os\ncampos recusados e suas mensagens.\n","additionalProperties":true,"isRequired":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"reusada":{"title":"reusada","description":"A chave já foi usada com outro corpo. Devolver a resposta\nantiga faria você acreditar que cobrou o valor novo.\n","value":{"error":{"type":"idempotency_error","code":"idempotency_key_reused","message":"Esta chave de idempotência já foi usada com um corpo diferente. Use uma chave nova.","details":{}}}},"emAndamento":{"title":"emAndamento","value":{"error":{"type":"idempotency_error","code":"idempotency_key_in_progress","message":"Uma requisição com esta chave ainda está em processamento. Tente novamente em instantes.","details":{}}}}},"exampleType":"examples"}},"exampleType":"examples"},"81a4f2ea-69db-464a-8110-d4e0a3194802":{"description":"A requisição está bem formada, mas foi recusada por uma regra de\nnegócio. Todos os `code` abaixo são estáveis.\n","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","code","message","details"],"properties":{"type":{"type":"string","description":"Família do erro. Responde \"de quem é o problema e o que\nfazer\": `invalid_request_error` se corrige mudando a\nchamada, `authentication_error` trocando a chave, e\n`api_error` é nosso - repita, não reescreva.\n","enum":["authentication_error","permission_error","invalid_request_error","idempotency_error","not_found_error","rate_limit_error","api_error","card_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Código estável do erro. **Trate por ele.** A `message` pode\nser reescrita a qualquer momento; o código, não.\n","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Explicação em português, para leitura humana.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Sempre objeto, mesmo vazio. Em `validation_failed`, traz os\ncampos recusados e suas mensagens.\n","additionalProperties":true,"isRequired":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"validacao":{"title":"validacao","value":{"error":{"type":"invalid_request_error","code":"validation_failed","message":"Alguns campos não passaram na validação.","details":{"customer.name":["O campo nome é obrigatório."]}}}},"abaixoDoMinimo":{"title":"abaixoDoMinimo","value":{"error":{"type":"invalid_request_error","code":"amount_below_minimum","message":"O valor está abaixo do mínimo permitido.","details":{}}}},"acimaDoMaximo":{"title":"acimaDoMaximo","value":{"error":{"type":"invalid_request_error","code":"amount_above_maximum","message":"O valor está acima do máximo permitido.","details":{}}}},"itens":{"title":"itens","value":{"error":{"type":"invalid_request_error","code":"items_do_not_match_amount","message":"A soma dos itens deve ser igual ao valor da cobrança.","details":{}}}},"vendedor":{"title":"vendedor","description":"O cadastro do vendedor não está aprovado para transacionar.\nNada na chamada resolve - o caminho é o painel.\n","value":{"error":{"type":"invalid_request_error","code":"seller_not_approved","message":"Este vendedor não pode transacionar no momento.","details":{}}}},"provedor":{"title":"provedor","description":"O provedor recusou o conteúdo. A mensagem crua dele nunca\nsai daqui - cita ids e endpoints que não existem no nosso\ncontrato.\n","value":{"error":{"type":"invalid_request_error","code":"provider_rejected","message":"O provedor de pagamento recusou esta cobrança. Confira os dados do comprador e do valor.","details":{}}}}},"exampleType":"examples"}},"exampleType":"examples"},"95d3a6d1-92fd-4a57-959b-6cc5ef52f4b1":{"description":"Requisições demais.\n\nHá três limites, por minuto: um por IP antes da autenticação, e\ndepois um de leitura e um de escrita, ambos por CHAVE - o excesso\nde uma integração não consome a cota das outras do mesmo\nvendedor. A escrita é bem mais apertada porque cada cobrança\ncriada vira uma chamada ao provedor.\n\n`Retry-After` diz em quantos segundos voltar. Os cabeçalhos\n`X-RateLimit-*` vêm em TODA resposta, não só nesta: são eles que\npermitem desacelerar antes de bater no limite.\n","headers":{"Retry-After":{"description":"Segundos até a cota ser reposta.","schema":{"type":"integer"}},"X-RateLimit-Limit":{"description":"Requisições permitidas por minuto neste balde.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Quantas ainda cabem no minuto corrente.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","code","message","details"],"properties":{"type":{"type":"string","description":"Família do erro. Responde \"de quem é o problema e o que\nfazer\": `invalid_request_error` se corrige mudando a\nchamada, `authentication_error` trocando a chave, e\n`api_error` é nosso - repita, não reescreva.\n","enum":["authentication_error","permission_error","invalid_request_error","idempotency_error","not_found_error","rate_limit_error","api_error","card_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Código estável do erro. **Trate por ele.** A `message` pode\nser reescrita a qualquer momento; o código, não.\n","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Explicação em português, para leitura humana.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Sempre objeto, mesmo vazio. Em `validation_failed`, traz os\ncampos recusados e suas mensagens.\n","additionalProperties":true,"isRequired":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"cota":{"title":"cota","value":{"error":{"type":"rate_limit_error","code":"too_many_requests","message":"Muitas requisições. Tente novamente em 42 segundos.","details":{"retry_after":42}}}},"provedor":{"title":"provedor","value":{"error":{"type":"rate_limit_error","code":"provider_rate_limited","message":"Limite de requisições do provedor atingido. Tente novamente em instantes.","details":{}}}}},"exampleType":"examples"}},"exampleType":"examples"},"5574a2e1-4676-411f-8f83-de2958b2583a":{"description":"Erro inesperado do nosso lado. Repita com a mesma\n`Idempotency-Key` - ela é o que torna repetir seguro.\n","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","code","message","details"],"properties":{"type":{"type":"string","description":"Família do erro. Responde \"de quem é o problema e o que\nfazer\": `invalid_request_error` se corrige mudando a\nchamada, `authentication_error` trocando a chave, e\n`api_error` é nosso - repita, não reescreva.\n","enum":["authentication_error","permission_error","invalid_request_error","idempotency_error","not_found_error","rate_limit_error","api_error","card_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Código estável do erro. **Trate por ele.** A `message` pode\nser reescrita a qualquer momento; o código, não.\n","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Explicação em português, para leitura humana.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Sempre objeto, mesmo vazio. Em `validation_failed`, traz os\ncampos recusados e suas mensagens.\n","additionalProperties":true,"isRequired":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"interno":{"title":"interno","value":{"error":{"type":"api_error","code":"internal_error","message":"Erro interno. Se persistir, informe o horário da chamada ao suporte.","details":{}}}}},"exampleType":"examples"}},"exampleType":"examples"},"a502683f-6a85-4838-b167-02f758f8f592":{"description":"O provedor de pagamento não respondeu. **Repita com a mesma\n`Idempotency-Key`**: pode ser que a cobrança tenha sido criada lá e\na resposta se perdido no caminho, e a mesma chave devolve a\ncobrança em vez de criar outra.\n","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","code","message","details"],"properties":{"type":{"type":"string","description":"Família do erro. Responde \"de quem é o problema e o que\nfazer\": `invalid_request_error` se corrige mudando a\nchamada, `authentication_error` trocando a chave, e\n`api_error` é nosso - repita, não reescreva.\n","enum":["authentication_error","permission_error","invalid_request_error","idempotency_error","not_found_error","rate_limit_error","api_error","card_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Código estável do erro. **Trate por ele.** A `message` pode\nser reescrita a qualquer momento; o código, não.\n","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Explicação em português, para leitura humana.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Sempre objeto, mesmo vazio. Em `validation_failed`, traz os\ncampos recusados e suas mensagens.\n","additionalProperties":true,"isRequired":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"indisponivel":{"title":"indisponivel","value":{"error":{"type":"api_error","code":"provider_unavailable","message":"O provedor de pagamento não respondeu. Repita a requisição com a mesma Idempotency-Key.","details":{}}}}},"exampleType":"examples"}},"exampleType":"examples"},"7332f507-edd8-4cd3-b945-b8302c13bdfb":{"description":"A plataforma não está apta a criar cobranças agora. É problema\nnosso: nada que você mude na chamada resolve.\n","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["type","code","message","details"],"properties":{"type":{"type":"string","description":"Família do erro. Responde \"de quem é o problema e o que\nfazer\": `invalid_request_error` se corrige mudando a\nchamada, `authentication_error` trocando a chave, e\n`api_error` é nosso - repita, não reescreva.\n","enum":["authentication_error","permission_error","invalid_request_error","idempotency_error","not_found_error","rate_limit_error","api_error","card_error"],"isRequired":true,"uniqueKey":"error.type","typeLabel":"enum\u003cstring>"},"code":{"type":"string","description":"Código estável do erro. **Trate por ele.** A `message` pode\nser reescrita a qualquer momento; o código, não.\n","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Explicação em português, para leitura humana.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Sempre objeto, mesmo vazio. Em `validation_failed`, traz os\ncampos recusados e suas mensagens.\n","additionalProperties":true,"isRequired":true,"uniqueKey":"error.details","typeLabel":"object"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"indisponivel":{"title":"indisponivel","value":{"error":{"type":"api_error","code":"platform_unavailable","message":"A plataforma está temporariamente indisponível para criar cobranças. Tente novamente em instantes.","details":{}}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"44b5c720-27b2-4247-8825-80364261154a":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"sk_live_… | sk_test_…","description":"Chave secreta do vendedor, criada no painel em **Desenvolvedores**.\n\nO valor em claro existe uma única vez, na criação. Guardamos só o\nhash SHA-256 - nem o suporte consegue recuperá-lo, o que é o ponto:\num dump do nosso banco não permite cobrar em nome de ninguém.\n\nA chave vai no **servidor**. Colocá-la no navegador do comprador a\nentrega a qualquer pessoa que abra a página.\n","scopes":["charges:write"],"schemeName":"apiKey"}}},"servers":{"ed9958ae-3134-4ef6-8d55-2744b0263cea":{"url":"https://api.usevext.com","description":"Produção"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"sk_live_… | sk_test_…","description":"Chave secreta do vendedor, criada no painel em **Desenvolvedores**.\n\nO valor em claro existe uma única vez, na criação. Guardamos só o\nhash SHA-256 - nem o suporte consegue recuperá-lo, o que é o ponto:\num dump do nosso banco não permite cobrar em nome de ninguém.\n\nA chave vai no **servidor**. Colocá-la no navegador do comprador a\nentrega a qualquer pessoa que abra a página.\n","scopes":["charges:write"],"schemeName":"apiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Chave secreta do vendedor, criada no painel em **Desenvolvedores**.\n\nO valor em claro existe uma única vez, na criação. Guardamos só o\nhash SHA-256 - nem o suporte consegue recuperá-lo, o que é o ponto:\num dump do nosso banco não permite cobrar em nome de ninguém.\n\nA chave vai no **servidor**. Colocá-la no navegador do comprador a\nentrega a qualquer pessoa que abra a página.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"apiKey","name":"Authorization"}],"title":"apiKey"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"vext","siteName":"Vext","title":"Criar cobrança - Vext","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-22T13:12:45.411Z","originalFileLocation":"api-reference/cobrancas/criar.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Cria uma cobrança PIX com split entre o vendedor e a plataforma, e devolve o payload copia-e-cola.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Vext\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/vext/1ynttjJ_6FW1Z8CJ/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/vext/1ynttjJ_6FW1Z8CJ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/vext/1ynttjJ_6FW1Z8CJ/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/vext/1ynttjJ_6FW1Z8CJ/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/vext/1ynttjJ_6FW1Z8CJ/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/vext/1ynttjJ_6FW1Z8CJ/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/vext/1ynttjJ_6FW1Z8CJ/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/vext/1ynttjJ_6FW1Z8CJ/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/vext/1ynttjJ_6FW1Z8CJ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Criar cobrança - Vext\">\u003cmeta data-mint-head property=\"og:description\" content=\"Cria uma cobrança PIX com split entre o vendedor e a plataforma, e devolve o payload copia-e-cola.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Vext\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.usevext.com/api-reference/cobrancas/criar\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://vext.mintlify.site/_mintlify/api/og/v2?division=Cobran%C3%A7as\u0026amp;title=Criar+cobran%C3%A7a\u0026amp;description=Cria+uma+cobran%C3%A7a+PIX+com+split+entre+o+vendedor+e+a+plataforma%2C+e+devolve+o+payload+copia-e-cola.\u0026amp;theme=5fdce344cf730a9d43aa6618\u0026amp;signature=2ea9fe35bb63e95b9a81ac77a99ebdf1b3fc57f1f089ac264097dc9301e7b12a\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Criar cobrança - Vext\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Cria uma cobrança PIX com split entre o vendedor e a plataforma, e devolve o payload copia-e-cola.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://vext.mintlify.site/_mintlify/api/og/v2?division=Cobran%C3%A7as\u0026amp;title=Criar+cobran%C3%A7a\u0026amp;description=Cria+uma+cobran%C3%A7a+PIX+com+split+entre+o+vendedor+e+a+plataforma%2C+e+devolve+o+payload+copia-e-cola.\u0026amp;theme=5fdce344cf730a9d43aa6618\u0026amp;signature=2ea9fe35bb63e95b9a81ac77a99ebdf1b3fc57f1f089ac264097dc9301e7b12a\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/vext/1ynttjJ_6FW1Z8CJ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Vext\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1A7A14\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.usevext.com/api-reference/cobrancas/criar\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/cobrancas/criar.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.usevext.com/#organization\",\"name\":\"Vext\",\"url\":\"https://docs.usevext.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/vext/kcwCRAttQYaZqJCy/logo/light.svg?fit=max\u0026auto=format\u0026n=kcwCRAttQYaZqJCy\u0026q=85\u0026s=fb9b46dfbd546322b281376800e5d841\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.usevext.com#website\",\"name\":\"Vext\",\"url\":\"https://docs.usevext.com\",\"publisher\":{\"@id\":\"https://docs.usevext.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.usevext.com/api-reference/cobrancas/criar#webpage\",\"url\":\"https://docs.usevext.com/api-reference/cobrancas/criar\",\"name\":\"Criar cobrança\",\"description\":\"Cria uma cobrança PIX com split entre o vendedor e a plataforma, e devolve o payload copia-e-cola.\",\"dateModified\":\"2026-09-22T13:12:45.411Z\",\"isPartOf\":{\"@id\":\"https://docs.usevext.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.usevext.com/api-reference/cobrancas/criar#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.usevext.com/api-reference/cobrancas/criar#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Vext\",\"item\":\"https://docs.usevext.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Criar cobrança\",\"item\":\"https://docs.usevext.com/api-reference/cobrancas/criar\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.usevext.com/api-reference/cobrancas/criar#apireference\",\"headline\":\"Criar cobrança\",\"name\":\"Criar cobrança\",\"description\":\"Cria uma cobrança PIX com split entre o vendedor e a plataforma, e devolve o payload copia-e-cola.\",\"url\":\"https://docs.usevext.com/api-reference/cobrancas/criar\",\"mainEntityOfPage\":{\"@id\":\"https://docs.usevext.com/api-reference/cobrancas/criar#webpage\"},\"dateModified\":\"2026-09-22T13:12:45.411Z\",\"publisher\":{\"@id\":\"https://docs.usevext.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.usevext.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Vext\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Vext","nav":{"global":null,"tabs":[{"tab":"Guias","pages":[{"title":"Guias","href":""}]},{"tab":"Referência da API","groups":[{"group":"Visão geral","pages":[{"title":"Visão geral","icon":"terminal","href":"/api-reference/introducao"}]},{"group":"Objetos","pages":[{"title":"Cobrança","icon":"receipt","href":"/api-reference/objetos/cobranca"},{"title":"Cartão guardado","icon":"vault","href":"/api-reference/objetos/cartao-guardado"},{"title":"Comprador","icon":"user","href":"/api-reference/objetos/comprador"},{"title":"Saque","description":"Campo a campo do objeto que as rotas de saque devolvem.","icon":"banknote","href":"/api-reference/objetos/saque"}]},{"group":"Cobranças","pages":[{"title":"Criar cobrança","icon":"circle-dollar-sign","openapi":"api-reference/openapi.yaml POST /v1/charges","href":"/api-reference/cobrancas/criar"},{"title":"Listar cobranças","description":"Lista as cobranças da conta, da mais recente para a mais antiga.","icon":"list","openapi":"api-reference/openapi.yaml GET /v1/charges","href":"/api-reference/cobrancas/listar"},{"title":"Consultar cobrança","icon":"file-search","openapi":"api-reference/openapi.yaml GET /v1/charges/{code}","href":"/api-reference/cobrancas/consultar"},{"title":"Estornar cobrança","icon":"rotate-ccw","openapi":"api-reference/openapi.yaml POST /v1/charges/{code}/refund","href":"/api-reference/cobrancas/estornar"},{"title":"Grade de parcelas","icon":"table","openapi":"api-reference/openapi.yaml GET /v1/installments","href":"/api-reference/cobrancas/parcelas"}]},{"group":"Cartão no navegador","pages":[{"title":"A biblioteca vext.js","sidebarTitle":"vext.js","icon":"code","openapi":"api-reference/openapi.yaml GET /v1/vext.js","href":"/api-reference/cartao/vext-js"},{"title":"Configuração para o navegador","sidebarTitle":"client_config","icon":"browser","openapi":"api-reference/openapi.yaml GET /v1/client_config","href":"/api-reference/cartao/client-config"},{"title":"Emitir token de autenticação","icon":"shield-check","openapi":"api-reference/openapi.yaml POST /v1/three_ds_tokens","href":"/api-reference/cartao/three-ds-token"}]},{"group":"Cartões","pages":[{"title":"Guardar cartão","icon":"vault","openapi":"api-reference/openapi.yaml POST /v1/cards","href":"/api-reference/cartoes/guardar"},{"title":"Listar cartões guardados","icon":"credit-card","openapi":"api-reference/openapi.yaml GET /v1/cards","href":"/api-reference/cartoes/listar"},{"title":"Consultar cartão guardado","icon":"file-search","openapi":"api-reference/openapi.yaml GET /v1/cards/{code}","href":"/api-reference/cartoes/consultar"},{"title":"Remover cartão guardado","icon":"trash-2","openapi":"api-reference/openapi.yaml DELETE /v1/cards/{code}","href":"/api-reference/cartoes/remover"}]},{"group":"Saldo","pages":[{"title":"Consultar saldo","icon":"wallet","openapi":"api-reference/openapi.yaml GET /v1/balance","href":"/api-reference/saldo/consultar"}]},{"group":"Saques","pages":[{"title":"Solicitar saque","icon":"banknote","openapi":"api-reference/openapi.yaml POST /v1/withdrawals","href":"/api-reference/saques/solicitar"},{"title":"Listar saques","icon":"list","openapi":"api-reference/openapi.yaml GET /v1/withdrawals","href":"/api-reference/saques/listar"},{"title":"Consultar saque","icon":"search","openapi":"api-reference/openapi.yaml GET /v1/withdrawals/{code}","href":"/api-reference/saques/consultar"}]},{"group":"Eventos de cobrança","pages":[{"title":"charge.paid","icon":"badge-check","openapi":"api-reference/openapi.yaml webhook charge.paid","href":"/api-reference/webhooks/charge-paid"},{"title":"charge.failed","icon":"circle-x","openapi":"api-reference/openapi.yaml webhook charge.failed","href":"/api-reference/webhooks/charge-failed"},{"title":"charge.in_analysis","icon":"search","openapi":"api-reference/openapi.yaml webhook charge.in_analysis","href":"/api-reference/webhooks/charge-in-analysis"},{"title":"charge.refunded","icon":"undo-2","openapi":"api-reference/openapi.yaml webhook charge.refunded","href":"/api-reference/webhooks/charge-refunded"},{"title":"charge.chargedback","icon":"gavel","openapi":"api-reference/openapi.yaml webhook charge.chargedback","href":"/api-reference/webhooks/charge-chargedback"}]},{"group":"Eventos de contestação (MED)","pages":[{"title":"med.opened","icon":"shield-alert","openapi":"api-reference/openapi.yaml webhook med.opened","href":"/api-reference/webhooks/med-opened"},{"title":"med.approved","icon":"thumbs-down","openapi":"api-reference/openapi.yaml webhook med.approved","href":"/api-reference/webhooks/med-approved"},{"title":"med.rejected","icon":"thumbs-up","openapi":"api-reference/openapi.yaml webhook med.rejected","href":"/api-reference/webhooks/med-rejected"}]},{"group":"Eventos de saque","pages":[{"title":"withdrawal.paid","icon":"banknote","openapi":"api-reference/openapi.yaml webhook withdrawal.paid","href":"/api-reference/webhooks/withdrawal-paid"}]}]}]},"basePath":"","title":"Criar cobrança - Vext","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C-hEh3I2.js","utils-CnF4QiUD.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C7PVNbel.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-8ytevL2A.js","snippetPresets-BT1alx3v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BLXC0i_W.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CyLIGI9_.js","shallow-DC0lGVIW.js","getApiPlaygroundDisplay-CgDQ85tN.js","CodeSnippet-6-I-Gpv9.js","CodeSnippets-BAk1kDdu.js","Page-C945cI-W.js","getPastedJson-B276RuWN.js","icon-BqP8etTm.js","MethodPill-DM6sbxG1.js","DuplicateIcon-PyJglOaE.js","createIcon-CMeOMAc_.js","DynamicMarkdown-BoyYAA8K.js","SectionHeading-DAYv3gvZ.js","axios-vUo_bRtp.js","Markdown-BhTTmazV.js","clsx-CR-RHrVC.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CBUH0-zX.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BmARFYNC.js"]}