{
"errors": [
{
"code": "INVALID_TOKEN",
"details": {},
"message": "The personal API token is not valid.",
"request_id": "F8x2kQ9vXc1AAAAB"
}
]
}
{
"errors": [
{
"code": "INSUFFICIENT_SCOPE",
"details": {
"required_scope": "pix:payments:write"
},
"message": "The personal API token does not grant this operation.",
"request_id": "F8x2kQ9vXc1AAAAB"
}
]
}
{
"errors": [
{
"code": "IDEMPOTENCY_CONFLICT",
"details": {},
"message": "This Idempotency-Key was already used with a different request.",
"request_id": "F8x2kQ9vXc1AAAAB"
}
]
}
{
"errors": [
{
"code": "BANK_REQUIRED",
"details": {
"banks": [
"Nubank",
"Itaú"
]
},
"message": "Send the bank the Pix comes from in the bank field. See details.banks for suggestions.",
"request_id": "F8x2kQ9vXc1AAAAB"
}
]
}
{
"errors": [
{
"code": "RATE_LIMITED",
"details": {
"retry_after_seconds": 42
},
"message": "Too many requests. Retry after the number of seconds in Retry-After.",
"request_id": "F8x2kQ9vXc1AAAAB"
}
]
}
Pix payments
Start a Pix payment
Starts a Pix to one Pix key and returns it with a start_url. Open start_url in the browser: the first Pix from a bank opens the bank page to authorize Visor, then every Pix opens the page where the user confirms with biometrics. Nothing is paid until the user confirms there. Requires the pix:payments:write scope (Visor CLI login), the Pro or Premium plan, and an Idempotency-Key header. A retry with the same key and the same Pix returns the Pix already started, with idempotent-replayed: true; the same key with another key, amount, or description returns 409 IDEMPOTENCY_CONFLICT. Read GET /v1/pix-payments/{pix_payment_id} until status is final.
{
"errors": [
{
"code": "INVALID_TOKEN",
"details": {},
"message": "The personal API token is not valid.",
"request_id": "F8x2kQ9vXc1AAAAB"
}
]
}
{
"errors": [
{
"code": "INSUFFICIENT_SCOPE",
"details": {
"required_scope": "pix:payments:write"
},
"message": "The personal API token does not grant this operation.",
"request_id": "F8x2kQ9vXc1AAAAB"
}
]
}
{
"errors": [
{
"code": "IDEMPOTENCY_CONFLICT",
"details": {},
"message": "This Idempotency-Key was already used with a different request.",
"request_id": "F8x2kQ9vXc1AAAAB"
}
]
}
{
"errors": [
{
"code": "BANK_REQUIRED",
"details": {
"banks": [
"Nubank",
"Itaú"
]
},
"message": "Send the bank the Pix comes from in the bank field. See details.banks for suggestions.",
"request_id": "F8x2kQ9vXc1AAAAB"
}
]
}
{
"errors": [
{
"code": "RATE_LIMITED",
"details": {
"retry_after_seconds": 42
},
"message": "Too many requests. Retry after the number of seconds in Retry-After.",
"request_id": "F8x2kQ9vXc1AAAAB"
}
]
}
Link the bank again before the payment, on the device that opens start_url. A bank link (its passkey) belongs to the device that created it, and a bank can be linked on several devices. Send true to confirm on a device that is not linked yet; bank.linked is then false and start_url opens the bank page first.
Response
The started Pix, or the one already started with the same key
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Visor Personal API","description":"Connect your own scripts and automations to your Visor data with a Pro or Premium personal API token.","colors":{"primary":"#155DFC","light":"#4D8BFF","dark":"#155DFC"},"logo":{"light":"https://mintcdn.com/visorfinance/184cqPrO8BXx_1WV/logo/light-mode.svg?fit=max\u0026auto=format\u0026n=184cqPrO8BXx_1WV\u0026q=85\u0026s=fb4be31a4d2e8c680c4e43c5758216e0","dark":"https://mintcdn.com/visorfinance/184cqPrO8BXx_1WV/logo/dark-mode.svg?fit=max\u0026auto=format\u0026n=184cqPrO8BXx_1WV\u0026q=85\u0026s=a2393d69d9930ccce9264dca21d5cb43","href":"https://visorfinance.app"},"favicon":"https://mintcdn.com/visorfinance/184cqPrO8BXx_1WV/favicon.png?fit=max\u0026auto=format\u0026n=184cqPrO8BXx_1WV\u0026q=85\u0026s=288a9fbcbdc60d057e1e9926ebe46c0e","api":{"playground":{"display":"none"},"examples":{"languages":["curl"]}},"navbar":{"primary":{"type":"button","label":"Create a token","href":"https://dashboard.visorfinance.app/settings/connected_apps"}},"footer":{"socials":{"website":"https://visorfinance.app"}},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","href":"introduction"},{"language":"pt-BR","navbar":{"primary":{"type":"button","label":"Criar um token","href":"https://dashboard.visorfinance.app/settings/connected_apps"}},"href":"pt-BR/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"visorfinance","hasAudioNarration":false,"actualSubdomain":"visorfinance","customDomains":["docs.visorfinance.app"],"gitSource":{"type":"github","owner":"visor-finance","repo":"visor","deployBranch":"main","contentDirectory":"developer-docs","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae3cbd2bb770cec1ef5777a","collectionId":"e2f68892-c8f8-418a-b2f6-c12f6567fd5f","liveDeploymentHistoryId":"6ae3cbd2bb770cec1ef5777a","schemaVersion":"v3"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae3cbd2bb770cec1ef5777a","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"en","tag":"API reference","count":23},{"language":"en","tag":"Guides","count":11},{"language":"pt-BR","tag":"Guias","count":11},{"language":"en","tag":"Get started","count":6},{"language":"en","tag":"Transactions","count":6},{"language":"pt-BR","tag":"Comece aqui","count":6},{"language":"en","tag":"Essentials","count":5},{"language":"pt-BR","tag":"Essencial","count":5},{"language":"en","tag":"Cards","count":2},{"language":"en","tag":"Pix payments","count":2},{"language":"en","tag":"Recurring expenses","count":2},{"language":"en","tag":"Accounts","count":1},{"language":"en","tag":"Categories","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},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/pix-payments/start-a-pix-payment","slug":"/api-reference/pix-payments/start-a-pix-payment","pageMetadata":{"title":"Start a Pix payment","description":"Starts a Pix to one Pix key and returns it with a `start_url`. Open `start_url` in the browser: the first Pix from a bank opens the bank page to authorize Visor, then every Pix opens the page where the user confirms with biometrics. Nothing is paid until the user confirms there. Requires the `pix:payments:write` scope (Visor CLI login), the Pro or Premium plan, and an `Idempotency-Key` header. A retry with the same key and the same Pix returns the Pix already started, with `idempotent-replayed: true`; the same key with another key, amount, or description returns `409 IDEMPOTENCY_CONFLICT`. Read `GET /v1/pix-payments/{pix_payment_id}` until `status` is final.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/pix-payments","href":"/api-reference/pix-payments/start-a-pix-payment","autogeneratedByOpenApi":true},"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: [\"Starts a Pix to one Pix key and returns it with a \", _jsx(_components.code, {\n children: \"start_url\"\n }), \". Open \", _jsx(_components.code, {\n children: \"start_url\"\n }), \" in the browser: the first Pix from a bank opens the bank page to authorize Visor, then every Pix opens the page where the user confirms with biometrics. Nothing is paid until the user confirms there. Requires the \", _jsx(_components.code, {\n children: \"pix:payments:write\"\n }), \" scope (Visor CLI login), the Pro or Premium plan, and an \", _jsx(_components.code, {\n children: \"Idempotency-Key\"\n }), \" header. A retry with the same key and the same Pix returns the Pix already started, with \", _jsx(_components.code, {\n children: \"idempotent-replayed: true\"\n }), \"; the same key with another key, amount, or description returns \", _jsx(_components.code, {\n children: \"409 IDEMPOTENCY_CONFLICT\"\n }), \". Read \", _jsx(_components.code, {\n children: \"GET /v1/pix-payments/{pix_payment_id}\"\n }), \" until \", _jsx(_components.code, {\n children: \"status\"\n }), \" is final.\"]\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":"Start a Pix payment","description":"Starts a Pix to one Pix key and returns it with a `start_url`. Open `start_url` in the browser: the first Pix from a bank opens the bank page to authorize Visor, then every Pix opens the page where the user confirms with biometrics. Nothing is paid until the user confirms there. Requires the `pix:payments:write` scope (Visor CLI login), the Pro or Premium plan, and an `Idempotency-Key` header. A retry with the same key and the same Pix returns the Pix already started, with `idempotent-replayed: true`; the same key with another key, amount, or description returns `409 IDEMPOTENCY_CONFLICT`. Read `GET /v1/pix-payments/{pix_payment_id}` until `status` is final.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/pix-payments","href":"/api-reference/pix-payments/start-a-pix-payment","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"callbacks":{},"description":"Starts a Pix to one Pix key and returns it with a `start_url`. Open `start_url` in the browser: the first Pix from a bank opens the bank page to authorize Visor, then every Pix opens the page where the user confirms with biometrics. Nothing is paid until the user confirms there. Requires the `pix:payments:write` scope (Visor CLI login), the Pro or Premium plan, and an `Idempotency-Key` header. A retry with the same key and the same Pix returns the Pix already started, with `idempotent-replayed: true`; the same key with another key, amount, or description returns `409 IDEMPOTENCY_CONFLICT`. Read `GET /v1/pix-payments/{pix_payment_id}` until `status` is final.","operationId":"VisorWeb.Api.V1.PixPaymentController.create","parameters":["d95534f8-50e9-4d16-9e92-9e0bc04afc45"],"requestBody":"176a6c75-206d-49a1-baf5-88917bce2870","responses":{"201":"c4ed66dd-0851-4eed-99bd-db51fe8b4b5a","400":"6e744ef5-6b86-42c7-b201-05c21244f4b4","401":"188b8030-c72b-4d3d-aec6-1fa86daa64ae","403":"c179a3af-0649-43cb-b035-1c24b4ce5b33","406":"22dc5b94-fd51-4c67-af18-ad4d6e45a2dc","409":"5b504daa-f9bc-4050-9704-3656c5ae981e","422":"3dd58515-048d-48ff-a6cf-86f319bb31a7","429":"d682b121-d8a3-4443-a581-17969df58676"},"security":["fa3e1615-fb30-48b3-ba1a-7be97eced20c"],"summary":"Start a Pix payment","tags":["Pix payments"],"method":"post","type":"path","servers":["e02cc6e5-1238-4b59-b1fd-3f6cb20e7f31"],"path":"/v1/pix-payments","baseUrlOptions":["https://api.visorfinance.app"],"title":"Start a Pix payment","codeSamples":[],"requestExampleLanguages":["bash"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"d95534f8-50e9-4d16-9e92-9e0bc04afc45":{"description":"A value you choose for this Pix, 1 to 128 letters, digits, or `-` `_` `.` `:`. Send the same value when you retry. A UUID per Pix works well.","in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":128,"minLength":1,"pattern":"^[A-Za-z0-9_\\-.:]+$","type":"string","isRequired":true,"description":"A value you choose for this Pix, 1 to 128 letters, digits, or `-` `_` `.` `:`. Send the same value when you retry. A UUID per Pix works well.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"content":{"application/json":{"example":{"amount":"20.00","bank":"Nubank","description":"Almoço","key_type":"cpf","pix_key":"123.456.789-09"},"schema":{"additionalProperties":false,"properties":{"amount":{"description":"The amount in BRL as a positive decimal string with up to 2 decimal places","example":"20.00","format":"decimal","type":"string","isRequired":true,"uniqueKey":"amount","typeLabel":"string\u003cdecimal>"},"pix_key":{"description":"The Pix key as the user typed it: an email, a CPF, a CNPJ, a phone (with or without +55), or a random key (EVP).","type":"string","isRequired":true,"uniqueKey":"pix_key","typeLabel":"string"},"bank":{"description":"The bank the user pays from. Without it, Visor uses the one bank the user already linked, or answers `BANK_REQUIRED`.","maxLength":100,"type":"string","uniqueKey":"bank","typeLabel":"string"},"description":{"maxLength":140,"type":"string","uniqueKey":"description","typeLabel":"string"},"key_type":{"description":"The key type. Send it when the key can be a CPF and a phone (`AMBIGUOUS_PIX_KEY`).","enum":["phone","cpf","cnpj","email","evp"],"type":"string","uniqueKey":"key_type","typeLabel":"enum\u003cstring>"},"link_device":{"default":false,"description":"Link the bank again before the payment, on the device that opens `start_url`. A bank link (its passkey) belongs to the device that created it, and a bank can be linked on several devices. Send `true` to confirm on a device that is not linked yet; `bank.linked` is then `false` and `start_url` opens the bank page first.","type":"boolean","uniqueKey":"link_device","typeLabel":"boolean"}},"required":["pix_key","amount"],"title":"PixPaymentCreateRequest","type":"object","uniqueKey":"","typeLabel":"PixPaymentCreateRequest · object"},"examples":{"Example":{"title":"Example","value":{"amount":"20.00","bank":"Nubank","description":"Almoço","key_type":"cpf","pix_key":"123.456.789-09"}}},"exampleType":"examples"}},"description":"The Pix to start","required":true,"exampleType":"examples"},"responses":{"c4ed66dd-0851-4eed-99bd-db51fe8b4b5a":{"content":{"application/json":{"example":{"data":{"amount":"20.00","bank":{"linked":true,"name":"Nubank"},"created_at":"2026-10-22T15:31:02Z","currency":"BRL","description":"Almoço","end_to_end_id":null,"failure":null,"id":"7b2d5e91-3c4a-4f68-9a0b-1c2d3e4f5a6b","paid_at":null,"pix_key_masked":"***.456.789-**","recipient":null,"start_url":"https://dashboard.visorfinance.app/pix/payments/continue?ref=SFMyNTY.g2gDdAAAAAJ","status":"pending","waiting_for":"payment_confirmation"}},"schema":{"additionalProperties":false,"properties":{"data":{"additionalProperties":false,"properties":{"amount":{"description":"The amount in BRL as a decimal string","example":"20.00","format":"decimal","type":"string","isRequired":true,"uniqueKey":"data.amount","typeLabel":"string\u003cdecimal>"},"bank":{"oneOf":[{"type":"object","title":"PixPaymentBank","description":"The bank the Pix comes from; `null` before a bank is chosen","required":["name","linked"],"properties":{"linked":{"description":"`false` while the user still has to authorize Visor at the bank. The first Pix from a bank opens the bank page.","type":"boolean","isRequired":true,"uniqueKey":"data.bank.oneOf.0.linked","typeLabel":"boolean"},"name":{"example":"Nubank","type":"string","isRequired":true,"uniqueKey":"data.bank.oneOf.0.name","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"data.bank.oneOf.0","typeLabel":"PixPaymentBank · object"},{"type":"null","isRequired":true,"uniqueKey":"data.bank.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.bank","typeLabel":"PixPaymentBank · object | null"},"created_at":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"data.created_at","typeLabel":"string\u003cdate-time>"},"currency":{"example":"BRL","type":"string","isRequired":true,"uniqueKey":"data.currency","typeLabel":"string"},"description":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"data.description.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"data.description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.description","typeLabel":"string | null"},"end_to_end_id":{"oneOf":[{"description":"The Pix end-to-end id of a completed Pix","type":"string","isRequired":true,"uniqueKey":"data.end_to_end_id.oneOf.0","typeLabel":"string"},{"description":"The Pix end-to-end id of a completed Pix","type":"null","isRequired":true,"uniqueKey":"data.end_to_end_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.end_to_end_id","typeLabel":"string | null"},"failure":{"oneOf":[{"type":"object","title":"PixPaymentFailure","description":"Set when the status is `failed`","required":["code","message"],"properties":{"code":{"description":"The provider or Visor code of the failure","example":"SALDO_INSUFICIENTE","type":"string","isRequired":true,"uniqueKey":"data.failure.oneOf.0.code","typeLabel":"string"},"message":{"description":"Text for the user, in the language of their Visor account","type":"string","isRequired":true,"uniqueKey":"data.failure.oneOf.0.message","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"data.failure.oneOf.0","typeLabel":"PixPaymentFailure · object"},{"type":"null","isRequired":true,"uniqueKey":"data.failure.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.failure","typeLabel":"PixPaymentFailure · object | null"},"id":{"format":"uuid","type":"string","isRequired":true,"uniqueKey":"data.id","typeLabel":"string\u003cuuid>"},"paid_at":{"oneOf":[{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"data.paid_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"format":"date-time","type":"null","isRequired":true,"uniqueKey":"data.paid_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.paid_at","typeLabel":"string\u003cdate-time> | null"},"pix_key_masked":{"description":"The Pix key with its middle hidden","type":"string","isRequired":true,"uniqueKey":"data.pix_key_masked","typeLabel":"string"},"recipient":{"oneOf":[{"description":"The recipient name, once the bank returns it","type":"string","isRequired":true,"uniqueKey":"data.recipient.oneOf.0","typeLabel":"string"},{"description":"The recipient name, once the bank returns it","type":"null","isRequired":true,"uniqueKey":"data.recipient.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.recipient","typeLabel":"string | null"},"start_url":{"oneOf":[{"description":"The page to open in the browser while the Pix is `pending`: the bank page on the first Pix from a bank, then the page where the user confirms with biometrics. Only the user who started the Pix gets it.","format":"uri","type":"string","isRequired":true,"uniqueKey":"data.start_url.oneOf.0","typeLabel":"string\u003curi>"},{"description":"The page to open in the browser while the Pix is `pending`: the bank page on the first Pix from a bank, then the page where the user confirms with biometrics. Only the user who started the Pix gets it.","format":"uri","type":"null","isRequired":true,"uniqueKey":"data.start_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.start_url","typeLabel":"string\u003curi> | null"},"status":{"description":"`pending` while the user authorizes the bank or confirms the Pix. Only `completed` means the Pix was paid; `failed`, `canceled`, and `expired` are final.","enum":["awaiting_confirmation","pending","completed","failed","canceled","expired"],"type":"string","isRequired":true,"uniqueKey":"data.status","typeLabel":"enum\u003cstring>"},"waiting_for":{"oneOf":[{"description":"The step the user does next while the Pix is `pending`, else `null`","enum":["bank_authorization","payment_confirmation"],"type":"string","isRequired":true,"uniqueKey":"data.waiting_for.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"The step the user does next while the Pix is `pending`, else `null`","enum":["bank_authorization","payment_confirmation"],"type":"null","isRequired":true,"uniqueKey":"data.waiting_for.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.waiting_for","typeLabel":"enum\u003cstring> | null"}},"required":["id","status","waiting_for","amount","currency","pix_key_masked","recipient","description","bank","start_url","end_to_end_id","failure","created_at","paid_at"],"title":"PixPayment","type":"object","isRequired":true,"uniqueKey":"data","typeLabel":"PixPayment · object"}},"required":["data"],"title":"PixPaymentResponse","type":"object","uniqueKey":"","typeLabel":"PixPaymentResponse · object"},"examples":{"Example":{"title":"Example","value":{"data":{"amount":"20.00","bank":{"linked":true,"name":"Nubank"},"created_at":"2026-10-22T15:31:02Z","currency":"BRL","description":"Almoço","end_to_end_id":null,"failure":null,"id":"7b2d5e91-3c4a-4f68-9a0b-1c2d3e4f5a6b","paid_at":null,"pix_key_masked":"***.456.789-**","recipient":null,"start_url":"https://dashboard.visorfinance.app/pix/payments/continue?ref=SFMyNTY.g2gDdAAAAAJ","status":"pending","waiting_for":"payment_confirmation"}}}},"exampleType":"examples"}},"description":"The started Pix, or the one already started with the same key","headers":{"idempotent-replayed":{"description":"`true` when the response returns the record already created with the same Idempotency-Key","schema":{"enum":["true","false"],"type":"string"},"style":"simple"},"x-ratelimit-limit":{"description":"Requests allowed for this token per minute","schema":{"example":60,"type":"integer"},"style":"simple"},"x-ratelimit-remaining":{"description":"Requests left for this token in the current minute","schema":{"example":59,"type":"integer"},"style":"simple"},"x-request-id":{"description":"Request identifier, also returned as `request_id` in errors","schema":{"type":"string"},"style":"simple"}},"exampleType":"examples"},"6e744ef5-6b86-42c7-b201-05c21244f4b4":{"content":{"application/json":{"example":{"errors":[{"code":"BAD_REQUEST","details":{"field":"currency_code"},"message":"The request is malformed.","request_id":"F8x2kQ9vXc1AAAAB"}]},"schema":{"additionalProperties":false,"properties":{"errors":{"items":{"additionalProperties":false,"properties":{"code":{"description":"Stable machine-readable code","example":"INVALID_TOKEN","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"details":{"additionalProperties":true,"description":"Code-specific context","type":"object","isRequired":true,"uniqueKey":"errors.items.[INDEX].details","typeLabel":"object"},"message":{"description":"English text for developers","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"request_id":{"oneOf":[{"description":"The x-request-id response header of the request","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id.oneOf.0","typeLabel":"string"},{"description":"The x-request-id response header of the request","type":"null","isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id","typeLabel":"string | null"}},"required":["code","message","details","request_id"],"title":"Error","type":"object","uniqueKey":"errors.items.[INDEX]","typeLabel":"Error · object"},"minItems":1,"type":"array","isRequired":true,"uniqueKey":"errors","typeLabel":"Error · object[]"}},"required":["errors"],"title":"ErrorResponse","type":"object","uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"errors":[{"code":"BAD_REQUEST","details":{"field":"currency_code"},"message":"The request is malformed.","request_id":"F8x2kQ9vXc1AAAAB"}]}}},"exampleType":"examples"}},"description":"The body has a field the operation does not accept, or (on create) the Idempotency-Key header is missing or malformed","headers":{"x-request-id":{"description":"Request identifier, also returned as `request_id` in errors","schema":{"type":"string"},"style":"simple"}},"exampleType":"examples"},"188b8030-c72b-4d3d-aec6-1fa86daa64ae":{"content":{"application/json":{"example":{"errors":[{"code":"INVALID_TOKEN","details":{},"message":"The personal API token is not valid.","request_id":"F8x2kQ9vXc1AAAAB"}]},"schema":{"additionalProperties":false,"properties":{"errors":{"items":{"additionalProperties":false,"properties":{"code":{"description":"Stable machine-readable code","example":"INVALID_TOKEN","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"details":{"additionalProperties":true,"description":"Code-specific context","type":"object","isRequired":true,"uniqueKey":"errors.items.[INDEX].details","typeLabel":"object"},"message":{"description":"English text for developers","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"request_id":{"oneOf":[{"description":"The x-request-id response header of the request","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id.oneOf.0","typeLabel":"string"},{"description":"The x-request-id response header of the request","type":"null","isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id","typeLabel":"string | null"}},"required":["code","message","details","request_id"],"title":"Error","type":"object","uniqueKey":"errors.items.[INDEX]","typeLabel":"Error · object"},"minItems":1,"type":"array","isRequired":true,"uniqueKey":"errors","typeLabel":"Error · object[]"}},"required":["errors"],"title":"ErrorResponse","type":"object","uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"errors":[{"code":"INVALID_TOKEN","details":{},"message":"The personal API token is not valid.","request_id":"F8x2kQ9vXc1AAAAB"}]}}},"exampleType":"examples"}},"description":"Missing, invalid, expired, or revoked token","headers":{"x-request-id":{"description":"Request identifier, also returned as `request_id` in errors","schema":{"type":"string"},"style":"simple"}},"exampleType":"examples"},"c179a3af-0649-43cb-b035-1c24b4ce5b33":{"content":{"application/json":{"example":{"errors":[{"code":"INSUFFICIENT_SCOPE","details":{"required_scope":"pix:payments:write"},"message":"The personal API token does not grant this operation.","request_id":"F8x2kQ9vXc1AAAAB"}]},"schema":{"additionalProperties":false,"properties":{"errors":{"items":{"additionalProperties":false,"properties":{"code":{"description":"Stable machine-readable code","example":"INVALID_TOKEN","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"details":{"additionalProperties":true,"description":"Code-specific context","type":"object","isRequired":true,"uniqueKey":"errors.items.[INDEX].details","typeLabel":"object"},"message":{"description":"English text for developers","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"request_id":{"oneOf":[{"description":"The x-request-id response header of the request","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id.oneOf.0","typeLabel":"string"},{"description":"The x-request-id response header of the request","type":"null","isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id","typeLabel":"string | null"}},"required":["code","message","details","request_id"],"title":"Error","type":"object","uniqueKey":"errors.items.[INDEX]","typeLabel":"Error · object"},"minItems":1,"type":"array","isRequired":true,"uniqueKey":"errors","typeLabel":"Error · object[]"}},"required":["errors"],"title":"ErrorResponse","type":"object","uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"errors":[{"code":"INSUFFICIENT_SCOPE","details":{"required_scope":"pix:payments:write"},"message":"The personal API token does not grant this operation.","request_id":"F8x2kQ9vXc1AAAAB"}]}}},"exampleType":"examples"}},"description":"Pro or Premium plan required, insufficient scope, or Pix not available for the account","headers":{"x-request-id":{"description":"Request identifier, also returned as `request_id` in errors","schema":{"type":"string"},"style":"simple"}},"exampleType":"examples"},"22dc5b94-fd51-4c67-af18-ad4d6e45a2dc":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"errors":{"items":{"additionalProperties":false,"properties":{"code":{"description":"Stable machine-readable code","example":"INVALID_TOKEN","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"details":{"additionalProperties":true,"description":"Code-specific context","type":"object","isRequired":true,"uniqueKey":"errors.items.[INDEX].details","typeLabel":"object"},"message":{"description":"English text for developers","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"request_id":{"oneOf":[{"description":"The x-request-id response header of the request","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id.oneOf.0","typeLabel":"string"},{"description":"The x-request-id response header of the request","type":"null","isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id","typeLabel":"string | null"}},"required":["code","message","details","request_id"],"title":"Error","type":"object","uniqueKey":"errors.items.[INDEX]","typeLabel":"Error · object"},"minItems":1,"type":"array","isRequired":true,"uniqueKey":"errors","typeLabel":"Error · object[]"}},"required":["errors"],"title":"ErrorResponse","type":"object","uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"errors":[{"code":"INVALID_TOKEN","details":{},"message":"\u003cstring>","request_id":"\u003cstring>"}]}}},"exampleType":"generated"}},"description":"The client does not accept JSON","headers":{"x-request-id":{"description":"Request identifier, also returned as `request_id` in errors","schema":{"type":"string"},"style":"simple"}},"exampleType":"generated"},"5b504daa-f9bc-4050-9704-3656c5ae981e":{"content":{"application/json":{"example":{"errors":[{"code":"IDEMPOTENCY_CONFLICT","details":{},"message":"This Idempotency-Key was already used with a different request.","request_id":"F8x2kQ9vXc1AAAAB"}]},"schema":{"additionalProperties":false,"properties":{"errors":{"items":{"additionalProperties":false,"properties":{"code":{"description":"Stable machine-readable code","example":"INVALID_TOKEN","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"details":{"additionalProperties":true,"description":"Code-specific context","type":"object","isRequired":true,"uniqueKey":"errors.items.[INDEX].details","typeLabel":"object"},"message":{"description":"English text for developers","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"request_id":{"oneOf":[{"description":"The x-request-id response header of the request","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id.oneOf.0","typeLabel":"string"},{"description":"The x-request-id response header of the request","type":"null","isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id","typeLabel":"string | null"}},"required":["code","message","details","request_id"],"title":"Error","type":"object","uniqueKey":"errors.items.[INDEX]","typeLabel":"Error · object"},"minItems":1,"type":"array","isRequired":true,"uniqueKey":"errors","typeLabel":"Error · object[]"}},"required":["errors"],"title":"ErrorResponse","type":"object","uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"errors":[{"code":"IDEMPOTENCY_CONFLICT","details":{},"message":"This Idempotency-Key was already used with a different request.","request_id":"F8x2kQ9vXc1AAAAB"}]}}},"exampleType":"examples"}},"description":"The Idempotency-Key was used with a different Pix, or the Pix cannot start again with it","headers":{"x-request-id":{"description":"Request identifier, also returned as `request_id` in errors","schema":{"type":"string"},"style":"simple"}},"exampleType":"examples"},"3dd58515-048d-48ff-a6cf-86f319bb31a7":{"content":{"application/json":{"example":{"errors":[{"code":"BANK_REQUIRED","details":{"banks":["Nubank","Itaú"]},"message":"Send the bank the Pix comes from in the bank field. See details.banks for suggestions.","request_id":"F8x2kQ9vXc1AAAAB"}]},"schema":{"additionalProperties":false,"properties":{"errors":{"items":{"additionalProperties":false,"properties":{"code":{"description":"Stable machine-readable code","example":"INVALID_TOKEN","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"details":{"additionalProperties":true,"description":"Code-specific context","type":"object","isRequired":true,"uniqueKey":"errors.items.[INDEX].details","typeLabel":"object"},"message":{"description":"English text for developers","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"request_id":{"oneOf":[{"description":"The x-request-id response header of the request","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id.oneOf.0","typeLabel":"string"},{"description":"The x-request-id response header of the request","type":"null","isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id","typeLabel":"string | null"}},"required":["code","message","details","request_id"],"title":"Error","type":"object","uniqueKey":"errors.items.[INDEX]","typeLabel":"Error · object"},"minItems":1,"type":"array","isRequired":true,"uniqueKey":"errors","typeLabel":"Error · object[]"}},"required":["errors"],"title":"ErrorResponse","type":"object","uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"errors":[{"code":"BANK_REQUIRED","details":{"banks":["Nubank","Itaú"]},"message":"Send the bank the Pix comes from in the bank field. See details.banks for suggestions.","request_id":"F8x2kQ9vXc1AAAAB"}]}}},"exampleType":"examples"}},"description":"The body has invalid values, or the Pix cannot start. `code` is `VALIDATION_FAILED`, `AMBIGUOUS_PIX_KEY`, `PIX_MONTHLY_LIMIT_REACHED`, `CPF_REQUIRED`, `BANK_REQUIRED`, or `BANK_NOT_FOUND`","headers":{"x-request-id":{"description":"Request identifier, also returned as `request_id` in errors","schema":{"type":"string"},"style":"simple"}},"exampleType":"examples"},"d682b121-d8a3-4443-a581-17969df58676":{"content":{"application/json":{"example":{"errors":[{"code":"RATE_LIMITED","details":{"retry_after_seconds":42},"message":"Too many requests. Retry after the number of seconds in Retry-After.","request_id":"F8x2kQ9vXc1AAAAB"}]},"schema":{"additionalProperties":false,"properties":{"errors":{"items":{"additionalProperties":false,"properties":{"code":{"description":"Stable machine-readable code","example":"INVALID_TOKEN","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"details":{"additionalProperties":true,"description":"Code-specific context","type":"object","isRequired":true,"uniqueKey":"errors.items.[INDEX].details","typeLabel":"object"},"message":{"description":"English text for developers","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"request_id":{"oneOf":[{"description":"The x-request-id response header of the request","type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id.oneOf.0","typeLabel":"string"},{"description":"The x-request-id response header of the request","type":"null","isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"errors.items.[INDEX].request_id","typeLabel":"string | null"}},"required":["code","message","details","request_id"],"title":"Error","type":"object","uniqueKey":"errors.items.[INDEX]","typeLabel":"Error · object"},"minItems":1,"type":"array","isRequired":true,"uniqueKey":"errors","typeLabel":"Error · object[]"}},"required":["errors"],"title":"ErrorResponse","type":"object","uniqueKey":"","typeLabel":"ErrorResponse · object"},"examples":{"Example":{"title":"Example","value":{"errors":[{"code":"RATE_LIMITED","details":{"retry_after_seconds":42},"message":"Too many requests. Retry after the number of seconds in Retry-After.","request_id":"F8x2kQ9vXc1AAAAB"}]}}},"exampleType":"examples"}},"description":"Rate limit exceeded","headers":{"retry-after":{"description":"Seconds until the current window ends","schema":{"example":42,"type":"integer"},"style":"simple"},"x-ratelimit-limit":{"description":"Requests allowed for this token per minute","schema":{"example":60,"type":"integer"},"style":"simple"},"x-ratelimit-remaining":{"description":"Requests left for this token in the current minute","schema":{"example":59,"type":"integer"},"style":"simple"},"x-request-id":{"description":"Request identifier, also returned as `request_id` in errors","schema":{"type":"string"},"style":"simple"}},"exampleType":"examples"}},"security":{"fa3e1615-fb30-48b3-ba1a-7be97eced20c":{"visor_cli_oauth":{"description":"OAuth 2.0 access token of the Visor CLI browser login (authorization code with PKCE). Only the first-party Visor CLI client can use it on this API.","flows":{"authorizationCode":{"authorizationUrl":"https://dashboard.visorfinance.app/oauth/authorize","refreshUrl":"https://dashboard.visorfinance.app/oauth/token","scopes":{"pfm:read":"Read financial data","pfm:transactions:write":"Create, edit, and delete transactions","pix:payments:write":"Start Pix payments that you confirm with biometrics at your bank"},"tokenUrl":"https://dashboard.visorfinance.app/oauth/token"}},"type":"oauth2","scopes":["pix:payments:write"],"schemeName":"visor_cli_oauth"}}},"servers":{"e02cc6e5-1238-4b59-b1fd-3f6cb20e7f31":{"url":"https://api.visorfinance.app","variables":{}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"description":"OAuth 2.0 access token of the Visor CLI browser login (authorization code with PKCE). Only the first-party Visor CLI client can use it on this API.","flows":{"authorizationCode":{"authorizationUrl":"https://dashboard.visorfinance.app/oauth/authorize","refreshUrl":"https://dashboard.visorfinance.app/oauth/token","scopes":{"pfm:read":"Read financial data","pfm:transactions:write":"Create, edit, and delete transactions","pix:payments:write":"Start Pix payments that you confirm with biometrics at your bank"},"tokenUrl":"https://dashboard.visorfinance.app/oauth/token"}},"type":"oauth2","scopes":["pix:payments:write"],"schemeName":"visor_cli_oauth"},"schema":{"title":"OAuth2 Auth","type":"string","isRequired":true,"description":"OAuth 2.0 access token of the Visor CLI browser login (authorization code with PKCE). Only the first-party Visor CLI client can use it on this API.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"visor_cli_oauth","name":"Authorization"}],"title":"visor_cli_oauth"}]},"originalFileLocation":"openapi.json"},"subdomain":"visorfinance","siteName":"Visor Personal API","title":"Start a Pix payment - Visor Personal API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/pix-payments/start-a-pix-payment","matchLevel":0},"pt-BR":{"href":"/pt-BR/introduction","matchLevel":4}}},"lastModified":"2026-10-28T22:09:00.568Z","originalFileLocation":"api-reference/pix-payments/start-a-pix-payment.mdx","locale":"en"},"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=\"Starts a Pix to one Pix key and returns it with a start_url. Open start_url in the browser: the first Pix from a bank opens the bank page to authorize Visor, then every Pix opens the page where the user confirms with biometrics. Nothing is paid until the user confirms there. Requires the pix:payments:write scope (Visor CLI login), the Pro or Premium plan, and an Idempotency-Key header. A retry with the same key and the same Pix returns the Pix already started, with idempotent-replayed: true; the same key with another key, amount, or description returns 409 IDEMPOTENCY_CONFLICT. Read GET /v1/pix-payments/{pix_payment_id} until status is final.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Visor Personal API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/visorfinance/5UapUUoMXshFQcuc/_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/visorfinance/5UapUUoMXshFQcuc/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/visorfinance/5UapUUoMXshFQcuc/_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/visorfinance/5UapUUoMXshFQcuc/_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/visorfinance/5UapUUoMXshFQcuc/_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/visorfinance/5UapUUoMXshFQcuc/_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/visorfinance/5UapUUoMXshFQcuc/_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/visorfinance/5UapUUoMXshFQcuc/_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/visorfinance/5UapUUoMXshFQcuc/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Start a Pix payment - Visor Personal API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Starts a Pix to one Pix key and returns it with a start_url. Open start_url in the browser: the first Pix from a bank opens the bank page to authorize Visor, then every Pix opens the page where the user confirms with biometrics. Nothing is paid until the user confirms there. Requires the pix:payments:write scope (Visor CLI login), the Pro or Premium plan, and an Idempotency-Key header. A retry with the same key and the same Pix returns the Pix already started, with idempotent-replayed: true; the same key with another key, amount, or description returns 409 IDEMPOTENCY_CONFLICT. Read GET /v1/pix-payments/{pix_payment_id} until status is final.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Visor Personal API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.visorfinance.app/api-reference/pix-payments/start-a-pix-payment\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://visorfinance.mintlify.app/_mintlify/api/og/v2?division=Pix+payments\u0026amp;title=Start+a+Pix+payment\u0026amp;description=Starts+a+Pix+to+one+Pix+key+and+returns+it+with+a+%60start_url%60.+Open+%60start_url%60+in+the+browser%3A+the+first+Pix+from+a+bank+opens+the+bank+page+to+authorize+Visor\u0026amp;theme=b0ec978ce696cb62f7364ac7\u0026amp;signature=47024a92f8a113386bf086b1baea7e1d15418976ad5c0dbe01858766c35e6d7f\">\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=\"Start a Pix payment - Visor Personal API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Starts a Pix to one Pix key and returns it with a start_url. Open start_url in the browser: the first Pix from a bank opens the bank page to authorize Visor, then every Pix opens the page where the user confirms with biometrics. Nothing is paid until the user confirms there. Requires the pix:payments:write scope (Visor CLI login), the Pro or Premium plan, and an Idempotency-Key header. A retry with the same key and the same Pix returns the Pix already started, with idempotent-replayed: true; the same key with another key, amount, or description returns 409 IDEMPOTENCY_CONFLICT. Read GET /v1/pix-payments/{pix_payment_id} until status is final.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://visorfinance.mintlify.app/_mintlify/api/og/v2?division=Pix+payments\u0026amp;title=Start+a+Pix+payment\u0026amp;description=Starts+a+Pix+to+one+Pix+key+and+returns+it+with+a+%60start_url%60.+Open+%60start_url%60+in+the+browser%3A+the+first+Pix+from+a+bank+opens+the+bank+page+to+authorize+Visor\u0026amp;theme=b0ec978ce696cb62f7364ac7\u0026amp;signature=47024a92f8a113386bf086b1baea7e1d15418976ad5c0dbe01858766c35e6d7f\">\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/visorfinance/5UapUUoMXshFQcuc/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Visor Personal API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#155DFC\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.visorfinance.app/api-reference/pix-payments/start-a-pix-payment\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/pix-payments/start-a-pix-payment.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.visorfinance.app/#organization\",\"name\":\"Visor Personal API\",\"url\":\"https://docs.visorfinance.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/visorfinance/184cqPrO8BXx_1WV/logo/light-mode.svg?fit=max\u0026auto=format\u0026n=184cqPrO8BXx_1WV\u0026q=85\u0026s=fb4be31a4d2e8c680c4e43c5758216e0\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.visorfinance.app#website\",\"name\":\"Visor Personal API\",\"url\":\"https://docs.visorfinance.app\",\"publisher\":{\"@id\":\"https://docs.visorfinance.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.visorfinance.app/api-reference/pix-payments/start-a-pix-payment#webpage\",\"url\":\"https://docs.visorfinance.app/api-reference/pix-payments/start-a-pix-payment\",\"name\":\"Start a Pix payment\",\"description\":\"Starts a Pix to one Pix key and returns it with a start_url. Open start_url in the browser: the first Pix from a bank opens the bank page to authorize Visor, then every Pix opens the page where the user confirms with biometrics. Nothing is paid until the user confirms there. Requires the pix:payments:write scope (Visor CLI login), the Pro or Premium plan, and an Idempotency-Key header. A retry with the same key and the same Pix returns the Pix already started, with idempotent-replayed: true; the same key with another key, amount, or description returns 409 IDEMPOTENCY_CONFLICT. Read GET /v1/pix-payments/{pix_payment_id} until status is final.\",\"dateModified\":\"2026-10-28T22:09:00.568Z\",\"isPartOf\":{\"@id\":\"https://docs.visorfinance.app#website\"},\"breadcrumb\":{\"@id\":\"https://docs.visorfinance.app/api-reference/pix-payments/start-a-pix-payment#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.visorfinance.app/api-reference/pix-payments/start-a-pix-payment#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Visor Personal API\",\"item\":\"https://docs.visorfinance.app\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Start a Pix payment\",\"item\":\"https://docs.visorfinance.app/api-reference/pix-payments/start-a-pix-payment\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.visorfinance.app/api-reference/pix-payments/start-a-pix-payment#apireference\",\"headline\":\"Start a Pix payment\",\"name\":\"Start a Pix payment\",\"description\":\"Starts a Pix to one Pix key and returns it with a start_url. Open start_url in the browser: the first Pix from a bank opens the bank page to authorize Visor, then every Pix opens the page where the user confirms with biometrics. Nothing is paid until the user confirms there. Requires the pix:payments:write scope (Visor CLI login), the Pro or Premium plan, and an Idempotency-Key header. A retry with the same key and the same Pix returns the Pix already started, with idempotent-replayed: true; the same key with another key, amount, or description returns 409 IDEMPOTENCY_CONFLICT. Read GET /v1/pix-payments/{pix_payment_id} until status is final.\",\"url\":\"https://docs.visorfinance.app/api-reference/pix-payments/start-a-pix-payment\",\"mainEntityOfPage\":{\"@id\":\"https://docs.visorfinance.app/api-reference/pix-payments/start-a-pix-payment#webpage\"},\"dateModified\":\"2026-10-28T22:09:00.568Z\",\"publisher\":{\"@id\":\"https://docs.visorfinance.app/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.visorfinance.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Visor Personal API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Visor Personal API","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/introduction"}]},{"tab":"API reference","groups":[{"group":"Spaces","pages":[{"title":"List accessible spaces","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/spaces","href":"/api-reference/spaces/list-accessible-spaces"}]},{"group":"Accounts","pages":[{"title":"List accounts","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/spaces/{space_id}/accounts","href":"/api-reference/accounts/list-accounts"}]},{"group":"Categories","pages":[{"title":"List categories","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/spaces/{space_id}/categories","href":"/api-reference/categories/list-categories"}]},{"group":"Tags","pages":[{"title":"List tags","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/spaces/{space_id}/tags","href":"/api-reference/tags/list-tags"}]},{"group":"Transactions","pages":[{"title":"List transactions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/spaces/{space_id}/transactions","href":"/api-reference/transactions/list-transactions"},{"title":"Get a transaction","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/spaces/{space_id}/transactions/{transaction_id}","href":"/api-reference/transactions/get-a-transaction"},{"title":"Create a transaction","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/spaces/{space_id}/transactions","href":"/api-reference/transactions/create-a-transaction"},{"title":"Create transactions in a batch","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/spaces/{space_id}/transactions/batch","href":"/api-reference/transactions/create-transactions-in-a-batch"},{"title":"Edit a transaction","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/spaces/{space_id}/transactions/{transaction_id}","href":"/api-reference/transactions/edit-a-transaction"},{"title":"Delete a transaction","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/spaces/{space_id}/transactions/{transaction_id}","href":"/api-reference/transactions/delete-a-transaction"}]},{"group":"Overview","pages":[{"title":"Get the financial overview","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/spaces/{space_id}/overview","href":"/api-reference/overview/get-the-financial-overview"}]},{"group":"Cards","pages":[{"title":"List credit cards","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/spaces/{space_id}/cards","href":"/api-reference/cards/list-credit-cards"},{"title":"List the bills of a credit card","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/spaces/{space_id}/cards/{card_id}/bills","href":"/api-reference/cards/list-the-bills-of-a-credit-card"}]},{"group":"Recurring expenses","pages":[{"title":"List subscriptions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/spaces/{space_id}/subscriptions","href":"/api-reference/recurring-expenses/list-subscriptions"},{"title":"List fixed bills","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/spaces/{space_id}/fixed-bills","href":"/api-reference/recurring-expenses/list-fixed-bills"}]},{"group":"Installments","pages":[{"title":"List installment plans","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/spaces/{space_id}/installment-plans","href":"/api-reference/installments/list-installment-plans"}]},{"group":"Goals","pages":[{"title":"List goals","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/spaces/{space_id}/goals","href":"/api-reference/goals/list-goals"}]},{"group":"Investments","pages":[{"title":"List investments","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/spaces/{space_id}/investments","href":"/api-reference/investments/list-investments"}]},{"group":"Connections","pages":[{"title":"List Open Finance connections","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/spaces/{space_id}/connections","href":"/api-reference/connections/list-open-finance-connections"}]},{"group":"User","pages":[{"title":"Show the current user","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/me","href":"/api-reference/user/show-the-current-user"}]},{"group":"Notifications","pages":[{"title":"List notifications","description":"Returns one page of the user's inbox, newest first. Requires the `pfm:read` scope. Pass `next_cursor` as `after` to read the next page; it is `null` on the last page. Notifications the user cleared do not appear.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/notifications","href":"/api-reference/notifications/list-notifications"}]},{"group":"Pix payments","pages":[{"title":"Start a Pix payment","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/pix-payments","href":"/api-reference/pix-payments/start-a-pix-payment"},{"title":"Get a Pix payment","description":"Returns the status of a Pix you started. Poll it every few seconds until `status` is `completed`, `failed`, `canceled`, or `expired`. While it is `pending`, `start_url` opens the page the user needs next. Requires the `pix:payments:write` scope (Visor CLI login).","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/pix-payments/{pix_payment_id}","href":"/api-reference/pix-payments/get-a-pix-payment"}]}]}]},{"language":"pt-BR","navbar":{"primary":{"type":"button","label":"Criar um token","href":"https://dashboard.visorfinance.app/settings/connected_apps"}},"pages":[{"title":"pt-BR","href":"/pt-BR/introduction"}]}]},"basePath":"","title":"Start a Pix payment - Visor Personal API","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","Page-Bevw23-4.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","clsx-BIWXJmsZ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DKZWslLH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-UDqbR6xh.js"]}