Issue a full or partial refund for a paid payment. Requires an idempotency key. A payment can be refunded once, fully or partially: after a partial refund a new refund is rejected with REFUND_ALREADY_PERFORMED, and after a full refund with ALREADY_REFUNDED. While a refund is being processed, a new one is rejected with 400 REFUND_IN_PROGRESS. A partial refund additionally requires a settled payment and a processing route that supports partial refunds; otherwise it is rejected with PARTIAL_REFUND_NOT_SUPPORTED. When the payment carries splits, the refund is apportioned: every party is debited in proportion to what it received, including the originating company, and partial refunds use the same proportions. INSUFFICIENT_BALANCE_FOR_REFUND is evaluated against the originating company’s share only — a recipient that has already withdrawn its share goes negative instead of blocking the refund, and the shortfall is never moved onto the originating company. When the refund takes the counted volume of your verified CPF or CNPJ below a rewards prize that YuvexPay approved for it, the processing fee is not returned: your balance is debited the full amount returned to the payer, and the kept fee, debited from the originating company only, can take the available balance negative.
YuvexPay API key. Include as Authorization: Bearer ypk_<env>_<kid>_<secret> where <env> is test (sandbox) or live (production). Create and manage keys in the dashboard under Settings > API Keys.
A unique string to ensure the request is processed only once. Must be unique per request. Valid for 24 hours. Successful (2xx) responses are stored and replayed for the key. On POST /v1/payments, a 502 PROVIDER_TEMPORARILY_UNAVAILABLE for a boleto payment is stored and replayed too: to recover that payment, repeat the request once with the same externalId and a new key. A retry of an earlier card payment request now returns 400 CARD_PAYMENTS_NOT_AVAILABLE_VIA_API instead of the stored response (201 or 502): recover that payment with GET /v1/payments/txid/{txId}, or with a create request with the same externalId, mode: "hosted" and methods: ["CARD"], no card object or card fields, and a new key.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"YuvexPay","colors":{"primary":"#16A34A","light":"#07C983","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/yuvexpay/_p0fopc5ZJwqr6Ao/logo/light.png?fit=max\u0026auto=format\u0026n=_p0fopc5ZJwqr6Ao\u0026q=85\u0026s=85eb8014f41b3db8d62050d2ff2d17eb","dark":"https://mintcdn.com/yuvexpay/_p0fopc5ZJwqr6Ao/logo/dark.png?fit=max\u0026auto=format\u0026n=_p0fopc5ZJwqr6Ao\u0026q=85\u0026s=bb76c5782cd7c2617b6337f945d8ce09"},"favicon":"https://mintcdn.com/yuvexpay/y4ZbUn0Z_aeTofU3/favicon.svg?fit=max\u0026auto=format\u0026n=y4ZbUn0Z_aeTofU3\u0026q=85\u0026s=149e82b739356ac0368489279ddb2785","api":{},"navbar":{"links":[{"href":"mailto:support@yuvexpay.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.yuvexpay.com"}},"footer":{"socials":{"github":"https://github.com/yuvexpay"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Dashboard","icon":"gauge","href":"https://app.yuvexpay.com"},{"anchor":"API status","icon":"signal","href":"https://status.yuvexpay.com"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"yuvexpay","hasAudioNarration":false,"actualSubdomain":"yuvexpay","customDomains":["docs.yuvexpay.com"],"gitSource":{"type":"github","owner":"yuvexpay","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6add2ecb41bc09b755441f21","collectionId":"f7c0a0d1-3dc0-4c6f-9c35-f75bb0f47542","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6add2ecb41bc09b755441f21"},"entitlements":{},"buildId":"6add2ecb41bc09b755441f21","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"API reference","count":33},{"language":"default","tag":"Products","count":13},{"language":"default","tag":"Guides","count":13},{"language":"default","tag":"Payments","count":8},{"language":"default","tag":"Core concepts","count":6},{"language":"default","tag":"Customers","count":5},{"language":"default","tag":"Withdrawals","count":4},{"language":"default","tag":"Documents","count":3},{"language":"default","tag":"Getting started","count":2},{"language":"default","tag":"Authentication","count":1}]},"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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/payments/refund","slug":"/api-reference/payments/refund","pageMetadata":{"title":"Refund a payment","openapi":"POST /v1/payments/{paymentId}/refund","description":"Issue a full or partial refund for a paid payment. Requires an idempotency key. A payment can be refunded once, fully or partially: after a partial refund a new refund is rejected with `REFUND_ALREADY_PERFORMED`, and after a full refund with `ALREADY_REFUNDED`. While a refund is being processed, a new one is rejected with `400 REFUND_IN_PROGRESS`. A partial refund additionally requires a settled payment and a processing route that supports partial refunds; otherwise it is rejected with `PARTIAL_REFUND_NOT_SUPPORTED`. When the payment carries splits, the refund is apportioned: every party is debited in proportion to what it received, including the originating company, and partial refunds use the same proportions. `INSUFFICIENT_BALANCE_FOR_REFUND` is evaluated against the originating company's share only — a recipient that has already withdrawn its share goes negative instead of blocking the refund, and the shortfall is never moved onto the originating company. When the refund takes the counted volume of your verified CPF or CNPJ below a rewards prize that YuvexPay approved for it, the processing fee is not returned: your balance is debited the full amount returned to the payer, and the kept fee, debited from the originating company only, can take the available balance negative.","href":"/api-reference/payments/refund"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Issue a full or partial refund for a paid payment. Requires an idempotency key. A payment can be refunded once, fully or partially: after a partial refund a new refund is rejected with \", _jsx(_components.code, {\n children: \"REFUND_ALREADY_PERFORMED\"\n }), \", and after a full refund with \", _jsx(_components.code, {\n children: \"ALREADY_REFUNDED\"\n }), \". While a refund is being processed, a new one is rejected with \", _jsx(_components.code, {\n children: \"400 REFUND_IN_PROGRESS\"\n }), \". A partial refund additionally requires a settled payment and a processing route that supports partial refunds; otherwise it is rejected with \", _jsx(_components.code, {\n children: \"PARTIAL_REFUND_NOT_SUPPORTED\"\n }), \". When the payment carries splits, the refund is apportioned: every party is debited in proportion to what it received, including the originating company, and partial refunds use the same proportions. \", _jsx(_components.code, {\n children: \"INSUFFICIENT_BALANCE_FOR_REFUND\"\n }), \" is evaluated against the originating company’s share only — a recipient that has already withdrawn its share goes negative instead of blocking the refund, and the shortfall is never moved onto the originating company. When the refund takes the counted volume of your verified CPF or CNPJ below a rewards prize that YuvexPay approved for it, the processing fee is not returned: your balance is debited the full amount returned to the payer, and the kept fee, debited from the originating company only, can take the available balance negative.\"]\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Refund a payment","openapi":"POST /v1/payments/{paymentId}/refund","description":"Issue a full or partial refund for a paid payment. Requires an idempotency key. A payment can be refunded once, fully or partially: after a partial refund a new refund is rejected with `REFUND_ALREADY_PERFORMED`, and after a full refund with `ALREADY_REFUNDED`. While a refund is being processed, a new one is rejected with `400 REFUND_IN_PROGRESS`. A partial refund additionally requires a settled payment and a processing route that supports partial refunds; otherwise it is rejected with `PARTIAL_REFUND_NOT_SUPPORTED`. When the payment carries splits, the refund is apportioned: every party is debited in proportion to what it received, including the originating company, and partial refunds use the same proportions. `INSUFFICIENT_BALANCE_FOR_REFUND` is evaluated against the originating company's share only — a recipient that has already withdrawn its share goes negative instead of blocking the refund, and the shortfall is never moved onto the originating company. When the refund takes the counted volume of your verified CPF or CNPJ below a rewards prize that YuvexPay approved for it, the processing fee is not returned: your balance is debited the full amount returned to the payer, and the kept fee, debited from the originating company only, can take the available balance negative.","href":"/api-reference/payments/refund"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"refundPayment","summary":"Refund a payment","description":"Issue a full or partial refund for a paid payment. Requires an idempotency key. A payment can be refunded once, fully or partially: after a partial refund a new refund is rejected with `REFUND_ALREADY_PERFORMED`, and after a full refund with `ALREADY_REFUNDED`. While a refund is being processed, a new one is rejected with `400 REFUND_IN_PROGRESS`. A partial refund additionally requires a settled payment and a processing route that supports partial refunds; otherwise it is rejected with `PARTIAL_REFUND_NOT_SUPPORTED`. When the payment carries splits, the refund is apportioned: every party is debited in proportion to what it received, including the originating company, and partial refunds use the same proportions. `INSUFFICIENT_BALANCE_FOR_REFUND` is evaluated against the originating company's share only — a recipient that has already withdrawn its share goes negative instead of blocking the refund, and the shortfall is never moved onto the originating company. When the refund takes the counted volume of your verified CPF or CNPJ below a rewards prize that YuvexPay approved for it, the processing fee is not returned: your balance is debited the full amount returned to the payer, and the kept fee, debited from the originating company only, can take the available balance negative.","tags":["Payments"],"parameters":["dfa6f035-78d7-4db3-846c-7f1737d41fde","199b5fe4-2a08-4a92-a75a-0d8368a443cc"],"requestBody":"eb8f1dac-2142-41a8-94e1-27fb85d49cd5","responses":{"200":"dacc2c51-d113-4075-82b8-139f259aaf83","400":"f0db0dbf-ebfb-4d1e-83f6-8b2fa70f40cb","401":"0756db08-b621-4d5b-b82c-f8f6e75a311d","404":"47c807cb-e9be-4c78-bfc5-39a551bb8af5","409":"024a8c40-2216-4303-b0d8-68e17224ed9d"},"method":"post","type":"path","servers":["30caf778-26b8-4811-87ad-19a2f5724d43"],"security":["2137f48b-cc8e-489b-84f6-226ef7e46562"],"path":"/v1/payments/{paymentId}/refund","baseUrlOptions":["https://api.yuvexpay.com"],"title":"Refund a payment","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"dfa6f035-78d7-4db3-846c-7f1737d41fde":{"name":"paymentId","in":"path","required":true,"schema":{"type":"string","format":"uuid","isRequired":true,"description":"The payment ID to refund.","uniqueKey":"","typeLabel":"string\u003cuuid>"},"description":"The payment ID to refund."},"199b5fe4-2a08-4a92-a75a-0d8368a443cc":{"name":"X-Idempotency-Key","in":"header","required":true,"schema":{"type":"string","maxLength":100,"isRequired":true,"description":"A unique string to ensure the request is processed only once. Must be unique per request. Valid for 24 hours. Successful (`2xx`) responses are stored and replayed for the key. On `POST /v1/payments`, a `502 PROVIDER_TEMPORARILY_UNAVAILABLE` for a boleto payment is stored and replayed too: to recover that payment, repeat the request once with the same `externalId` and a new key. A retry of an earlier card payment request now returns `400 CARD_PAYMENTS_NOT_AVAILABLE_VIA_API` instead of the stored response (`201` or `502`): recover that payment with `GET /v1/payments/txid/{txId}`, or with a create request with the same `externalId`, `mode: \"hosted\"` and `methods: [\"CARD\"]`, no `card` object or card fields, and a new key.","uniqueKey":"","typeLabel":"string"},"description":"A unique string to ensure the request is processed only once. Must be unique per request. Valid for 24 hours. Successful (`2xx`) responses are stored and replayed for the key. On `POST /v1/payments`, a `502 PROVIDER_TEMPORARILY_UNAVAILABLE` for a boleto payment is stored and replayed too: to recover that payment, repeat the request once with the same `externalId` and a new key. A retry of an earlier card payment request now returns `400 CARD_PAYMENTS_NOT_AVAILABLE_VIA_API` instead of the stored response (`201` or `502`): recover that payment with `GET /v1/payments/txid/{txId}`, or with a create request with the same `externalId`, `mode: \"hosted\"` and `methods: [\"CARD\"]`, no `card` object or card fields, and a new key."}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"amount":{"type":"number","minimum":0.01,"description":"Refund amount. Omit for a full refund.","uniqueKey":"amount","typeLabel":"number"},"reason":{"type":"string","maxLength":500,"description":"Reason for the refund.","uniqueKey":"reason","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"amount":25,"reason":"Customer requested refund"},"examples":{"Example":{"title":"Example","value":{"amount":25,"reason":"Customer requested refund"}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"dacc2c51-d113-4075-82b8-139f259aaf83":{"description":"Refund created.","content":{"application/json":{"schema":{"type":"object","properties":{"refund":{"type":"object","properties":{"id":{"type":"string","format":"uuid","uniqueKey":"refund.id","typeLabel":"string\u003cuuid>"},"txId":{"type":"string","uniqueKey":"refund.txId","typeLabel":"string"},"amount":{"type":"number","uniqueKey":"refund.amount","typeLabel":"number"},"reason":{"oneOf":[{"type":"string","description":"The reason sent with the refund request. `null` when none was sent and for refunds YuvexPay executed on its own, such as the return of a PIX MED.","uniqueKey":"refund.reason.oneOf.0","typeLabel":"string"},{"type":"null","description":"The reason sent with the refund request. `null` when none was sent and for refunds YuvexPay executed on its own, such as the return of a PIX MED.","uniqueKey":"refund.reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"refund.reason","typeLabel":"string | null"},"status":{"type":"string","enum":["PENDING","PROCESSING","COMPLETED","FAILED","CANCELLED","REFUNDED"],"description":"Generic transaction status.","uniqueKey":"refund.status","typeLabel":"enum\u003cstring>"},"processedAt":{"type":"string","format":"date-time","uniqueKey":"refund.processedAt","typeLabel":"string\u003cdate-time>"},"createdAt":{"type":"string","format":"date-time","uniqueKey":"refund.createdAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"refund","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"refund":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","txId":"\u003cstring>","amount":123,"reason":"\u003cstring>","status":"PENDING","processedAt":"2023-11-07T05:31:56Z","createdAt":"2023-11-07T05:31:56Z"}}}},"exampleType":"generated"}},"exampleType":"generated"},"f0db0dbf-ebfb-4d1e-83f6-8b2fa70f40cb":{"description":"Validation error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code.","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message.","uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Additional error context.","uniqueKey":"error.details","typeLabel":"object"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"VALIDATION_ERROR","message":"Invalid request body","details":{"amount":"Must be greater than 0.01"}}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_ERROR","message":"Invalid request body","details":{"amount":"Must be greater than 0.01"}}}}},"exampleType":"examples"}},"exampleType":"examples"},"0756db08-b621-4d5b-b82c-f8f6e75a311d":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code.","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message.","uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Additional error context.","uniqueKey":"error.details","typeLabel":"object"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"INVALID_API_KEY","message":"Invalid or revoked API key"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INVALID_API_KEY","message":"Invalid or revoked API key"}}}},"exampleType":"examples"}},"exampleType":"examples"},"47c807cb-e9be-4c78-bfc5-39a551bb8af5":{"description":"Resource not found.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code.","uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message.","uniqueKey":"error.message","typeLabel":"string"},"details":{"type":"object","description":"Additional error context.","uniqueKey":"error.details","typeLabel":"object"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"NOT_FOUND","message":"Resource not found"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"NOT_FOUND","message":"Resource not found"}}}},"exampleType":"examples"}},"exampleType":"examples"},"024a8c40-2216-4303-b0d8-68e17224ed9d":{"description":"Idempotency conflict, raised by the idempotency middleware. `IDEMPOTENCY_PAYLOAD_MISMATCH` means the key was already used with a different request body, at any point in the 24-hour window, including by a request still in flight. `IDEMPOTENCY_CONFLICT` means a request with the same key and the same body is still being processed. Both use the **flat** envelope: `error` is the HTTP reason phrase and the machine-readable code is the top-level `code`. Note that `IDEMPOTENCY_CONFLICT` raised later by the withdrawal service on an idempotency-key collision uses the nested `Error` envelope instead.","content":{"application/json":{"schema":{"type":"object","description":"The flat error envelope used by low-level guards that reply before the API error envelope is applied — today the idempotency middleware. The machine-readable code is the top-level `code`; `error` is only the HTTP reason phrase.","properties":{"statusCode":{"type":"integer","description":"HTTP status code, repeated in the body.","uniqueKey":"statusCode","typeLabel":"integer"},"error":{"type":"string","description":"HTTP reason phrase, for example `Conflict` or `Bad Request`. Not a machine-readable code.","uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message.","uniqueKey":"message","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code.","uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"payloadMismatch":{"title":"payloadMismatch","value":{"statusCode":409,"error":"Conflict","message":"This idempotency key was already used with a different request payload","code":"IDEMPOTENCY_PAYLOAD_MISMATCH"}},"inFlight":{"title":"inFlight","value":{"statusCode":409,"error":"Conflict","message":"A request with this idempotency key is already being processed","code":"IDEMPOTENCY_CONFLICT"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"2137f48b-cc8e-489b-84f6-226ef7e46562":{"bearerAuth":{"type":"http","scheme":"bearer","description":"YuvexPay API key. Include as `Authorization: Bearer ypk_\u003cenv>_\u003ckid>_\u003csecret>` where `\u003cenv>` is `test` (sandbox) or `live` (production). Create and manage keys in the dashboard under **Settings > API Keys**.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"30caf778-26b8-4811-87ad-19a2f5724d43":{"url":"https://api.yuvexpay.com","description":"Same base URL serves both sandbox and production. Send a `ypk_test_*` key for sandbox or a `ypk_live_*` key for production."}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"YuvexPay API key. Include as `Authorization: Bearer ypk_\u003cenv>_\u003ckid>_\u003csecret>` where `\u003cenv>` is `test` (sandbox) or `live` (production). Create and manage keys in the dashboard under **Settings > API Keys**.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"YuvexPay API key. Include as `Authorization: Bearer ypk_\u003cenv>_\u003ckid>_\u003csecret>` where `\u003cenv>` is `test` (sandbox) or `live` (production). Create and manage keys in the dashboard under **Settings > API Keys**.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"yuvexpay","siteName":"YuvexPay","title":"Refund a payment - YuvexPay","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-12T21:19:41.973Z","originalFileLocation":"api-reference/payments/refund.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=\"Issue a full or partial refund for a paid payment. Requires an idempotency key. A payment can be refunded once, fully or partially: after a partial refund a new refund is rejected with REFUND_ALREADY_PERFORMED, and after a full refund with ALREADY_REFUNDED. While a refund is being processed, a new one is rejected with 400 REFUND_IN_PROGRESS. A partial refund additionally requires a settled payment and a processing route that supports partial refunds; otherwise it is rejected with PARTIAL_REFUND_NOT_SUPPORTED. When the payment carries splits, the refund is apportioned: every party is debited in proportion to what it received, including the originating company, and partial refunds use the same proportions. INSUFFICIENT_BALANCE_FOR_REFUND is evaluated against the originating company\u0026#x27;s share only — a recipient that has already withdrawn its share goes negative instead of blocking the refund, and the shortfall is never moved onto the originating company. When the refund takes the counted volume of your verified CPF or CNPJ below a rewards prize that YuvexPay approved for it, the processing fee is not returned: your balance is debited the full amount returned to the payer, and the kept fee, debited from the originating company only, can take the available balance negative.\">\u003cmeta data-mint-head name=\"application-name\" content=\"YuvexPay\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/yuvexpay/qrsJ3VUJ-racyQUp/_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/yuvexpay/qrsJ3VUJ-racyQUp/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/yuvexpay/qrsJ3VUJ-racyQUp/_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/yuvexpay/qrsJ3VUJ-racyQUp/_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/yuvexpay/qrsJ3VUJ-racyQUp/_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/yuvexpay/qrsJ3VUJ-racyQUp/_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/yuvexpay/qrsJ3VUJ-racyQUp/_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/yuvexpay/qrsJ3VUJ-racyQUp/_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/yuvexpay/qrsJ3VUJ-racyQUp/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Refund a payment - YuvexPay\">\u003cmeta data-mint-head property=\"og:description\" content=\"Issue a full or partial refund for a paid payment. Requires an idempotency key. A payment can be refunded once, fully or partially: after a partial refund a new refund is rejected with REFUND_ALREADY_PERFORMED, and after a full refund with ALREADY_REFUNDED. While a refund is being processed, a new one is rejected with 400 REFUND_IN_PROGRESS. A partial refund additionally requires a settled payment and a processing route that supports partial refunds; otherwise it is rejected with PARTIAL_REFUND_NOT_SUPPORTED. When the payment carries splits, the refund is apportioned: every party is debited in proportion to what it received, including the originating company, and partial refunds use the same proportions. INSUFFICIENT_BALANCE_FOR_REFUND is evaluated against the originating company\u0026#x27;s share only — a recipient that has already withdrawn its share goes negative instead of blocking the refund, and the shortfall is never moved onto the originating company. When the refund takes the counted volume of your verified CPF or CNPJ below a rewards prize that YuvexPay approved for it, the processing fee is not returned: your balance is debited the full amount returned to the payer, and the kept fee, debited from the originating company only, can take the available balance negative.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"YuvexPay\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.yuvexpay.com/api-reference/payments/refund\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://yuvexpay.mintlify.app/_mintlify/api/og/v2?division=Payments\u0026amp;title=Refund+a+payment\u0026amp;description=Issue+a+full+or+partial+refund+for+a+paid+payment.+Requires+an+idempotency+key.+A+payment+can+be+refunded+once%2C+fully+or+partially%3A+after+a+partial+refund+a+new\u0026amp;theme=e1bc7c37ec59feb92a55994b\u0026amp;signature=d047e1a1dbc7eb2110e9ca34cac1f07170618873aee3c0d67b5ab327335e09e6\">\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=\"Refund a payment - YuvexPay\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Issue a full or partial refund for a paid payment. Requires an idempotency key. A payment can be refunded once, fully or partially: after a partial refund a new refund is rejected with REFUND_ALREADY_PERFORMED, and after a full refund with ALREADY_REFUNDED. While a refund is being processed, a new one is rejected with 400 REFUND_IN_PROGRESS. A partial refund additionally requires a settled payment and a processing route that supports partial refunds; otherwise it is rejected with PARTIAL_REFUND_NOT_SUPPORTED. When the payment carries splits, the refund is apportioned: every party is debited in proportion to what it received, including the originating company, and partial refunds use the same proportions. INSUFFICIENT_BALANCE_FOR_REFUND is evaluated against the originating company\u0026#x27;s share only — a recipient that has already withdrawn its share goes negative instead of blocking the refund, and the shortfall is never moved onto the originating company. When the refund takes the counted volume of your verified CPF or CNPJ below a rewards prize that YuvexPay approved for it, the processing fee is not returned: your balance is debited the full amount returned to the payer, and the kept fee, debited from the originating company only, can take the available balance negative.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://yuvexpay.mintlify.app/_mintlify/api/og/v2?division=Payments\u0026amp;title=Refund+a+payment\u0026amp;description=Issue+a+full+or+partial+refund+for+a+paid+payment.+Requires+an+idempotency+key.+A+payment+can+be+refunded+once%2C+fully+or+partially%3A+after+a+partial+refund+a+new\u0026amp;theme=e1bc7c37ec59feb92a55994b\u0026amp;signature=d047e1a1dbc7eb2110e9ca34cac1f07170618873aee3c0d67b5ab327335e09e6\">\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/yuvexpay/qrsJ3VUJ-racyQUp/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"YuvexPay\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.yuvexpay.com/api-reference/payments/refund\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/payments/refund.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.yuvexpay.com/#organization\",\"name\":\"YuvexPay\",\"url\":\"https://docs.yuvexpay.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/yuvexpay/_p0fopc5ZJwqr6Ao/logo/light.png?fit=max\u0026auto=format\u0026n=_p0fopc5ZJwqr6Ao\u0026q=85\u0026s=85eb8014f41b3db8d62050d2ff2d17eb\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.yuvexpay.com#website\",\"name\":\"YuvexPay\",\"url\":\"https://docs.yuvexpay.com\",\"publisher\":{\"@id\":\"https://docs.yuvexpay.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.yuvexpay.com/api-reference/payments/refund#webpage\",\"url\":\"https://docs.yuvexpay.com/api-reference/payments/refund\",\"name\":\"Refund a payment\",\"description\":\"Issue a full or partial refund for a paid payment. Requires an idempotency key. A payment can be refunded once, fully or partially: after a partial refund a new refund is rejected with REFUND_ALREADY_PERFORMED, and after a full refund with ALREADY_REFUNDED. While a refund is being processed, a new one is rejected with 400 REFUND_IN_PROGRESS. A partial refund additionally requires a settled payment and a processing route that supports partial refunds; otherwise it is rejected with PARTIAL_REFUND_NOT_SUPPORTED. When the payment carries splits, the refund is apportioned: every party is debited in proportion to what it received, including the originating company, and partial refunds use the same proportions. INSUFFICIENT_BALANCE_FOR_REFUND is evaluated against the originating company's share only — a recipient that has already withdrawn its share goes negative instead of blocking the refund, and the shortfall is never moved onto the originating company. When the refund takes the counted volume of your verified CPF or CNPJ below a rewards prize that YuvexPay approved for it, the processing fee is not returned: your balance is debited the full amount returned to the payer, and the kept fee, debited from the originating company only, can take the available balance negative.\",\"dateModified\":\"2026-10-12T21:19:41.973Z\",\"isPartOf\":{\"@id\":\"https://docs.yuvexpay.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.yuvexpay.com/api-reference/payments/refund#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.yuvexpay.com/api-reference/payments/refund#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Payments\",\"item\":\"https://docs.yuvexpay.com/api-reference/payments/create\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Refund a payment\",\"item\":\"https://docs.yuvexpay.com/api-reference/payments/refund\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.yuvexpay.com/api-reference/payments/refund#apireference\",\"headline\":\"Refund a payment\",\"name\":\"Refund a payment\",\"description\":\"Issue a full or partial refund for a paid payment. Requires an idempotency key. A payment can be refunded once, fully or partially: after a partial refund a new refund is rejected with REFUND_ALREADY_PERFORMED, and after a full refund with ALREADY_REFUNDED. While a refund is being processed, a new one is rejected with 400 REFUND_IN_PROGRESS. A partial refund additionally requires a settled payment and a processing route that supports partial refunds; otherwise it is rejected with PARTIAL_REFUND_NOT_SUPPORTED. When the payment carries splits, the refund is apportioned: every party is debited in proportion to what it received, including the originating company, and partial refunds use the same proportions. INSUFFICIENT_BALANCE_FOR_REFUND is evaluated against the originating company's share only — a recipient that has already withdrawn its share goes negative instead of blocking the refund, and the shortfall is never moved onto the originating company. When the refund takes the counted volume of your verified CPF or CNPJ below a rewards prize that YuvexPay approved for it, the processing fee is not returned: your balance is debited the full amount returned to the payer, and the kept fee, debited from the originating company only, can take the available balance negative.\",\"url\":\"https://docs.yuvexpay.com/api-reference/payments/refund\",\"mainEntityOfPage\":{\"@id\":\"https://docs.yuvexpay.com/api-reference/payments/refund#webpage\"},\"dateModified\":\"2026-10-12T21:19:41.973Z\",\"publisher\":{\"@id\":\"https://docs.yuvexpay.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.yuvexpay.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"YuvexPay\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"YuvexPay","nav":{"global":{"anchors":[{"anchor":"Dashboard","icon":"gauge","href":"https://app.yuvexpay.com"},{"anchor":"API status","icon":"signal","href":"https://status.yuvexpay.com"}]},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API reference","groups":[{"group":"Overview","pages":[{"title":"API reference","href":"/api-reference/introduction"}]},{"group":"Authentication","pages":[{"title":"Inspect the current API key","openapi":"GET /v1/auth/self","href":"/api-reference/auth/self"}]},{"group":"Payments","pages":[{"title":"Create a payment","openapi":"POST /v1/payments","href":"/api-reference/payments/create"},{"title":"List payments","openapi":"GET /v1/payments","href":"/api-reference/payments/list"},{"title":"Get a payment","openapi":"GET /v1/payments/{paymentId}","href":"/api-reference/payments/get"},{"title":"Get a payment by transaction ID","openapi":"GET /v1/payments/txid/{txId}","href":"/api-reference/payments/get-by-txid"},{"title":"Download boleto PDF","openapi":"GET /v1/payments/{paymentId}/boleto","description":"Download the boleto PDF for a payment whose method is BOLETO. The response is the PDF binary; clients should treat the body as `application/pdf`.","href":"/api-reference/payments/get-boleto"},{"title":"Refund a payment","openapi":"POST /v1/payments/{paymentId}/refund","href":"/api-reference/payments/refund"},{"title":"List payment refunds","openapi":"GET /v1/payments/{paymentId}/refunds","description":"Retrieve all refunds for a specific payment.","href":"/api-reference/payments/list-refunds"},{"title":"Simulate a payment","openapi":"POST /v1/payments/{paymentId}/simulate","href":"/api-reference/payments/simulate"}]},{"group":"Withdrawals","pages":[{"title":"Create a withdrawal","openapi":"POST /v1/withdrawals","href":"/api-reference/withdrawals/create"},{"title":"List withdrawals","openapi":"GET /v1/withdrawals","href":"/api-reference/withdrawals/list"},{"title":"Get a withdrawal","openapi":"GET /v1/withdrawals/{withdrawalId}","href":"/api-reference/withdrawals/get"},{"title":"Get withdrawal limits","openapi":"GET /v1/withdrawals/limits","href":"/api-reference/withdrawals/limits"}]},{"group":"Balance","pages":[{"title":"Get account balance","openapi":"GET /v1/balance","href":"/api-reference/balance/get"}]},{"group":"Splits","pages":[{"title":"List split partners","openapi":"GET /v1/splits/partners","href":"/api-reference/splits/partners"}]},{"group":"Products","pages":[{"title":"Create a product","openapi":"POST /v1/products","href":"/api-reference/products/create"},{"title":"List products","openapi":"GET /v1/products","href":"/api-reference/products/list"},{"title":"Get a product","openapi":"GET /v1/products/{productId}","href":"/api-reference/products/get"},{"title":"Get a product by external ID","openapi":"GET /v1/products/external/{externalId}","href":"/api-reference/products/get-by-external-id"},{"title":"Update a product","openapi":"PATCH /v1/products/{productId}","href":"/api-reference/products/update"},{"title":"Delete a product","openapi":"DELETE /v1/products/{productId}","href":"/api-reference/products/delete"},{"title":"Upload product image","openapi":"POST /v1/products/{productId}/image","href":"/api-reference/products/upload-image"},{"title":"Delete product image","openapi":"DELETE /v1/products/{productId}/image","href":"/api-reference/products/delete-image"}]},{"group":"Customers","pages":[{"title":"Create a customer","openapi":"POST /v1/customers","href":"/api-reference/customers/create"},{"title":"List customers","openapi":"GET /v1/customers","href":"/api-reference/customers/list"},{"title":"Get a customer","openapi":"GET /v1/customers/{customerId}","href":"/api-reference/customers/get"},{"title":"Update a customer","openapi":"PATCH /v1/customers/{customerId}","href":"/api-reference/customers/update"},{"title":"Delete a customer","openapi":"DELETE /v1/customers/{customerId}","href":"/api-reference/customers/delete"}]},{"group":"Documents","pages":[{"title":"Get payment receipt","openapi":"GET /v1/documents/payments/{paymentId}/receipt","href":"/api-reference/documents/payment-receipt"},{"title":"Get withdrawal receipt","openapi":"GET /v1/documents/withdrawals/{withdrawalId}/receipt","href":"/api-reference/documents/withdrawal-receipt"},{"title":"Get account statement","openapi":"GET /v1/documents/statements","href":"/api-reference/documents/statement"}]},{"group":"Public","pages":[{"title":"Get standard pricing","openapi":"GET /public/pricing","href":"/api-reference/public/pricing"}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Refund a payment - YuvexPay","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-B7XKH4J3.js","utils-lOYzL7z-.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DF6jUUIM.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dpsj5f7C.js","snippetPresets-CYeiDe8v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CUFz1YZ_.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D8H_iLS4.js","shallow-DdluZBHX.js","getApiPlaygroundDisplay-B9922vev.js","CodeSnippet-CMoRNGYs.js","CodeSnippets-DwyrPHuw.js","Page-DSVu9Ucl.js","getPastedJson-G-zIvlHh.js","icon-B03fnEy0.js","MethodPill-CW7teklc.js","DuplicateIcon-CtO8eekd.js","createIcon-DZTKdM_A.js","DynamicMarkdown-D5M2At0B.js","SectionHeading-C_2NaA2U.js","axios-vUo_bRtp.js","Markdown-D7QRHV3m.js","clsx-D1Z-ELXV.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-lvhuD9Du.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CKfC4ywL.js"]}