A rota responde nos dois sentidos, e você escolhe pelo parâmetro:
Você manda
A pergunta
A resposta está em
amount=10000
”cobro R$ 100,00 — recebo quanto?”
net_amount
net_amount=10000
”quero receber R$ 100,00 — cobro quanto?”
amount
A segunda existe para que você não precise refazer a nossa conta de taxa do seu lado: duas
implementações da mesma conta divergem no dia em que a taxa mudar de forma.
E ela não é a taxa somada ao valor. Acrescentar 5,99% sobre R100,00daˊR 105,99 — e o que
sobra de R105,99depoisdedescontadaataxaeˊR 97,65, não cem. A conta certa é
teto((líquido + fixo) / (1 − percentual)), e o arredondamento é sempre em desfavor da
plataforma: você nunca recebe menos do que pediu.
Porque o preço muda com ela, e a bandeira só é conhecida quando o comprador digita os seis primeiros
dígitos.Mostre a chave default antes disso: ela é o pior caso, então o preço nunca sobe depois de o
comprador ver o primeiro número. Quando o vext.js devolver
brand, troque para a chave daquela bandeira.
E isso é a informação, não uma redundância: o juro do parcelamento é cobrado do comprador e sobe
o total_cents, mas a taxa incide sobre o preço do produto. Oferecer 12x não lhe custa um centavo a
mais que oferecer 1x.O modelo inteiro — sobre o que a taxa incide, o que é a antecipação e quando o dinheiro cai — está em
Taxas e liquidação.
available: false, e unavailable_reason diz por quê. Trate por ele, nunca pela message.Os seis primeiros motivos são configuração, e cada um tem dono diferente: a plataforma, a conta que
atende a sua loja, o interruptor da sua conta, o status do seu cadastro, a credencial e o seu
contrato de taxa. amount_below_minimum é outra coisa — o cartão está de pé, o que não cabe é
aquele valor.
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 valor a parcelar, em centavos inteiros - o preço do seu
produto. Excludente com net_amount, e um dos dois é
obrigatório: aceitar os dois deixaria para nós a escolha de qual
honrar quando eles não combinassem.
Quanto você quer receber, em centavos inteiros. A resposta
devolve em amount o preço de vitrine que produz esse líquido
depois da taxa.
Não é a taxa somada ao valor: acrescentar 5,99% sobre R$ 100,00
dá R$ 105,99, e o que sobra de R$ 105,99 depois de descontada a
taxa é R$ 97,65 - não cem. A conta certa é
teto((líquido + fixo) / (1 − percentual)), e o arredondamento
é sempre em desfavor da plataforma: você nunca recebe menos que
pediu.
O teto que você quer impor. O limite real é o menor entre
ele, a escada por valor e a taxa da sua conta - um número maior
aqui não amplia nada.
Required range: 1 <= x <= 12
Response
A grade, ou o motivo de não haver uma.
A grade de parcelamento para um valor, como o SEU SERVIDOR a
recebe. Todo campo está sempre presente - message e
unavailable_reason vêm null quando há grade, e matrix vem
{} quando não há.
O que o comprador paga à vista, em centavos inteiros - e o
número que você manda em amount na criação da cobrança.
Consultado por amount, é ele de volta. Consultado por
net_amount, é o preço de vitrine que produz o líquido pedido.
null só num caso: consulta por net_amount numa loja sem
cartão. Converter um alvo líquido com a taxa de cartão de quem
não vende no cartão daria um número que não vale para nada.
O que você recebe, em centavos inteiros: amount menos a
taxa da sua conta. null quando não há grade.
Não muda com o número de parcelas. O juro do parcelamento é
cobrado do comprador e sobe o total_cents, mas a taxa incide
sobre o preço do produto - parcelar não lhe custa nada a mais.
Por que não há grade. Trate por ele, nunca pela message.
As seis primeiras são chaves de configuração, e cada uma tem
dono diferente: a plataforma, a conta Pagar.me que atende a sua
loja, o interruptor da sua conta, o status do seu cadastro, a
credencial do provedor e o seu contrato de taxa.
amount_below_minimum é outra coisa - o cartão está de pé, o
que não cabe é este valor.
As bandeiras aceitas na sua conta, e lista vazia quando não
há grade. São exatamente as chaves de matrix menos default:
anunciar aqui uma bandeira que a matriz não precifica faria o
seu seletor oferecer uma opção sem preço.
Quando o dinheiro cai, em dias, e null quando não há
grade.
Em D+X e não numa data: a data depende do calendário de
feriados bancários, que muda por ano e por praça, e uma data
errada numa API de pagamento é pior que data nenhuma. A de
verdade é a da Pagar.me, e só existe depois da venda.
Mapa de bandeira para lista de opções. Objeto vazio, nunca
lista vazia, quando não há grade.
Show child attributes
{"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.4111","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":"custom-rbac-roles","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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/cobrancas/parcelas","slug":"/api-reference/cobrancas/parcelas","pageMetadata":{"title":"Grade de parcelas","description":"A tabela de parcelamento para um valor, calculada pelo mesmo código que roda no checkout.","icon":"table","openapi":"api-reference/openapi.yaml GET /v1/installments","href":"/api-reference/cobrancas/parcelas"},"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: \"A tabela de parcelamento para um valor, calculada pelo mesmo código que roda no checkout.\"\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`,annotation:`annotation`,code:`code`,math:`math`,mi:`mi`,mn:`mn`,mo:`mo`,mover:`mover`,mrow:`mrow`,p:`p`,semantics:`semantics`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Heading,Table,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`as-duas-perguntas`,children:`As duas perguntas`}),`\n`,_jsx(_components.p,{children:`A rota responde nos dois sentidos, e você escolhe pelo parâmetro:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Você manda`}),_jsx(_components.th,{children:`A pergunta`}),_jsx(_components.th,{children:`A resposta está em`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`amount=10000`})}),_jsx(_components.td,{children:`”cobro R$ 100,00 — recebo quanto?”`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`net_amount`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`net_amount=10000`})}),_jsx(_components.td,{children:`”quero receber R$ 100,00 — cobro quanto?”`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`amount`})})]})]})]}),`\n`,_jsx(_components.p,{children:`A segunda existe para que você não precise refazer a nossa conta de taxa do seu lado: duas\nimplementações da mesma conta divergem no dia em que a taxa mudar de forma.`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`E ela `,_jsx(_components.strong,{children:`não`}),` é a taxa somada ao valor. Acrescentar `,_jsx(_components.code,{children:`5,99%`}),` sobre R`,_jsxs(_components.span,{className:`katex`,children:[_jsx(_components.span,{className:`katex-mathml`,children:_jsx(_components.math,{xmlns:`http://www.w3.org/1998/Math/MathML`,children:_jsxs(_components.semantics,{children:[_jsxs(_components.mrow,{children:[_jsx(_components.mn,{children:`100`}),_jsx(_components.mo,{separator:`true`,children:`,`}),_jsx(_components.mn,{children:`00`}),_jsx(_components.mi,{children:`d`}),_jsxs(_components.mover,{accent:`true`,children:[_jsx(_components.mi,{children:`a`}),_jsx(_components.mo,{children:`ˊ`})]}),_jsx(_components.mi,{children:`R`})]}),_jsx(_components.annotation,{encoding:`application/x-tex`,children:` 100,00 dá R`})]})})}),_jsx(_components.span,{className:`katex-html`,\"aria-hidden\":`true`,children:_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`0.8889em`,verticalAlign:`-0.1944em`}}),_jsx(_components.span,{className:`mord`,children:`100`}),_jsx(_components.span,{className:`mpunct`,children:`,`}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.1667em`}}),_jsx(_components.span,{className:`mord`,children:`00`}),_jsx(_components.span,{className:`mord mathnormal`,children:`d`}),_jsx(_components.span,{className:`mord accent`,children:_jsx(_components.span,{className:`vlist-t`,children:_jsx(_components.span,{className:`vlist-r`,children:_jsxs(_components.span,{className:`vlist`,style:{height:`0.6944em`},children:[_jsxs(_components.span,{style:{top:`-3em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3em`}}),_jsx(_components.span,{className:`mord mathnormal`,children:`a`})]}),_jsxs(_components.span,{style:{top:`-3em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3em`}}),_jsx(_components.span,{className:`accent-body`,style:{left:`-0.25em`},children:_jsx(_components.span,{className:`mord`,children:`ˊ`})})]})]})})})}),_jsx(_components.span,{className:`mord mathnormal`,style:{marginRight:`0.0077em`},children:`R`})]})})]}),` 105,99 — e o que\nsobra de R`,_jsxs(_components.span,{className:`katex`,children:[_jsx(_components.span,{className:`katex-mathml`,children:_jsx(_components.math,{xmlns:`http://www.w3.org/1998/Math/MathML`,children:_jsxs(_components.semantics,{children:[_jsxs(_components.mrow,{children:[_jsx(_components.mn,{children:`105`}),_jsx(_components.mo,{separator:`true`,children:`,`}),_jsx(_components.mn,{children:`99`}),_jsx(_components.mi,{children:`d`}),_jsx(_components.mi,{children:`e`}),_jsx(_components.mi,{children:`p`}),_jsx(_components.mi,{children:`o`}),_jsx(_components.mi,{children:`i`}),_jsx(_components.mi,{children:`s`}),_jsx(_components.mi,{children:`d`}),_jsx(_components.mi,{children:`e`}),_jsx(_components.mi,{children:`d`}),_jsx(_components.mi,{children:`e`}),_jsx(_components.mi,{children:`s`}),_jsx(_components.mi,{children:`c`}),_jsx(_components.mi,{children:`o`}),_jsx(_components.mi,{children:`n`}),_jsx(_components.mi,{children:`t`}),_jsx(_components.mi,{children:`a`}),_jsx(_components.mi,{children:`d`}),_jsx(_components.mi,{children:`a`}),_jsx(_components.mi,{children:`a`}),_jsx(_components.mi,{children:`t`}),_jsx(_components.mi,{children:`a`}),_jsx(_components.mi,{children:`x`}),_jsx(_components.mi,{children:`a`}),_jsxs(_components.mover,{accent:`true`,children:[_jsx(_components.mi,{children:`e`}),_jsx(_components.mo,{children:`ˊ`})]}),_jsx(_components.mi,{children:`R`})]}),_jsx(_components.annotation,{encoding:`application/x-tex`,children:` 105,99 depois de descontada a taxa é R`})]})})}),_jsx(_components.span,{className:`katex-html`,\"aria-hidden\":`true`,children:_jsxs(_components.span,{className:`base`,children:[_jsx(_components.span,{className:`strut`,style:{height:`0.8889em`,verticalAlign:`-0.1944em`}}),_jsx(_components.span,{className:`mord`,children:`105`}),_jsx(_components.span,{className:`mpunct`,children:`,`}),_jsx(_components.span,{className:`mspace`,style:{marginRight:`0.1667em`}}),_jsx(_components.span,{className:`mord`,children:`99`}),_jsx(_components.span,{className:`mord mathnormal`,children:`d`}),_jsx(_components.span,{className:`mord mathnormal`,children:`e`}),_jsx(_components.span,{className:`mord mathnormal`,children:`p`}),_jsx(_components.span,{className:`mord mathnormal`,children:`o`}),_jsx(_components.span,{className:`mord mathnormal`,children:`i`}),_jsx(_components.span,{className:`mord mathnormal`,children:`s`}),_jsx(_components.span,{className:`mord mathnormal`,children:`d`}),_jsx(_components.span,{className:`mord mathnormal`,children:`e`}),_jsx(_components.span,{className:`mord mathnormal`,children:`d`}),_jsx(_components.span,{className:`mord mathnormal`,children:`esco`}),_jsx(_components.span,{className:`mord mathnormal`,children:`n`}),_jsx(_components.span,{className:`mord mathnormal`,children:`t`}),_jsx(_components.span,{className:`mord mathnormal`,children:`a`}),_jsx(_components.span,{className:`mord mathnormal`,children:`d`}),_jsx(_components.span,{className:`mord mathnormal`,children:`aa`}),_jsx(_components.span,{className:`mord mathnormal`,children:`t`}),_jsx(_components.span,{className:`mord mathnormal`,children:`a`}),_jsx(_components.span,{className:`mord mathnormal`,children:`x`}),_jsx(_components.span,{className:`mord mathnormal`,children:`a`}),_jsx(_components.span,{className:`mord accent`,children:_jsx(_components.span,{className:`vlist-t`,children:_jsx(_components.span,{className:`vlist-r`,children:_jsxs(_components.span,{className:`vlist`,style:{height:`0.6944em`},children:[_jsxs(_components.span,{style:{top:`-3em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3em`}}),_jsx(_components.span,{className:`mord mathnormal`,children:`e`})]}),_jsxs(_components.span,{style:{top:`-3em`},children:[_jsx(_components.span,{className:`pstrut`,style:{height:`3em`}}),_jsx(_components.span,{className:`accent-body`,style:{left:`-0.1944em`},children:_jsx(_components.span,{className:`mord`,children:`ˊ`})})]})]})})})}),_jsx(_components.span,{className:`mord mathnormal`,style:{marginRight:`0.0077em`},children:`R`})]})})]}),` 97,65, não cem. A conta certa é\n`,_jsx(_components.code,{children:`teto((líquido + fixo) / (1 − percentual))`}),`, e o arredondamento é sempre em desfavor da\nplataforma: você nunca recebe menos do que pediu.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`por-que-a-grade-vem-por-bandeira`,children:`Por que a grade vem por bandeira`}),`\n`,_jsx(_components.p,{children:`Porque o preço muda com ela, e a bandeira só é conhecida quando o comprador digita os seis primeiros\ndígitos.`}),`\n`,_jsxs(_components.p,{children:[`Mostre a chave `,_jsx(_components.code,{children:`default`}),` antes disso: ela é o `,_jsx(_components.strong,{children:`pior caso`}),`, então o preço nunca sobe depois de o\ncomprador ver o primeiro número. Quando o `,_jsx(_components.a,{href:`/api-reference/cartao/vext-js`,children:_jsx(_components.code,{children:`vext.js`})}),` devolver\n`,_jsx(_components.code,{children:`brand`}),`, troque para a chave daquela bandeira.`]}),`\n`,_jsxs(Heading,{level:`2`,id:`net_cents-é-igual-em-todas-as-linhas`,children:[_jsx(_components.code,{children:`net_cents`}),` é igual em todas as linhas`]}),`\n`,_jsxs(_components.p,{children:[`E isso é a informação, não uma redundância: o juro do parcelamento é cobrado `,_jsx(_components.strong,{children:`do comprador`}),` e sobe\no `,_jsx(_components.code,{children:`total_cents`}),`, mas a taxa incide sobre o preço do produto. Oferecer 12x não lhe custa um centavo a\nmais que oferecer 1x.`]}),`\n`,_jsxs(_components.p,{children:[`O modelo inteiro — sobre o que a taxa incide, o que é a antecipação e quando o dinheiro cai — está em\n`,_jsx(_components.a,{href:`/essenciais/taxas-e-liquidacao`,children:`Taxas e liquidação`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`quando-não-há-grade`,children:`Quando não há grade`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`available: false`}),`, e `,_jsx(_components.code,{children:`unavailable_reason`}),` diz por quê. Trate por ele, nunca pela `,_jsx(_components.code,{children:`message`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Os seis primeiros motivos são configuração, e cada um tem dono diferente: a plataforma, a conta que\natende a sua loja, o interruptor da sua conta, o status do seu cadastro, a credencial e o seu\ncontrato de taxa. `,_jsx(_components.code,{children:`amount_below_minimum`}),` é outra coisa — o cartão está de pé, o que não cabe é\n`,_jsx(_components.strong,{children:`aquele valor`}),`.`]})]})}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":"Grade de parcelas","description":"A tabela de parcelamento para um valor, calculada pelo mesmo código que roda no checkout.","icon":"table","openapi":"api-reference/openapi.yaml GET /v1/installments","href":"/api-reference/cobrancas/parcelas"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"As duas perguntas","slug":"as-duas-perguntas","depth":2,"children":[]},{"title":"Por que a grade vem por bandeira","slug":"por-que-a-grade-vem-por-bandeira","depth":2,"children":[]},{"title":"net_cents é igual em todas as linhas","slug":"net_cents-é-igual-em-todas-as-linhas","depth":2,"children":[]},{"title":"Quando não há grade","slug":"quando-não-há-grade","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Cobranças"],"summary":"Grade de parcelas","operationId":"listInstallments","description":"A tabela de parcelamento para um valor, calculada pelo mesmo código que roda no checkout.","security":["3057d669-0c7e-4194-acc2-255cba0f7b9c"],"parameters":["5e676826-cf4b-45cc-8f2f-4d01638ff85e","eafe30ca-b8bf-4897-bb2f-783f1dcd461f","705573a1-7524-498e-8c18-466f066e4592"],"responses":{"200":"20302130-7334-4d98-87c9-819e1d8a6c28","401":"1d823ae7-da1c-40c1-8dba-2d814e1f05d6","403":"556ab9cc-2e2f-4a2c-94be-c0b705cf3347","422":"19f897fb-be26-478f-b0e4-9e0512944b6b","429":"be83618d-469c-4a1d-adb7-13e73c8133d7","500":"786e4823-4020-46ec-9f98-72c293c2d297"},"method":"get","type":"path","servers":["ed9958ae-3134-4ef6-8d55-2744b0263cea"],"path":"/v1/installments","baseUrlOptions":["https://api.usevext.com"],"title":"Grade de parcelas","codeSamples":[],"requestExampleLanguages":["bash","php","javascript","python"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"5e676826-cf4b-45cc-8f2f-4d01638ff85e":{"name":"amount","in":"query","description":"O valor a parcelar, em **centavos inteiros** - o preço do seu\nproduto. **Excludente com `net_amount`**, e um dos dois é\nobrigatório: aceitar os dois deixaria para nós a escolha de qual\nhonrar quando eles não combinassem.\n","schema":{"type":"integer","minimum":1,"description":"O valor a parcelar, em **centavos inteiros** - o preço do seu\nproduto. **Excludente com `net_amount`**, e um dos dois é\nobrigatório: aceitar os dois deixaria para nós a escolha de qual\nhonrar quando eles não combinassem.\n","uniqueKey":"","typeLabel":"integer"},"example":10000},"eafe30ca-b8bf-4897-bb2f-783f1dcd461f":{"name":"net_amount","in":"query","description":"Quanto você quer **receber**, em centavos inteiros. A resposta\ndevolve em `amount` o preço de vitrine que produz esse líquido\ndepois da taxa.\n\nNão é a taxa somada ao valor: acrescentar 5,99% sobre R$ 100,00\ndá R$ 105,99, e o que sobra de R$ 105,99 depois de descontada a\ntaxa é R$ 97,65 - não cem. A conta certa é\n`teto((líquido + fixo) / (1 − percentual))`, e o arredondamento\né sempre em desfavor da plataforma: você nunca recebe menos que\npediu.\n\n**Excludente com `amount`.**\n","schema":{"type":"integer","minimum":1,"description":"Quanto você quer **receber**, em centavos inteiros. A resposta\ndevolve em `amount` o preço de vitrine que produz esse líquido\ndepois da taxa.\n\nNão é a taxa somada ao valor: acrescentar 5,99% sobre R$ 100,00\ndá R$ 105,99, e o que sobra de R$ 105,99 depois de descontada a\ntaxa é R$ 97,65 - não cem. A conta certa é\n`teto((líquido + fixo) / (1 − percentual))`, e o arredondamento\né sempre em desfavor da plataforma: você nunca recebe menos que\npediu.\n\n**Excludente com `amount`.**\n","uniqueKey":"","typeLabel":"integer"},"example":10000},"705573a1-7524-498e-8c18-466f066e4592":{"name":"max_installments","in":"query","description":"O teto que você quer impor. O limite real é o **menor** entre\nele, a escada por valor e a taxa da sua conta - um número maior\naqui não amplia nada.\n","schema":{"type":"integer","minimum":1,"maximum":12,"description":"O teto que você quer impor. O limite real é o **menor** entre\nele, a escada por valor e a taxa da sua conta - um número maior\naqui não amplia nada.\n","uniqueKey":"","typeLabel":"integer"}}},"responses":{"20302130-7334-4d98-87c9-819e1d8a6c28":{"description":"A grade, ou o motivo de não haver uma.","content":{"application/json":{"schema":{"type":"object","description":"A grade de parcelamento para um valor, como o SEU SERVIDOR a\nrecebe. **Todo campo está sempre presente** - `message` e\n`unavailable_reason` vêm `null` quando há grade, e `matrix` vem\n`{}` quando não há.\n","required":["object","amount","net_amount","platform_fee","available","unavailable_reason","message","brands","settlement","matrix"],"properties":{"object":{"type":"string","const":"installments","isRequired":true,"uniqueKey":"object","typeLabel":"string"},"amount":{"oneOf":[{"type":"integer","description":"O que o comprador paga à vista, em centavos inteiros - e o\nnúmero que você manda em `amount` na criação da cobrança.\n\nConsultado por `amount`, é ele de volta. Consultado por\n`net_amount`, é o preço de vitrine que produz o líquido pedido.\n\n`null` só num caso: consulta por `net_amount` numa loja sem\ncartão. Converter um alvo líquido com a taxa de cartão de quem\nnão vende no cartão daria um número que não vale para nada.\n","format":"int64","isRequired":true,"uniqueKey":"amount.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","description":"O que o comprador paga à vista, em centavos inteiros - e o\nnúmero que você manda em `amount` na criação da cobrança.\n\nConsultado por `amount`, é ele de volta. Consultado por\n`net_amount`, é o preço de vitrine que produz o líquido pedido.\n\n`null` só num caso: consulta por `net_amount` numa loja sem\ncartão. Converter um alvo líquido com a taxa de cartão de quem\nnão vende no cartão daria um número que não vale para nada.\n","isRequired":true,"uniqueKey":"amount.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"amount","typeLabel":"integer\u003cint64> | null"},"net_amount":{"oneOf":[{"type":"integer","description":"O que **você recebe**, em centavos inteiros: `amount` menos a\ntaxa da sua conta. `null` quando não há grade.\n\nNão muda com o número de parcelas. O juro do parcelamento é\ncobrado do comprador e sobe o `total_cents`, mas a taxa incide\nsobre o preço do produto - parcelar não lhe custa nada a mais.\n","format":"int64","isRequired":true,"uniqueKey":"net_amount.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","description":"O que **você recebe**, em centavos inteiros: `amount` menos a\ntaxa da sua conta. `null` quando não há grade.\n\nNão muda com o número de parcelas. O juro do parcelamento é\ncobrado do comprador e sobe o `total_cents`, mas a taxa incide\nsobre o preço do produto - parcelar não lhe custa nada a mais.\n","isRequired":true,"uniqueKey":"net_amount.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"net_amount","typeLabel":"integer\u003cint64> | null"},"platform_fee":{"oneOf":[{"type":"integer","description":"A taxa da sua conta sobre esta venda, em centavos inteiros -\n`amount − net_amount`. `null` quando não há grade.\n","format":"int64","isRequired":true,"uniqueKey":"platform_fee.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","description":"A taxa da sua conta sobre esta venda, em centavos inteiros -\n`amount − net_amount`. `null` quando não há grade.\n","isRequired":true,"uniqueKey":"platform_fee.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"platform_fee","typeLabel":"integer\u003cint64> | null"},"available":{"type":"boolean","isRequired":true,"uniqueKey":"available","typeLabel":"boolean"},"unavailable_reason":{"oneOf":[{"type":"string","description":"Por que não há grade. Trate por ele, nunca pela `message`.\n\nAs seis primeiras são chaves de configuração, e cada uma tem\ndono diferente: a plataforma, a conta Pagar.me que atende a sua\nloja, o interruptor da sua conta, o status do seu cadastro, a\ncredencial do provedor e o seu contrato de taxa.\n`amount_below_minimum` é outra coisa - o cartão está de pé, o\nque não cabe é este valor.\n","enum":["platform_disabled","gateway_account_disabled","seller_disabled","seller_cannot_transact","no_credential","fee_disabled","amount_below_minimum",null],"isRequired":true,"uniqueKey":"unavailable_reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Por que não há grade. Trate por ele, nunca pela `message`.\n\nAs seis primeiras são chaves de configuração, e cada uma tem\ndono diferente: a plataforma, a conta Pagar.me que atende a sua\nloja, o interruptor da sua conta, o status do seu cadastro, a\ncredencial do provedor e o seu contrato de taxa.\n`amount_below_minimum` é outra coisa - o cartão está de pé, o\nque não cabe é este valor.\n","enum":["platform_disabled","gateway_account_disabled","seller_disabled","seller_cannot_transact","no_credential","fee_disabled","amount_below_minimum",null],"isRequired":true,"uniqueKey":"unavailable_reason.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"unavailable_reason","typeLabel":"enum\u003cstring> | null"},"message":{"oneOf":[{"type":"string","description":"A frase em português, para o seu log. Não é contrato.","isRequired":true,"uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","description":"A frase em português, para o seu log. Não é contrato.","isRequired":true,"uniqueKey":"message.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"message","typeLabel":"string | null"},"brands":{"type":"array","items":{"type":"string","enum":["visa","mastercard","elo","hipercard","amex","diners","discover","aura"],"uniqueKey":"brands.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"As bandeiras aceitas na sua conta, e **lista vazia** quando não\nhá grade. São exatamente as chaves de `matrix` menos `default`:\nanunciar aqui uma bandeira que a matriz não precifica faria o\nseu seletor oferecer uma opção sem preço.\n","isRequired":true,"uniqueKey":"brands","typeLabel":"enum\u003cstring>[]"},"settlement":{"oneOf":[{"type":"object","description":"Quando o dinheiro cai, em **dias**, e `null` quando não há\ngrade.\n\nEm D+X e não numa data: a data depende do calendário de\nferiados bancários, que muda por ano e por praça, e uma data\nerrada numa API de pagamento é pior que data nenhuma. A de\nverdade é a da Pagar.me, e só existe depois da venda.\n","required":["anticipated","delay_days"],"properties":{"anticipated":{"type":"boolean","description":"A sua conta antecipa os recebíveis do cartão?","isRequired":true,"uniqueKey":"settlement.oneOf.0.anticipated","typeLabel":"boolean"},"delay_days":{"oneOf":[{"type":"integer","description":"O X do D+X, contado da aprovação. `null` sem antecipação -\naí cada parcela é liquidada no vencimento do arranjo, e não\nhá um número só que descreva a venda inteira.\n","example":2,"isRequired":true,"uniqueKey":"settlement.oneOf.0.delay_days.oneOf.0","typeLabel":"integer"},{"type":"null","description":"O X do D+X, contado da aprovação. `null` sem antecipação -\naí cada parcela é liquidada no vencimento do arranjo, e não\nhá um número só que descreva a venda inteira.\n","example":2,"isRequired":true,"uniqueKey":"settlement.oneOf.0.delay_days.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"settlement.oneOf.0.delay_days","typeLabel":"integer | null"}},"isRequired":true,"uniqueKey":"settlement.oneOf.0","typeLabel":"object"},{"type":"null","description":"Quando o dinheiro cai, em **dias**, e `null` quando não há\ngrade.\n\nEm D+X e não numa data: a data depende do calendário de\nferiados bancários, que muda por ano e por praça, e uma data\nerrada numa API de pagamento é pior que data nenhuma. A de\nverdade é a da Pagar.me, e só existe depois da venda.\n","required":["anticipated","delay_days"],"properties":{"anticipated":{"type":"boolean","description":"A sua conta antecipa os recebíveis do cartão?"},"delay_days":{"oneOf":[{"type":"integer","description":"O X do D+X, contado da aprovação. `null` sem antecipação -\naí cada parcela é liquidada no vencimento do arranjo, e não\nhá um número só que descreva a venda inteira.\n","example":2},{"type":"null","description":"O X do D+X, contado da aprovação. `null` sem antecipação -\naí cada parcela é liquidada no vencimento do arranjo, e não\nhá um número só que descreva a venda inteira.\n","example":2}]}},"isRequired":true,"uniqueKey":"settlement.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"settlement","typeLabel":"object | null"},"matrix":{"type":"object","description":"Mapa de bandeira para lista de opções. **Objeto vazio**, nunca\nlista vazia, quando não há grade.\n","additionalProperties":{"type":"array","items":{"type":"object","required":["installments","total_cents","installment_cents","interest_cents","net_cents","label"],"properties":{"installments":{"type":"integer","minimum":1,"maximum":12,"isRequired":true,"uniqueKey":"matrix.additionalProperties.items.[INDEX].installments","typeLabel":"integer"},"total_cents":{"type":"integer","description":"O que o comprador paga no total, já com juros.","format":"int64","isRequired":true,"uniqueKey":"matrix.additionalProperties.items.[INDEX].total_cents","typeLabel":"integer\u003cint64>"},"installment_cents":{"type":"integer","description":"O valor de cada parcela.","format":"int64","isRequired":true,"uniqueKey":"matrix.additionalProperties.items.[INDEX].installment_cents","typeLabel":"integer\u003cint64>"},"interest_cents":{"type":"integer","description":"Os juros embutidos, em centavos inteiros. `0` nas parcelas sem\njuros. Eles viajam até a Pagar.me como um ITEM à parte, e é por\nisso que o comprador vê a conta separada na tela.\n","format":"int64","isRequired":true,"uniqueKey":"matrix.additionalProperties.items.[INDEX].interest_cents","typeLabel":"integer\u003cint64>"},"net_cents":{"type":"integer","description":"O que **você recebe** nesta opção - o mesmo `net_amount` do\ntopo, repetido aqui para que o seu seletor não precise cruzar\ndois níveis do JSON.\n\nÉ **igual em todas as linhas**, e isso é a informação: o juro do\nparcelamento sai do bolso do comprador, e a taxa incide sobre o\npreço do produto. Oferecer 12x não lhe custa um centavo a mais\nque oferecer 1x.\n","format":"int64","isRequired":true,"uniqueKey":"matrix.additionalProperties.items.[INDEX].net_cents","typeLabel":"integer\u003cint64>"},"label":{"type":"string","description":"A opção já escrita para a tela, em português.","example":"12x de R$ 10,65","isRequired":true,"uniqueKey":"matrix.additionalProperties.items.[INDEX].label","typeLabel":"string"}},"uniqueKey":"matrix.additionalProperties.items.[INDEX]","typeLabel":"object"},"uniqueKey":"matrix.additionalProperties","typeLabel":"object[]"},"isRequired":true,"uniqueKey":"matrix","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"object":"installments","amount":123,"net_amount":123,"platform_fee":123,"available":true,"unavailable_reason":"platform_disabled","message":"\u003cstring>","brands":["visa"],"settlement":{"anticipated":true,"delay_days":2},"matrix":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"1d823ae7-da1c-40c1-8dba-2d814e1f05d6":{"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"},"556ab9cc-2e2f-4a2c-94be-c0b705cf3347":{"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"},"19f897fb-be26-478f-b0e4-9e0512944b6b":{"description":"Campos inválidos.","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":{"amount":["O valor deve ser um inteiro em centavos (R$ 10,00 = 1000)."]}}}}},"exampleType":"examples"}},"exampleType":"examples"},"be83618d-469c-4a1d-adb7-13e73c8133d7":{"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"},"786e4823-4020-46ec-9f98-72c293c2d297":{"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"}},"security":{"3057d669-0c7e-4194-acc2-255cba0f7b9c":{"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:read"],"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:read"],"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":"Grade de parcelas - Vext","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-28T15:32:12.226Z","originalFileLocation":"api-reference/cobrancas/parcelas.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=\"A tabela de parcelamento para um valor, calculada pelo mesmo código que roda no checkout.\">\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=\"Grade de parcelas - Vext\">\u003cmeta data-mint-head property=\"og:description\" content=\"A tabela de parcelamento para um valor, calculada pelo mesmo código que roda no checkout.\">\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/parcelas\">\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=Grade+de+parcelas\u0026amp;description=A+tabela+de+parcelamento+para+um+valor%2C+calculada+pelo+mesmo+c%C3%B3digo+que+roda+no+checkout.\u0026amp;theme=5fdce344cf730a9d43aa6618\u0026amp;signature=d7aed62e68f20a883466be3baa8e520c80486fccfd4515fc4b183626f43261d7\">\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=\"Grade de parcelas - Vext\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"A tabela de parcelamento para um valor, calculada pelo mesmo código que roda no checkout.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://vext.mintlify.site/_mintlify/api/og/v2?division=Cobran%C3%A7as\u0026amp;title=Grade+de+parcelas\u0026amp;description=A+tabela+de+parcelamento+para+um+valor%2C+calculada+pelo+mesmo+c%C3%B3digo+que+roda+no+checkout.\u0026amp;theme=5fdce344cf730a9d43aa6618\u0026amp;signature=d7aed62e68f20a883466be3baa8e520c80486fccfd4515fc4b183626f43261d7\">\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/parcelas\">\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/parcelas.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/parcelas#webpage\",\"url\":\"https://docs.usevext.com/api-reference/cobrancas/parcelas\",\"name\":\"Grade de parcelas\",\"description\":\"A tabela de parcelamento para um valor, calculada pelo mesmo código que roda no checkout.\",\"dateModified\":\"2026-09-28T15:32:12.226Z\",\"isPartOf\":{\"@id\":\"https://docs.usevext.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.usevext.com/api-reference/cobrancas/parcelas#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.usevext.com/api-reference/cobrancas/parcelas#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Cobranças\",\"item\":\"https://docs.usevext.com/api-reference/cobrancas/criar\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Grade de parcelas\",\"item\":\"https://docs.usevext.com/api-reference/cobrancas/parcelas\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.usevext.com/api-reference/cobrancas/parcelas#apireference\",\"headline\":\"Grade de parcelas\",\"name\":\"Grade de parcelas\",\"description\":\"A tabela de parcelamento para um valor, calculada pelo mesmo código que roda no checkout.\",\"url\":\"https://docs.usevext.com/api-reference/cobrancas/parcelas\",\"mainEntityOfPage\":{\"@id\":\"https://docs.usevext.com/api-reference/cobrancas/parcelas#webpage\"},\"dateModified\":\"2026-09-28T15:32:12.226Z\",\"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\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Vext\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/cobrancas/parcelas.md","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","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","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","description":"Devolve o dinheiro ao comprador, no todo ou em parte.","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","description":"Uma tag e uma função: o navegador troca os dados do cartão por um token.","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":"Grade de parcelas - Vext","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}