Create a PIX withdrawal to transfer BRL funds from your YuvexPay balance. Requires an idempotency key.
The PIX key type (CPF, CNPJ, e-mail, phone, or random key) is detected automatically from destination.pixKey — you do not need to declare it. INVALID_PIX_KEY covers format only. Whether the key exists on the PIX network is not checked before acceptance: depending on when the network rejects, a well-formed key that belongs to nobody surfaces either as a synchronous 400 PROVIDER_ERROR on this call or later as a WITHDRAWAL_FAILED webhook.
The creditor document sent to the PIX network is resolved in three steps, in order: (1) destination.recipientDocument when you send it; (2) the PIX key itself when destination.pixKey is a CPF or CNPJ key; (3) your own verified tax id — company CNPJ for business accounts, owner CPF for individual accounts. Step 3 is a fallback, not a default: if you pay a third party on an e-mail, phone or random key and omit destination.recipientDocument, the network is told your own document is the creditor, and the payout may be rejected downstream by the receiving institution.
Withdrawals may be blocked outside business hours or if your account has restrictions.
creditorDocumentSource is a dashboard-only field and is not accepted here: sending it returns 400 CREDITOR_DOCUMENT_SOURCE_NOT_SUPPORTED rather than being silently ignored. Use destination.recipientDocument to put a specific document on the payout.
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.
The NET amount in BRL — exactly what the recipient receives. The platform fee is added on top, never deducted: your balance is debited amount + feeAmount (returned as grossAmount), and that gross is what counts against INSUFFICIENT_BALANCE, the daily/nightly limits and the per-transaction cap. The R$10.00 minimum is compared against amount (the net); it is the floor the platform never goes below, and the value that actually applies to you is minAmount from GET /v1/withdrawals/limits. The 1,000,000 ceiling is a request-validation bound, not your limit — the per-transaction cap that applies to your account is returned by GET /v1/withdrawals/limits.
Required range: 10 <= x <= 1000000Must be a multiple of 0.01
The withdrawal as returned by POST /v1/withdrawals. This response is deliberately narrower than GET /v1/withdrawals/{withdrawalId}: it omits pixKey, pixKeyType, processedAt, errorMessage and providerErrorCode, which are only meaningful once the network has acted.
Show child attributes
{"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/withdrawals/create","slug":"/api-reference/withdrawals/create","pageMetadata":{"title":"Create a withdrawal","openapi":"POST /v1/withdrawals","description":"Create a PIX withdrawal to transfer BRL funds from your YuvexPay balance. Requires an idempotency key.\n\nThe PIX key type (CPF, CNPJ, e-mail, phone, or random key) is detected automatically from `destination.pixKey` — you do not need to declare it. `INVALID_PIX_KEY` covers format only. Whether the key exists on the PIX network is not checked before acceptance: depending on when the network rejects, a well-formed key that belongs to nobody surfaces either as a synchronous `400 PROVIDER_ERROR` on this call or later as a `WITHDRAWAL_FAILED` webhook.\n\nThe creditor document sent to the PIX network is resolved in three steps, in order: (1) `destination.recipientDocument` when you send it; (2) the PIX key itself when `destination.pixKey` is a CPF or CNPJ key; (3) your own verified tax id — company CNPJ for business accounts, owner CPF for individual accounts. Step 3 is a fallback, not a default: if you pay a third party on an e-mail, phone or random key and omit `destination.recipientDocument`, the network is told your own document is the creditor, and the payout may be rejected downstream by the receiving institution.\n\nWithdrawals may be blocked outside business hours or if your account has restrictions.\n\n`creditorDocumentSource` is a dashboard-only field and is not accepted here: sending it returns `400 CREDITOR_DOCUMENT_SOURCE_NOT_SUPPORTED` rather than being silently ignored. Use `destination.recipientDocument` to put a specific document on the payout.","href":"/api-reference/withdrawals/create"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, 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(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Create a PIX withdrawal to transfer BRL funds from your YuvexPay balance. Requires an idempotency key.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The PIX key type (CPF, CNPJ, e-mail, phone, or random key) is detected automatically from \", _jsx(_components.code, {\n children: \"destination.pixKey\"\n }), \" — you do not need to declare it. \", _jsx(_components.code, {\n children: \"INVALID_PIX_KEY\"\n }), \" covers format only. Whether the key exists on the PIX network is not checked before acceptance: depending on when the network rejects, a well-formed key that belongs to nobody surfaces either as a synchronous \", _jsx(_components.code, {\n children: \"400 PROVIDER_ERROR\"\n }), \" on this call or later as a \", _jsx(_components.code, {\n children: \"WITHDRAWAL_FAILED\"\n }), \" webhook.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The creditor document sent to the PIX network is resolved in three steps, in order: (1) \", _jsx(_components.code, {\n children: \"destination.recipientDocument\"\n }), \" when you send it; (2) the PIX key itself when \", _jsx(_components.code, {\n children: \"destination.pixKey\"\n }), \" is a CPF or CNPJ key; (3) your own verified tax id — company CNPJ for business accounts, owner CPF for individual accounts. Step 3 is a fallback, not a default: if you pay a third party on an e-mail, phone or random key and omit \", _jsx(_components.code, {\n children: \"destination.recipientDocument\"\n }), \", the network is told your own document is the creditor, and the payout may be rejected downstream by the receiving institution.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Withdrawals may be blocked outside business hours or if your account has restrictions.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"creditorDocumentSource\"\n }), \" is a dashboard-only field and is not accepted here: sending it returns \", _jsx(_components.code, {\n children: \"400 CREDITOR_DOCUMENT_SOURCE_NOT_SUPPORTED\"\n }), \" rather than being silently ignored. Use \", _jsx(_components.code, {\n children: \"destination.recipientDocument\"\n }), \" to put a specific document on the payout.\"]\n })]\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":"Create a withdrawal","openapi":"POST /v1/withdrawals","description":"Create a PIX withdrawal to transfer BRL funds from your YuvexPay balance. Requires an idempotency key.\n\nThe PIX key type (CPF, CNPJ, e-mail, phone, or random key) is detected automatically from `destination.pixKey` — you do not need to declare it. `INVALID_PIX_KEY` covers format only. Whether the key exists on the PIX network is not checked before acceptance: depending on when the network rejects, a well-formed key that belongs to nobody surfaces either as a synchronous `400 PROVIDER_ERROR` on this call or later as a `WITHDRAWAL_FAILED` webhook.\n\nThe creditor document sent to the PIX network is resolved in three steps, in order: (1) `destination.recipientDocument` when you send it; (2) the PIX key itself when `destination.pixKey` is a CPF or CNPJ key; (3) your own verified tax id — company CNPJ for business accounts, owner CPF for individual accounts. Step 3 is a fallback, not a default: if you pay a third party on an e-mail, phone or random key and omit `destination.recipientDocument`, the network is told your own document is the creditor, and the payout may be rejected downstream by the receiving institution.\n\nWithdrawals may be blocked outside business hours or if your account has restrictions.\n\n`creditorDocumentSource` is a dashboard-only field and is not accepted here: sending it returns `400 CREDITOR_DOCUMENT_SOURCE_NOT_SUPPORTED` rather than being silently ignored. Use `destination.recipientDocument` to put a specific document on the payout.","href":"/api-reference/withdrawals/create"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"createWithdrawal","summary":"Create a withdrawal","description":"Create a PIX withdrawal to transfer BRL funds from your YuvexPay balance. Requires an idempotency key.\n\nThe PIX key type (CPF, CNPJ, e-mail, phone, or random key) is detected automatically from `destination.pixKey` — you do not need to declare it. `INVALID_PIX_KEY` covers format only. Whether the key exists on the PIX network is not checked before acceptance: depending on when the network rejects, a well-formed key that belongs to nobody surfaces either as a synchronous `400 PROVIDER_ERROR` on this call or later as a `WITHDRAWAL_FAILED` webhook.\n\nThe creditor document sent to the PIX network is resolved in three steps, in order: (1) `destination.recipientDocument` when you send it; (2) the PIX key itself when `destination.pixKey` is a CPF or CNPJ key; (3) your own verified tax id — company CNPJ for business accounts, owner CPF for individual accounts. Step 3 is a fallback, not a default: if you pay a third party on an e-mail, phone or random key and omit `destination.recipientDocument`, the network is told your own document is the creditor, and the payout may be rejected downstream by the receiving institution.\n\nWithdrawals may be blocked outside business hours or if your account has restrictions.\n\n`creditorDocumentSource` is a dashboard-only field and is not accepted here: sending it returns `400 CREDITOR_DOCUMENT_SOURCE_NOT_SUPPORTED` rather than being silently ignored. Use `destination.recipientDocument` to put a specific document on the payout.","tags":["Withdrawals"],"parameters":["19c7c353-0614-424e-8299-62d0996f1f54"],"requestBody":"560899f8-1997-4794-bd51-c7b9792bed93","responses":{"201":"784de311-84e6-4ec1-9afa-dfb9ed182cca","400":"b8764d6e-962b-4bed-8217-8803605a7def","401":"adcccb80-5b8d-471e-ba66-e50851c1cbe7","403":"864f1f36-28c8-445b-a162-2fb485e1230e","409":"a0873650-88d1-4a41-b3b0-158b1f308e6b","429":"7cc20e39-7f82-4712-8ec5-e08ff58b2ecf","500":"1ec1e16d-880a-4df9-9b0f-35b57311fb9b","503":"f379adcd-04e7-483c-9155-cb9ad34652f1"},"method":"post","type":"path","servers":["30caf778-26b8-4811-87ad-19a2f5724d43"],"security":["2137f48b-cc8e-489b-84f6-226ef7e46562"],"path":"/v1/withdrawals","baseUrlOptions":["https://api.yuvexpay.com"],"title":"Create a withdrawal","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"19c7c353-0614-424e-8299-62d0996f1f54":{"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":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["amount","destination"],"properties":{"amount":{"type":"number","minimum":10,"maximum":1000000,"multipleOf":0.01,"description":"The NET amount in BRL — exactly what the recipient receives. The platform fee is added on top, never deducted: your balance is debited `amount + feeAmount` (returned as `grossAmount`), and that gross is what counts against `INSUFFICIENT_BALANCE`, the daily/nightly limits and the per-transaction cap. The R$10.00 minimum is compared against `amount` (the net); it is the floor the platform never goes below, and the value that actually applies to you is `minAmount` from `GET /v1/withdrawals/limits`. The 1,000,000 ceiling is a request-validation bound, not your limit — the per-transaction cap that applies to your account is returned by `GET /v1/withdrawals/limits`.","isRequired":true,"uniqueKey":"amount","typeLabel":"number"},"destination":{"description":"Where to send the funds.","type":"object","title":"PIX destination","required":["type","pixKey"],"properties":{"type":{"type":"string","enum":["pix"],"isRequired":true,"uniqueKey":"destination.type","typeLabel":"enum\u003cstring>"},"pixKey":{"type":"string","minLength":1,"description":"PIX key. Accepts CPF, CNPJ, e-mail, Brazilian phone (`+55XXXXXXXXXXX`), or a random EVP/UUID. The type is detected automatically; you do not need to send `pixKeyType`. The key is normalized before use: CPF and CNPJ keys are reduced to digits and must pass their check digits, phone keys are normalized to `+55` E.164, and e-mail and EVP keys are trimmed and lowercased. A key that matches none of those shapes is rejected with `INVALID_PIX_KEY`.","isRequired":true,"uniqueKey":"destination.pixKey","typeLabel":"string"},"recipientDocument":{"type":"string","minLength":11,"maxLength":18,"description":"CPF or CNPJ of the PIX key holder. Whitespace and punctuation are stripped server-side; the result must be a valid CPF (11 digits) or CNPJ (14 digits), check digits included. Send it whenever the destination key belongs to someone other than you. Omitting it on a third-party e-mail, phone or random key makes the network see your own document as creditor. If `pixKey` is itself a CPF or CNPJ key, this field must agree with it or the request is rejected with `RECIPIENT_DOCUMENT_MISMATCH`.","uniqueKey":"destination.recipientDocument","typeLabel":"string"}},"isRequired":true,"uniqueKey":"destination","typeLabel":"PIX destination · object"},"method":{"type":"string","enum":["PIX"],"default":"PIX","description":"Public withdrawals currently support PIX only.","uniqueKey":"method","typeLabel":"enum\u003cstring>"},"currency":{"type":"string","enum":["BRL"],"default":"BRL","uniqueKey":"currency","typeLabel":"enum\u003cstring>"},"description":{"type":"string","maxLength":500,"description":"Internal description for this withdrawal.","uniqueKey":"description","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"pix":{"title":"pix","value":{"amount":500,"method":"PIX","currency":"BRL","destination":{"type":"pix","pixKey":"ana@example.com","recipientDocument":"529.982.247-25"},"description":"Weekly payout"}},"pixDocumentKey":{"title":"pixDocumentKey","value":{"amount":500,"method":"PIX","currency":"BRL","destination":{"type":"pix","pixKey":"52998224725"}}},"pixOwnAccount":{"title":"pixOwnAccount","value":{"amount":500,"method":"PIX","currency":"BRL","destination":{"type":"pix","pixKey":"0f1e2d3c-4b5a-6978-8796-a5b4c3d2e1f0"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"784de311-84e6-4ec1-9afa-dfb9ed182cca":{"description":"Withdrawal created.","content":{"application/json":{"schema":{"type":"object","properties":{"withdrawal":{"type":"object","description":"The withdrawal as returned by `POST /v1/withdrawals`. This response is deliberately narrower than `GET /v1/withdrawals/{withdrawalId}`: it omits `pixKey`, `pixKeyType`, `processedAt`, `errorMessage` and `providerErrorCode`, which are only meaningful once the network has acted.","properties":{"id":{"type":"string","format":"uuid","uniqueKey":"withdrawal.id","typeLabel":"string\u003cuuid>"},"txId":{"type":"string","description":"Transaction identifier: `WIT` followed by a millisecond timestamp and 5 uppercase alphanumerics, e.g. `WIT1746280868443K3F9Q`. Treat it as an opaque string.","example":"WIT1746280868443K3F9Q","uniqueKey":"withdrawal.txId","typeLabel":"string"},"grossAmount":{"type":"number","uniqueKey":"withdrawal.grossAmount","typeLabel":"number"},"feeAmount":{"type":"number","uniqueKey":"withdrawal.feeAmount","typeLabel":"number"},"netAmount":{"type":"number","uniqueKey":"withdrawal.netAmount","typeLabel":"number"},"paymentMethod":{"type":"string","enum":["PIX"],"uniqueKey":"withdrawal.paymentMethod","typeLabel":"enum\u003cstring>"},"currency":{"type":"string","enum":["BRL"],"uniqueKey":"withdrawal.currency","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","PROCESSING","COMPLETED","FAILED","CANCELLED"],"description":"Possible withdrawal statuses.","uniqueKey":"withdrawal.status","typeLabel":"enum\u003cstring>"},"isSandbox":{"type":"boolean","uniqueKey":"withdrawal.isSandbox","typeLabel":"boolean"},"createdAt":{"type":"string","format":"date-time","uniqueKey":"withdrawal.createdAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"withdrawal","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"withdrawal":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","txId":"WIT1746280868443K3F9Q","grossAmount":123,"feeAmount":123,"netAmount":123,"paymentMethod":"PIX","currency":"BRL","status":"PENDING","isSandbox":true,"createdAt":"2023-11-07T05:31:56Z"}}}},"exampleType":"generated"}},"exampleType":"generated"},"b8764d6e-962b-4bed-8217-8803605a7def":{"description":"Validation failed, or the PIX network rejected the payout deterministically. Withdrawal-specific codes: `INVALID_PIX_KEY`, `INVALID_RECIPIENT_DOCUMENT`, `RECIPIENT_DOCUMENT_MISMATCH`, `CREDITOR_DOCUMENT_SOURCE_NOT_SUPPORTED`, `WITHDRAWAL_BELOW_MINIMUM`, `WITHDRAWAL_LIMIT_EXCEEDED`, `WITHDRAWAL_BELOW_PROVIDER_MINIMUM`, `WITHDRAWAL_PIX_KEY_BLOCKED`, `BLOCKLIST_DENIED`, `INSUFFICIENT_BALANCE`, `WITHDRAWAL_RECIPIENT_DOCUMENT_MISMATCH`, `PROVIDER_ERROR`. Note that a missing `X-Idempotency-Key` is rejected before the error envelope is applied and returns the flat shape `{ statusCode, error, message, code }` with code `IDEMPOTENCY_KEY_REQUIRED`.","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"},"examples":{"invalidRecipientDocument":{"title":"invalidRecipientDocument","value":{"error":{"code":"INVALID_RECIPIENT_DOCUMENT","message":"O CPF/CNPJ do destinatário é inválido. Envie um CPF de 11 dígitos ou um CNPJ de 14 dígitos."}}},"recipientDocumentMismatch":{"title":"recipientDocumentMismatch","value":{"error":{"code":"RECIPIENT_DOCUMENT_MISMATCH","message":"O CPF/CNPJ do destinatário não corresponde à chave PIX informada."}}}},"exampleType":"examples"}},"exampleType":"examples"},"adcccb80-5b8d-471e-ba66-e50851c1cbe7":{"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"},"864f1f36-28c8-445b-a162-2fb485e1230e":{"description":"Withdrawals blocked for this account. Codes: `WITHDRAWALS_BLOCKED`, `VERIFICATION_REQUIRED`, `CREDITOR_DOCUMENT_UNAVAILABLE`, `SANDBOX_COMPANY_PRODUCTION_BLOCKED`, `CREDITOR_DOCUMENT_OVERRIDE_FORBIDDEN`, `WITHDRAWAL_PROVIDER_OVERRIDE_FORBIDDEN`.","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"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"a0873650-88d1-4a41-b3b0-158b1f308e6b":{"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"},"7cc20e39-7f82-4712-8ec5-e08ff58b2ecf":{"description":"Rate limit exceeded.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"},"description":"Request limit per window."},"X-RateLimit-Remaining":{"schema":{"type":"integer"},"description":"Remaining requests in window."},"X-RateLimit-Reset":{"schema":{"type":"integer"},"description":"Seconds until the window resets."}},"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":"RATE_LIMIT_EXCEEDED","message":"Too many requests"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"RATE_LIMIT_EXCEEDED","message":"Too many requests"}}}},"exampleType":"examples"}},"exampleType":"examples"},"1ec1e16d-880a-4df9-9b0f-35b57311fb9b":{"description":"Code `CREDITOR_DOCUMENT_UNREADABLE`: your tax id is on file but could not be read, so no creditor document could be resolved. No money moved. Unlike a generic `INTERNAL_ERROR` this is deterministic — retrying the identical request fails the same way. Send `destination.recipientDocument` to unblock the payout, or contact support.","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"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"f379adcd-04e7-483c-9155-cb9ad34652f1":{"description":"The withdrawal never reached the PIX network and no money moved. Codes: `WITHDRAWAL_PROVIDER_UNAVAILABLE`, `WITHDRAWAL_TEMPORARILY_UNAVAILABLE`, `WITHDRAWAL_PROCESSING_FAILED`. Safe to retry with a new idempotency key.","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"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"\u003cstring>","message":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"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":"Create a withdrawal - YuvexPay","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-27T22:18:50.977Z","originalFileLocation":"api-reference/withdrawals/create.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=\"Create a PIX withdrawal to transfer BRL funds from your YuvexPay balance. Requires an idempotency key. The PIX key type (CPF, CNPJ, e-mail, phone, or random key) is detected automatically from destination.pixKey — you do not need to declare it. INVALID_PIX_KEY covers format only. Whether the key exists on the PIX network is not checked before acceptance: depending on when the network rejects, a well-formed key that belongs to nobody surfaces either as a synchronous 400 PROVIDER_ERROR on this call or later as a WITHDRAWAL_FAILED webhook. The creditor document sent to the PIX network is resolved in three steps, in order: (1) destination.recipientDocument when you send it; (2) the PIX key itself when destination.pixKey is a CPF or CNPJ key; (3) your own verified tax id — company CNPJ for business accounts, owner CPF for individual accounts. Step 3 is a fallback, not a default: if you pay a third party on an e-mail, phone or random key and omit destination.recipientDocument, the network is told your own document is the creditor, and the payout may be rejected downstream by the receiving institution. Withdrawals may be blocked outside business hours or if your account has restrictions. creditorDocumentSource is a dashboard-only field and is not accepted here: sending it returns 400 CREDITOR_DOCUMENT_SOURCE_NOT_SUPPORTED rather than being silently ignored. Use destination.recipientDocument to put a specific document on the payout.\">\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=\"Create a withdrawal - YuvexPay\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create a PIX withdrawal to transfer BRL funds from your YuvexPay balance. Requires an idempotency key. The PIX key type (CPF, CNPJ, e-mail, phone, or random key) is detected automatically from destination.pixKey — you do not need to declare it. INVALID_PIX_KEY covers format only. Whether the key exists on the PIX network is not checked before acceptance: depending on when the network rejects, a well-formed key that belongs to nobody surfaces either as a synchronous 400 PROVIDER_ERROR on this call or later as a WITHDRAWAL_FAILED webhook. The creditor document sent to the PIX network is resolved in three steps, in order: (1) destination.recipientDocument when you send it; (2) the PIX key itself when destination.pixKey is a CPF or CNPJ key; (3) your own verified tax id — company CNPJ for business accounts, owner CPF for individual accounts. Step 3 is a fallback, not a default: if you pay a third party on an e-mail, phone or random key and omit destination.recipientDocument, the network is told your own document is the creditor, and the payout may be rejected downstream by the receiving institution. Withdrawals may be blocked outside business hours or if your account has restrictions. creditorDocumentSource is a dashboard-only field and is not accepted here: sending it returns 400 CREDITOR_DOCUMENT_SOURCE_NOT_SUPPORTED rather than being silently ignored. Use destination.recipientDocument to put a specific document on the payout.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"YuvexPay\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.yuvexpay.com/api-reference/withdrawals/create\">\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=Withdrawals\u0026amp;title=Create+a+withdrawal\u0026amp;description=Create+a+PIX+withdrawal+to+transfer+BRL+funds+from+your+YuvexPay+balance.+Requires+an+idempotency+key.%0A%0AThe+PIX+key+type+%28CPF%2C+CNPJ%2C+e-mail%2C+phone%2C+or+random+ke\u0026amp;theme=e1bc7c37ec59feb92a55994b\u0026amp;signature=478410d72a7c92c9488c449e5c8bbd0fcf56651e44d38267628152ba8de7ad2a\">\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=\"Create a withdrawal - YuvexPay\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create a PIX withdrawal to transfer BRL funds from your YuvexPay balance. Requires an idempotency key. The PIX key type (CPF, CNPJ, e-mail, phone, or random key) is detected automatically from destination.pixKey — you do not need to declare it. INVALID_PIX_KEY covers format only. Whether the key exists on the PIX network is not checked before acceptance: depending on when the network rejects, a well-formed key that belongs to nobody surfaces either as a synchronous 400 PROVIDER_ERROR on this call or later as a WITHDRAWAL_FAILED webhook. The creditor document sent to the PIX network is resolved in three steps, in order: (1) destination.recipientDocument when you send it; (2) the PIX key itself when destination.pixKey is a CPF or CNPJ key; (3) your own verified tax id — company CNPJ for business accounts, owner CPF for individual accounts. Step 3 is a fallback, not a default: if you pay a third party on an e-mail, phone or random key and omit destination.recipientDocument, the network is told your own document is the creditor, and the payout may be rejected downstream by the receiving institution. Withdrawals may be blocked outside business hours or if your account has restrictions. creditorDocumentSource is a dashboard-only field and is not accepted here: sending it returns 400 CREDITOR_DOCUMENT_SOURCE_NOT_SUPPORTED rather than being silently ignored. Use destination.recipientDocument to put a specific document on the payout.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://yuvexpay.mintlify.app/_mintlify/api/og/v2?division=Withdrawals\u0026amp;title=Create+a+withdrawal\u0026amp;description=Create+a+PIX+withdrawal+to+transfer+BRL+funds+from+your+YuvexPay+balance.+Requires+an+idempotency+key.%0A%0AThe+PIX+key+type+%28CPF%2C+CNPJ%2C+e-mail%2C+phone%2C+or+random+ke\u0026amp;theme=e1bc7c37ec59feb92a55994b\u0026amp;signature=478410d72a7c92c9488c449e5c8bbd0fcf56651e44d38267628152ba8de7ad2a\">\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/withdrawals/create\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/withdrawals/create.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/withdrawals/create#webpage\",\"url\":\"https://docs.yuvexpay.com/api-reference/withdrawals/create\",\"name\":\"Create a withdrawal\",\"description\":\"Create a PIX withdrawal to transfer BRL funds from your YuvexPay balance. Requires an idempotency key. The PIX key type (CPF, CNPJ, e-mail, phone, or random key) is detected automatically from destination.pixKey — you do not need to declare it. INVALID_PIX_KEY covers format only. Whether the key exists on the PIX network is not checked before acceptance: depending on when the network rejects, a well-formed key that belongs to nobody surfaces either as a synchronous 400 PROVIDER_ERROR on this call or later as a WITHDRAWAL_FAILED webhook. The creditor document sent to the PIX network is resolved in three steps, in order: (1) destination.recipientDocument when you send it; (2) the PIX key itself when destination.pixKey is a CPF or CNPJ key; (3) your own verified tax id — company CNPJ for business accounts, owner CPF for individual accounts. Step 3 is a fallback, not a default: if you pay a third party on an e-mail, phone or random key and omit destination.recipientDocument, the network is told your own document is the creditor, and the payout may be rejected downstream by the receiving institution. Withdrawals may be blocked outside business hours or if your account has restrictions. creditorDocumentSource is a dashboard-only field and is not accepted here: sending it returns 400 CREDITOR_DOCUMENT_SOURCE_NOT_SUPPORTED rather than being silently ignored. Use destination.recipientDocument to put a specific document on the payout.\",\"dateModified\":\"2026-08-27T22:18:50.977Z\",\"isPartOf\":{\"@id\":\"https://docs.yuvexpay.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.yuvexpay.com/api-reference/withdrawals/create#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.yuvexpay.com/api-reference/withdrawals/create#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"YuvexPay\",\"item\":\"https://docs.yuvexpay.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create a withdrawal\",\"item\":\"https://docs.yuvexpay.com/api-reference/withdrawals/create\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.yuvexpay.com/api-reference/withdrawals/create#apireference\",\"headline\":\"Create a withdrawal\",\"name\":\"Create a withdrawal\",\"description\":\"Create a PIX withdrawal to transfer BRL funds from your YuvexPay balance. Requires an idempotency key. The PIX key type (CPF, CNPJ, e-mail, phone, or random key) is detected automatically from destination.pixKey — you do not need to declare it. INVALID_PIX_KEY covers format only. Whether the key exists on the PIX network is not checked before acceptance: depending on when the network rejects, a well-formed key that belongs to nobody surfaces either as a synchronous 400 PROVIDER_ERROR on this call or later as a WITHDRAWAL_FAILED webhook. The creditor document sent to the PIX network is resolved in three steps, in order: (1) destination.recipientDocument when you send it; (2) the PIX key itself when destination.pixKey is a CPF or CNPJ key; (3) your own verified tax id — company CNPJ for business accounts, owner CPF for individual accounts. Step 3 is a fallback, not a default: if you pay a third party on an e-mail, phone or random key and omit destination.recipientDocument, the network is told your own document is the creditor, and the payout may be rejected downstream by the receiving institution. Withdrawals may be blocked outside business hours or if your account has restrictions. creditorDocumentSource is a dashboard-only field and is not accepted here: sending it returns 400 CREDITOR_DOCUMENT_SOURCE_NOT_SUPPORTED rather than being silently ignored. Use destination.recipientDocument to put a specific document on the payout.\",\"url\":\"https://docs.yuvexpay.com/api-reference/withdrawals/create\",\"mainEntityOfPage\":{\"@id\":\"https://docs.yuvexpay.com/api-reference/withdrawals/create#webpage\"},\"dateModified\":\"2026-08-27T22:18:50.977Z\",\"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","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","href":"/api-reference/payments/list-refunds"},{"title":"Simulate a payment","openapi":"POST /v1/payments/{paymentId}/simulate","description":"Drive a sandbox payment to a terminal status immediately, whatever its amount and payment method. Sandbox only: a production API key is rejected with `403 FORBIDDEN`, and a production payment id is not visible to a sandbox key, so it returns `404`. `REFUNDED` marks the payment paid if it is not already and then issues a full refund, which follows the sandbox refund matrix: a payment whose amount ends in `.02` fails with `400 PSP_REFUND_FAILED`; `DISPUTED` marks it paid if it is not already and then moves it to `CHARGEBACK`, which is a chargeback and not a MED.","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","description":"Retrieve a paginated list of withdrawals with optional filters.","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":"Create a withdrawal - 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"]}