Creates a cross-ramp transaction on behalf of a verified user. This converts one fiat currency to another (e.g., MXN to USD) and initiates the transfer to the target bank account.
Retry safely without creating duplicate transactions: pass an optional Idempotency-Key header (UUIDv4). A retry with the same key and body replays the original response. See the Idempotency Guide for the full contract.
Optional. Unique key (UUIDv4 recommended) to safely retry this request without creating a duplicate transaction. A retry with the same key and body replays the original response. See /docs/idempotency.
Target country. Required to route USD to China (CN) or Hong Kong (HK), since USD otherwise defaults to the US. Resolved from the target bank account country when omitted.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Capa.fi","colors":{"primary":"#191f14","light":"#fff","dark":"#191f14"},"logo":{"light":"https://mintcdn.com/capa/sdievWamxx2n0U65/logo/logo.svg?fit=max\u0026auto=format\u0026n=sdievWamxx2n0U65\u0026q=85\u0026s=cd1c9b9fcff02ef9bd460d71d7823292","dark":"https://mintcdn.com/capa/sdievWamxx2n0U65/logo/logo.svg?fit=max\u0026auto=format\u0026n=sdievWamxx2n0U65\u0026q=85\u0026s=cd1c9b9fcff02ef9bd460d71d7823292"},"favicon":"https://mintcdn.com/capa/sdievWamxx2n0U65/favicon.svg?fit=max\u0026auto=format\u0026n=sdievWamxx2n0U65\u0026q=85\u0026s=154093ec8e5f8f060d360b5932060b3b","navbar":{"links":[{"href":"https://status.capa.fi","label":"Status"}]},"fonts":{"heading":{"family":"Space Grotesk"},"body":{"family":"Space Grotesk"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"capa","hasAudioNarration":false,"actualSubdomain":"capa","customDomains":["docs.capa.fi"],"gitSource":{"type":"github","owner":"capalabs","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ac5225c9bd168f34f06f5ea","collectionId":"2b6582ed-be5e-4405-90f4-5ccd38247ae9","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ac5225c9bd168f34f06f5ea"},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6ac5225c9bd168f34f06f5ea","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"API Reference","count":34},{"language":"default","tag":"Capa Partner API - V2","count":34},{"language":"default","tag":"Guides","count":20},{"language":"default","tag":"Documentation","count":20},{"language":"default","tag":"📣 Webhooks","count":5},{"language":"default","tag":"Users","count":5},{"language":"default","tag":"Wallets","count":4},{"language":"default","tag":"Cross-Ramp","count":3},{"language":"default","tag":"Webhooks · Notifications","count":3},{"language":"default","tag":"Transactions","count":3}]},"assistantConfig":{"deflection":{"enabled":true,"email":"developers@capa.fi","showHelpButton":true}},"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":"editor-v7-file-tree","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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"editor-agent-model-picker","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":"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}],"isAtlas":false,"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":".table td,.table th{text-align:left}ol ol{list-style-type:lower-alpha}ol ol ol{list-style-type:lower-roman}"}],"page":{"pagePath":"reference/crossramppartnerv2controller_createpartnercrossramp","slug":"/reference/crossramppartnerv2controller_createpartnercrossramp","pageMetadata":{"title":"Create Cross-Ramp","openapi":"reference/openapi/CrossRampPartnerV2Controller_createPartnerCrossRamp.json POST /api/partner/v2/cross-ramp","description":null,"href":"/reference/crossramppartnerv2controller_createpartnercrossramp"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Step,Steps,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Creates a cross-ramp transaction on behalf of a `,_jsx(_components.strong,{children:`verified`}),` user. This converts one fiat currency to another (e.g., MXN to USD) and initiates the transfer to the target bank account.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`For sandbox transaction testing, use the `,_jsx(_components.a,{href:`/reference/transactionpartnerv2controller_getmocktestingguide`,children:`Mock Testing Guide`}),`.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`idempotency`,children:`Idempotency`}),`\n`,_jsxs(_components.p,{children:[`Retry safely without creating duplicate transactions: pass an optional `,_jsx(_components.strong,{children:_jsx(_components.code,{children:`Idempotency-Key`})}),` header (UUIDv4). A retry with the same key and body replays the original response. See the `,_jsx(_components.a,{href:`/docs/idempotency`,children:`Idempotency Guide`}),` for the full contract.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.sandbox.capa.fi/api/partner/v2/cross-ramp`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Content-Type: application/json'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'partner-api-key: \u003cpartner-api-key>'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '...'`})]}),`\n`]})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`field-relationships`,children:`Field Relationships`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Provide either `,_jsx(_components.code,{children:`sourceAmount`}),` or `,_jsx(_components.code,{children:`targetAmount`}),`, not both.`]}),`\n`,_jsxs(_components.li,{children:[`Provide either `,_jsx(_components.code,{children:`targetBankAccount`}),` (inline bank details) or `,_jsx(_components.code,{children:`targetBankAccountId`}),` (reference to a saved bank account).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`sourceCurrency`}),` and `,_jsx(_components.code,{children:`targetCurrency`}),` must differ.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`targetCurrency`}),` must match the currency of the target bank account’s country.`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`bank-account-requirements-by-country`,children:`Bank Account Requirements by Country`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Country`}),_jsx(_components.th,{children:`Required Fields`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`MX`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`accountIdentifier`}),` (18-digit CLABE)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`DO`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`accountIdentifier`}),`, `,_jsx(_components.code,{children:`bankName`}),`, `,_jsx(_components.code,{children:`accountType`}),`, `,_jsx(_components.code,{children:`documentIdentifier`}),`, `,_jsx(_components.code,{children:`documentType`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`US`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`accountIdentifier`}),`, `,_jsx(_components.code,{children:`bankName`}),`, `,_jsx(_components.code,{children:`routingNumber`}),`, `,_jsx(_components.code,{children:`accountHolder`}),`, `,_jsx(_components.code,{children:`address`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`SEPA`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`iban`}),`, `,_jsx(_components.code,{children:`bic`}),`, `,_jsx(_components.code,{children:`bankName`}),`, `,_jsx(_components.code,{children:`accountHolder`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`CN / HK`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`accountIdentifier`}),`, `,_jsx(_components.code,{children:`bankName`}),`, `,_jsx(_components.code,{children:`accountType`}),`, `,_jsx(_components.code,{children:`accountHolder`}),`, `,_jsx(_components.code,{children:`address`}),`; `,_jsx(_components.code,{children:`bic`}),` optional (SWIFT)`]})]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`china-\u0026-hong-kong-destinations`,children:`China \u0026 Hong Kong Destinations`}),`\n`,_jsxs(_components.p,{children:[`USD can be delivered to bank accounts in `,_jsx(_components.strong,{children:`China (CN)`}),` and `,_jsx(_components.strong,{children:`Hong Kong (HK)`}),` as `,_jsx(_components.strong,{children:`destination-only`}),` corridors:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`USD only`}),` — CNY is not yet supported. Since source and target currencies must differ, the source currency must be `,_jsx(_components.strong,{children:`MXN, DOP, or EUR`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`targetCountry`})}),` — set to `,_jsx(_components.code,{children:`\"CN\"`}),` or `,_jsx(_components.code,{children:`\"HK\"`}),` to route USD there (USD otherwise defaults to the US); resolved from the target bank account country when omitted.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`targetRail`})}),` — `,_jsx(_components.code,{children:`LOCAL`}),` (default) or `,_jsx(_components.code,{children:`SWIFT`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`invoiceFile`})}),` — Base64-encoded PDF invoice, `,_jsx(_components.strong,{children:`required`}),` when the target country is `,_jsx(_components.code,{children:`CN`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`reference`})}),` — optional memo (max 140 chars) forwarded to the payment provider. Supported across all currencies.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`See the `,_jsx(_components.a,{href:`/docs/cross-ramp#china--hong-kong-destinations`,children:`Cross-Ramp guide`}),` for the full flow.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`integration-flow`,children:`Integration Flow`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Create a user and complete KYC`,children:_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/reference/userpartnercontrollerv2_createuser`,children:`POST /api/partner/v2/users`}),`, then `,_jsx(_components.a,{href:`/reference/userpartnercontrollerv2_createverificationlink`,children:`KYC verification`})]})}),_jsx(Step,{title:`Get a cross-ramp quote (optional)`,children:_jsxs(_components.p,{children:[_jsx(_components.a,{href:`/reference/crossramppartnerv2controller_createpartnercrossrampquote`,children:`POST /api/partner/v2/cross-ramp/quotes`}),` — locks the exchange rate`]})}),_jsx(Step,{title:`Create cross-ramp transaction`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`POST /api/partner/v2/cross-ramp`}),` (this endpoint)`]})}),_jsx(Step,{title:`User deposits source currency`,children:_jsxs(_components.p,{children:[`The user deposits fiat in the source currency to the bank account in `,_jsx(_components.code,{children:`sourceBankAccount`}),`.`]})})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`important-notes`,children:`Important Notes`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`User must be KYC-verified`}),` before creating transactions.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Supported corridors`}),`: MX, DO, US, and SEPA countries. USD can also be delivered to `,_jsx(_components.strong,{children:`CN (China)`}),` and `,_jsx(_components.strong,{children:`HK (Hong Kong)`}),` as destination-only corridors.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Amount limits`}),`: Fiat amounts must fall within the min/max thresholds defined in your partner agreement.`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`use-cases`,children:`Use Cases`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`International Remittances`}),`: Convert MXN to USD and send funds to a US bank account.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Multi-Currency Payouts`}),`: Deliver funds in a different fiat currency from the source deposit.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Cross-Border B2B Payments`}),`: Facilitate business payments across currencies.`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`error-codes`,children:`Error Codes`}),`\n`,_jsx(Heading,{level:`3`,id:`common-errors`,children:`Common Errors`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`HTTP Status`}),_jsx(_components.th,{children:`Code`}),_jsx(_components.th,{children:`Message`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`401`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`UNAUTHORIZED`})}),_jsx(_components.td,{children:`”API Key is missing”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`401`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`UNAUTHORIZED`})}),_jsx(_components.td,{children:`”Invalid API Key format”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`401`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`UNAUTHORIZED`})}),_jsx(_components.td,{children:`”Invalid API Key”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`403`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INVALID_PARTNER_FLOW`})}),_jsx(_components.td,{children:`”The partner has an invalid flow.”`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`verified-user-errors`,children:`Verified User Errors`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`HTTP Status`}),_jsx(_components.th,{children:`Code`}),_jsx(_components.th,{children:`Message`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`REQUIRED_USER_ID_ERROR`})}),_jsx(_components.td,{children:`”This endpoint requires a user id to be provided”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`403`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`USER_NOT_VERIFIED_ERROR`})}),_jsx(_components.td,{children:`”User is not allowed to perform the operations because has not completed the KYC verification.”`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`endpoint-specific-errors`,children:`Endpoint-Specific Errors`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`HTTP Status`}),_jsx(_components.th,{children:`Code`}),_jsx(_components.th,{children:`Message`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INVALID_USER_INPUT_ERROR`})}),_jsx(_components.td,{children:`”Invalid User Input”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`BAD_REQUEST`})}),_jsx(_components.td,{children:`”Either targetBankAccount or targetBankAccountId must be provided”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`BAD_REQUEST`})}),_jsxs(_components.td,{children:[`”Unsupported country for cross-ramp: `,`“`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`BAD_REQUEST`})}),_jsx(_components.td,{children:`”invoiceFile is required when target bank account country is CN”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`BAD_REQUEST`})}),_jsxs(_components.td,{children:[`”Target currency must match target bank account currency (expected: `,`, actual: `,`)“`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`BAD_REQUEST`})}),_jsx(_components.td,{children:`”Source and target currencies must differ”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`BAD_REQUEST`})}),_jsx(_components.td,{children:`”Requested fiat currency is invalid or inactive”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`BAD_REQUEST`})}),_jsx(_components.td,{children:`”Provided quoteId is not a CROSS_RAMP quote”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`BAD_REQUEST`})}),_jsxs(_components.td,{children:[`”Quote currency mismatch (expected: `,`, actual: `,`)“`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`QUOTE_EXPIRED`})}),_jsx(_components.td,{children:`”Quote has expired”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`BAD_REQUEST`})}),_jsxs(_components.td,{children:[`”Cannot create transaction: No supported banks configured for user with id: `,`“`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`403`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`USER_BANK_INFO_ACCESS_DENIED`})}),_jsx(_components.td,{children:`”The bank information does not belong to the specified user.”`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`404`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`USER_BANK_INFO_NOT_FOUND`})}),_jsx(_components.td,{children:`”User bank information not found.”`})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create Cross-Ramp","openapi":"reference/openapi/CrossRampPartnerV2Controller_createPartnerCrossRamp.json POST /api/partner/v2/cross-ramp","description":null,"href":"/reference/crossramppartnerv2controller_createpartnercrossramp"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Idempotency","slug":"idempotency","depth":2,"children":[]},{"title":"Field Relationships","slug":"field-relationships","depth":2,"children":[]},{"title":"Bank Account Requirements by Country","slug":"bank-account-requirements-by-country","depth":2,"children":[]},{"title":"China \u0026 Hong Kong Destinations","slug":"china-\u0026-hong-kong-destinations","depth":2,"children":[]},{"title":"Integration Flow","slug":"integration-flow","depth":2,"children":[]},{"title":"Important Notes","slug":"important-notes","depth":2,"children":[]},{"title":"Use Cases","slug":"use-cases","depth":2,"children":[]},{"title":"Error Codes","slug":"error-codes","depth":2,"children":[{"title":"Common Errors","slug":"common-errors","depth":3,"children":[]},{"title":"Verified User Errors","slug":"verified-user-errors","depth":3,"children":[]},{"title":"Endpoint-Specific Errors","slug":"endpoint-specific-errors","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"CrossRampPartnerV2Controller_createPartnerCrossRamp","parameters":["39c0494d-d764-4ed8-be5d-feea68c83227"],"requestBody":"22d048c5-c0b2-420d-a0ee-10019094d2af","responses":{"201":"1899d39e-fdb2-4d09-b1c7-9cf3016416ea","400":"f4d4b71a-4ba7-437a-a231-51f403f5170b","401":"ee145284-b04c-4fff-a96b-e6ef95b2fe54","403":"4d001602-6308-4de6-8dd2-f2bcb27fe96e","404":"056deb31-c00f-44d0-ab4e-276ed5db18d9","409":"cb2acc5d-dcf3-4ea2-bec7-ea6a1fb119b8","422":"a5b2cf88-9e00-4418-a6b5-52e259e83df9","500":"a43023e6-b015-40d3-ad0f-f3ff9b97b73c"},"tags":["cross-ramp"],"security":["a46fd3fd-6d04-42ea-94f0-e4ef11baf48c"],"method":"post","type":"path","servers":["46dda396-8678-46a5-9981-03b462d9469c","0d7482cc-0f09-4572-b799-4890cb6acb8c"],"path":"/api/partner/v2/cross-ramp","baseUrlOptions":["https://api.sandbox.capa.fi","https://api.capa.fi"],"title":"","description":"","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"39c0494d-d764-4ed8-be5d-feea68c83227":{"name":"Idempotency-Key","in":"header","description":"Optional. Unique key (UUIDv4 recommended) to safely retry this request without creating a duplicate transaction. A retry with the same key and body replays the original response. See /docs/idempotency.","required":false,"schema":{"type":"string","minLength":16,"maxLength":128,"example":"550e8400-e29b-41d4-a716-446655440000","isRequired":false,"description":"Optional. Unique key (UUIDv4 recommended) to safely retry this request without creating a duplicate transaction. A retry with the same key and body replays the original response. See /docs/idempotency.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"userId":{"type":"string","description":"User's identifier","example":"12a121ad-cbea-4ec4-9e0a-5c861e528bba","isRequired":true,"uniqueKey":"userId","typeLabel":"string"},"sourceCurrency":{"description":"Source currency symbol","example":"MXN","enum":["MXN","DOP","USD","EUR"],"type":"string","isRequired":true,"uniqueKey":"sourceCurrency","typeLabel":"enum\u003cstring>"},"targetCurrency":{"description":"Target currency symbol","example":"USD","enum":["MXN","DOP","USD","EUR"],"type":"string","isRequired":true,"uniqueKey":"targetCurrency","typeLabel":"enum\u003cstring>"},"targetBankAccount":{"type":"object","description":"User bank info to be saved","properties":{"accountIdentifier":{"type":"string","description":"Always required. MX: CLABE. DO/US: account number. EU/SEPA: IBAN. For US (ACH), also provide routingNumber.","uniqueKey":"targetBankAccount.accountIdentifier","typeLabel":"string"},"routingNumber":{"type":"string","description":"Required only for US","uniqueKey":"targetBankAccount.routingNumber","typeLabel":"string"},"bic":{"type":"string","description":"Required only for SEPA countries","uniqueKey":"targetBankAccount.bic","typeLabel":"string"},"country":{"type":"string","enum":["MX","DO","US","AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","IS","LI","NO","CH","GB","MC","SM","AD","VA","CN","HK"],"description":"Required. Determines validation rules. CN (China) and HK (Hong Kong) are cross-ramp destinations only (USD delivery).","uniqueKey":"targetBankAccount.country","typeLabel":"enum\u003cstring>"},"accountType":{"type":"string","enum":["SAVINGS","CHECKING"],"description":"Required only for DO and US","uniqueKey":"targetBankAccount.accountType","typeLabel":"enum\u003cstring>"},"bankName":{"type":"string","description":"Required only for DO and US","uniqueKey":"targetBankAccount.bankName","typeLabel":"string"},"documentIdentifier":{"type":"string","description":"Required only for DO and US","uniqueKey":"targetBankAccount.documentIdentifier","typeLabel":"string"},"documentType":{"type":"string","enum":["PASSPORT","CEDULA","RNC"],"description":"Required for DO","uniqueKey":"targetBankAccount.documentType","typeLabel":"enum\u003cstring>"},"accountHolder":{"type":"object","description":"Required for SEPA countries and US","properties":{"type":{"type":"string","enum":["INDIVIDUAL","BUSINESS"],"uniqueKey":"targetBankAccount.accountHolder.type","typeLabel":"enum\u003cstring>"},"businessName":{"type":"string","description":"Required when type=BUSINESS","uniqueKey":"targetBankAccount.accountHolder.businessName","typeLabel":"string"},"firstName":{"type":"string","description":"Required when type=INDIVIDUAL","uniqueKey":"targetBankAccount.accountHolder.firstName","typeLabel":"string"},"lastName":{"type":"string","description":"Required when type=INDIVIDUAL","uniqueKey":"targetBankAccount.accountHolder.lastName","typeLabel":"string"}},"uniqueKey":"targetBankAccount.accountHolder","typeLabel":"object"},"address":{"type":"object","description":"Required only for US","properties":{"streetLine1":{"type":"string","description":"Required","uniqueKey":"targetBankAccount.address.streetLine1","typeLabel":"string"},"streetLine2":{"type":"string","description":"Optional","uniqueKey":"targetBankAccount.address.streetLine2","typeLabel":"string"},"city":{"type":"string","description":"Required","uniqueKey":"targetBankAccount.address.city","typeLabel":"string"},"state":{"type":"string","description":"Optional","uniqueKey":"targetBankAccount.address.state","typeLabel":"string"},"postalCode":{"type":"string","description":"Required","uniqueKey":"targetBankAccount.address.postalCode","typeLabel":"string"},"country":{"type":"string","description":"Required. Must be US","enum":["US"],"uniqueKey":"targetBankAccount.address.country","typeLabel":"enum\u003cstring>"}},"uniqueKey":"targetBankAccount.address","typeLabel":"object"}},"uniqueKey":"targetBankAccount","typeLabel":"object"},"targetBankAccountId":{"type":"string","description":"ID of an existing bank account to use as the target. Either targetBankAccount or targetBankAccountId must be provided.","uniqueKey":"targetBankAccountId","typeLabel":"string"},"sourceAmount":{"type":"number","description":"Amount of currency from source","uniqueKey":"sourceAmount","typeLabel":"number"},"targetAmount":{"type":"number","description":"Amount of currency that will be delivered","uniqueKey":"targetAmount","typeLabel":"number"},"quoteId":{"type":"string","description":"Identifier for the quote to be used for the transaction.","uniqueKey":"quoteId","typeLabel":"string"},"premiumSpread":{"type":"number","description":"Premium spread percentage","uniqueKey":"premiumSpread","typeLabel":"number"},"targetCountry":{"type":"string","enum":["MX","DO","US","AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","IS","LI","NO","CH","GB","MC","SM","AD","VA","CN","HK"],"description":"Target country. Required to route USD to China (CN) or Hong Kong (HK), since USD otherwise defaults to the US. Resolved from the target bank account country when omitted.","uniqueKey":"targetCountry","typeLabel":"enum\u003cstring>"},"targetRail":{"type":"string","enum":["LOCAL","SWIFT"],"description":"Target payment rail for CN/HK destinations. Defaults to LOCAL; use SWIFT for an international wire.","uniqueKey":"targetRail","typeLabel":"enum\u003cstring>"},"invoiceFile":{"type":"string","description":"Base64-encoded PDF invoice. Required when the target bank account country is CN (China).","uniqueKey":"invoiceFile","typeLabel":"string"},"reference":{"type":"string","maxLength":140,"description":"Free-text remittance reference / memo (max 140 chars) forwarded to the payment provider. Supported across all currencies.","uniqueKey":"reference","typeLabel":"string"}},"required":["userId","sourceCurrency","targetCurrency"],"x-readme-ref-name":"CreatePartnerCrossRampTransactionV2RequestBody","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"userId":"12a121ad-cbea-4ec4-9e0a-5c861e528bba","sourceCurrency":"MXN","targetCurrency":"USD","targetBankAccount":{"accountIdentifier":"\u003cstring>","routingNumber":"\u003cstring>","bic":"\u003cstring>","bankName":"\u003cstring>","documentIdentifier":"\u003cstring>","accountHolder":{"businessName":"\u003cstring>","firstName":"\u003cstring>","lastName":"\u003cstring>"},"address":{"streetLine1":"\u003cstring>","streetLine2":"\u003cstring>","city":"\u003cstring>","state":"\u003cstring>","postalCode":"\u003cstring>","country":"US"}},"targetBankAccountId":"\u003cstring>","sourceAmount":123,"targetAmount":123,"quoteId":"\u003cstring>","premiumSpread":123,"invoiceFile":"\u003cstring>","reference":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"1899d39e-fdb2-4d09-b1c7-9cf3016416ea":{"description":"Cross-ramp transaction created successfully. Returns the transaction details, including its id and current status.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","example":true,"uniqueKey":"success","typeLabel":"boolean"},"data":{"type":"object","properties":{"id":{"type":"string","description":"Transaction ID","example":"12a121ad-cbea-4ec4-9e0a-5c861e528bba","isRequired":true,"uniqueKey":"data.id","typeLabel":"string"},"userId":{"type":"string","description":"User ID","example":"12a121ad-cbea-4ec4-9e0a-5c861e528bba","isRequired":true,"uniqueKey":"data.userId","typeLabel":"string"},"status":{"description":"Transaction status","example":"PENDING_FUNDS","enum":["FAILED","COMPLETED","PENDING","PENDING_PAYMENT","FIAT_PAYMENT_RECEIVED","FIAT_RECEIVED","CRYPTO_RECEIVED","CRYPTO_NOT_RECEIVED","COMPLETED_CRYPTO_RECEIVAL","CANCELLED","IN_PROGRESS","BANK_TRANSFER_PENDING","READY_BANK_TRANSFER","AWAITING_MANUAL_CRYPTO_TRANSFER","AWAITING_MANUAL_FIAT_TRANSFER","PENDING_FUNDS","FUNDS_RECEIVED","AWAITING_FUND_TRANSFER"],"type":"string","isRequired":true,"uniqueKey":"data.status","typeLabel":"enum\u003cstring>"},"exchangeRate":{"type":"number","description":"Exchange rate from source to target fiat","example":0.95,"isRequired":true,"uniqueKey":"data.exchangeRate","typeLabel":"number"},"sourceBankAccount":{"type":"object","description":"Bank account information for source fiat","required":["country","accountIdentifier","isVerified"],"x-readme-ref-name":"CrossRampSourceBankAccountResponse","properties":{"country":{"type":"string","description":"The country of the bank account","example":"MX","isRequired":true,"uniqueKey":"data.sourceBankAccount.country","typeLabel":"string"},"accountIdentifier":{"type":"string","description":"The account identifier for the bank account (CLABE in MX, account number elsewhere)","example":"014680260346007120","isRequired":true,"uniqueKey":"data.sourceBankAccount.accountIdentifier","typeLabel":"string"},"isVerified":{"type":"boolean","description":"Whether the account is verified","example":true,"isRequired":true,"uniqueKey":"data.sourceBankAccount.isVerified","typeLabel":"boolean"},"accountHolder":{"type":"object","description":"Beneficiary name of the bank account","required":["type","name"],"x-readme-ref-name":"AccountHolderResponse","example":{"type":"BUSINESS","name":"Capa.fi"},"properties":{"type":{"description":"Type of the account holder","example":"BUSINESS","enum":["INDIVIDUAL","BUSINESS"],"type":"string","isRequired":true,"uniqueKey":"data.sourceBankAccount.accountHolder.type","typeLabel":"enum\u003cstring>"},"name":{"type":"string","description":"Business name of the account holder","example":"Capa.fi","isRequired":true,"uniqueKey":"data.sourceBankAccount.accountHolder.name","typeLabel":"string"}},"uniqueKey":"data.sourceBankAccount.accountHolder","typeLabel":"object"},"bic":{"type":"string","description":"BIC of the bank account (SEPA countries)","example":"DEUTDEFF","uniqueKey":"data.sourceBankAccount.bic","typeLabel":"string"},"routingNumber":{"type":"string","description":"Routing number of the bank account (US)","example":"021000021","uniqueKey":"data.sourceBankAccount.routingNumber","typeLabel":"string"},"address":{"type":"object","description":"Address of the bank account","required":["streetLine1","city","state","postalCode","country"],"x-readme-ref-name":"BankAccountAddressResponse","example":{"streetLine1":"123 Main St","city":"New York","state":"NY","postalCode":"10001","country":"US"},"properties":{"streetLine1":{"type":"string","description":"Street line 1","example":"123 Main St","isRequired":true,"uniqueKey":"data.sourceBankAccount.address.streetLine1","typeLabel":"string"},"city":{"type":"string","description":"City","example":"New York","isRequired":true,"uniqueKey":"data.sourceBankAccount.address.city","typeLabel":"string"},"state":{"type":"string","description":"State/Province","example":"NY","isRequired":true,"uniqueKey":"data.sourceBankAccount.address.state","typeLabel":"string"},"postalCode":{"type":"string","description":"Postal/ZIP code","example":"10001","isRequired":true,"uniqueKey":"data.sourceBankAccount.address.postalCode","typeLabel":"string"},"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code","example":"US","isRequired":true,"uniqueKey":"data.sourceBankAccount.address.country","typeLabel":"string"}},"uniqueKey":"data.sourceBankAccount.address","typeLabel":"object"},"message":{"type":"string","description":"Message should be included in the deposit intent, so we can track the deposit in the bank","example":"RANDOM_MESSAGE","uniqueKey":"data.sourceBankAccount.message","typeLabel":"string"},"bankName":{"type":"string","description":"The name of the bank","example":"Santander","uniqueKey":"data.sourceBankAccount.bankName","typeLabel":"string"},"accountType":{"type":"string","description":"The type of the account","example":"SAVINGS","uniqueKey":"data.sourceBankAccount.accountType","typeLabel":"string"},"documentIdentifier":{"type":"string","description":"The document identifier used for verification (e.g. national tax / ID number)","example":"123abc","uniqueKey":"data.sourceBankAccount.documentIdentifier","typeLabel":"string"},"documentType":{"type":"string","description":"Type of the document bound to the account (country specific)","example":"RNC","uniqueKey":"data.sourceBankAccount.documentType","typeLabel":"string"},"iban":{"type":"string","description":"International Bank Account Number (SEPA / EU accounts)","example":"DE89370400440532013000","uniqueKey":"data.sourceBankAccount.iban","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.sourceBankAccount","typeLabel":"object"},"targetBankAccount":{"type":"object","description":"Bank account information for target fiat","required":["country","accountIdentifier","isVerified"],"x-readme-ref-name":"CrossRampSourceBankAccountResponse","properties":{"country":{"type":"string","description":"The country of the bank account","example":"MX","isRequired":true,"uniqueKey":"data.targetBankAccount.country","typeLabel":"string"},"accountIdentifier":{"type":"string","description":"The account identifier for the bank account (CLABE in MX, account number elsewhere)","example":"014680260346007120","isRequired":true,"uniqueKey":"data.targetBankAccount.accountIdentifier","typeLabel":"string"},"isVerified":{"type":"boolean","description":"Whether the account is verified","example":true,"isRequired":true,"uniqueKey":"data.targetBankAccount.isVerified","typeLabel":"boolean"},"accountHolder":{"type":"object","description":"Beneficiary name of the bank account","required":["type","name"],"x-readme-ref-name":"AccountHolderResponse","example":{"type":"BUSINESS","name":"Capa.fi"},"properties":{"type":{"description":"Type of the account holder","example":"BUSINESS","enum":["INDIVIDUAL","BUSINESS"],"type":"string","isRequired":true,"uniqueKey":"data.targetBankAccount.accountHolder.type","typeLabel":"enum\u003cstring>"},"name":{"type":"string","description":"Business name of the account holder","example":"Capa.fi","isRequired":true,"uniqueKey":"data.targetBankAccount.accountHolder.name","typeLabel":"string"}},"uniqueKey":"data.targetBankAccount.accountHolder","typeLabel":"object"},"bic":{"type":"string","description":"BIC of the bank account (SEPA countries)","example":"DEUTDEFF","uniqueKey":"data.targetBankAccount.bic","typeLabel":"string"},"routingNumber":{"type":"string","description":"Routing number of the bank account (US)","example":"021000021","uniqueKey":"data.targetBankAccount.routingNumber","typeLabel":"string"},"address":{"type":"object","description":"Address of the bank account","required":["streetLine1","city","state","postalCode","country"],"x-readme-ref-name":"BankAccountAddressResponse","example":{"streetLine1":"123 Main St","city":"New York","state":"NY","postalCode":"10001","country":"US"},"properties":{"streetLine1":{"type":"string","description":"Street line 1","example":"123 Main St","isRequired":true,"uniqueKey":"data.targetBankAccount.address.streetLine1","typeLabel":"string"},"city":{"type":"string","description":"City","example":"New York","isRequired":true,"uniqueKey":"data.targetBankAccount.address.city","typeLabel":"string"},"state":{"type":"string","description":"State/Province","example":"NY","isRequired":true,"uniqueKey":"data.targetBankAccount.address.state","typeLabel":"string"},"postalCode":{"type":"string","description":"Postal/ZIP code","example":"10001","isRequired":true,"uniqueKey":"data.targetBankAccount.address.postalCode","typeLabel":"string"},"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code","example":"US","isRequired":true,"uniqueKey":"data.targetBankAccount.address.country","typeLabel":"string"}},"uniqueKey":"data.targetBankAccount.address","typeLabel":"object"},"message":{"type":"string","description":"Message should be included in the deposit intent, so we can track the deposit in the bank","example":"RANDOM_MESSAGE","uniqueKey":"data.targetBankAccount.message","typeLabel":"string"},"bankName":{"type":"string","description":"The name of the bank","example":"Santander","uniqueKey":"data.targetBankAccount.bankName","typeLabel":"string"},"accountType":{"type":"string","description":"The type of the account","example":"SAVINGS","uniqueKey":"data.targetBankAccount.accountType","typeLabel":"string"},"documentIdentifier":{"type":"string","description":"The document identifier used for verification (e.g. national tax / ID number)","example":"123abc","uniqueKey":"data.targetBankAccount.documentIdentifier","typeLabel":"string"},"documentType":{"type":"string","description":"Type of the document bound to the account (country specific)","example":"RNC","uniqueKey":"data.targetBankAccount.documentType","typeLabel":"string"},"iban":{"type":"string","description":"International Bank Account Number (SEPA / EU accounts)","example":"DE89370400440532013000","uniqueKey":"data.targetBankAccount.iban","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.targetBankAccount","typeLabel":"object"},"createdAt":{"type":"string","description":"Transaction creation date","example":"2024-01-01T12:00:00Z","isRequired":true,"uniqueKey":"data.createdAt","typeLabel":"string"},"sourceCurrency":{"description":"Source currency symbol","example":"MXN","enum":["MXN","DOP","USD","EUR"],"type":"string","uniqueKey":"data.sourceCurrency","typeLabel":"enum\u003cstring>"},"targetCurrency":{"description":"Target currency symbol","example":"DOP","enum":["MXN","DOP","USD","EUR"],"type":"string","uniqueKey":"data.targetCurrency","typeLabel":"enum\u003cstring>"},"sourceAmount":{"type":"number","description":"Source amount","example":1000,"uniqueKey":"data.sourceAmount","typeLabel":"number"},"targetAmount":{"type":"number","description":"Target amount that will be delivered","example":950,"uniqueKey":"data.targetAmount","typeLabel":"number"},"premiumSpread":{"type":"number","description":"Premium spread applied","example":0.01,"uniqueKey":"data.premiumSpread","typeLabel":"number"},"completedAt":{"type":"string","description":"Transaction completion date (null if not completed)","uniqueKey":"data.completedAt","typeLabel":"string"}},"required":["id","userId","status","exchangeRate","sourceBankAccount","targetBankAccount","createdAt"],"x-readme-ref-name":"CrossRampPartnerV2Response","uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"success":true,"data":{"id":"12a121ad-cbea-4ec4-9e0a-5c861e528bba","userId":"12a121ad-cbea-4ec4-9e0a-5c861e528bba","status":"PENDING_FUNDS","sourceCurrency":"MXN","targetCurrency":"DOP","sourceAmount":1000,"targetAmount":950,"exchangeRate":0.95,"sourceBankAccount":{"country":"MX","accountIdentifier":"014680260346007120","bankName":"Santander","isVerified":true,"message":"12a121ad-cbea-4ec4-9e0a-5c861e528bba"},"targetBankAccount":{"country":"DO","accountIdentifier":"0123456789012345678","bankName":"Banco Popular Dominicano","isVerified":true},"createdAt":"2024-01-01T12:00:00Z","premiumSpread":0.01}},"examples":{"Example":{"title":"Example","value":{"success":true,"data":{"id":"12a121ad-cbea-4ec4-9e0a-5c861e528bba","userId":"12a121ad-cbea-4ec4-9e0a-5c861e528bba","status":"PENDING_FUNDS","sourceCurrency":"MXN","targetCurrency":"DOP","sourceAmount":1000,"targetAmount":950,"exchangeRate":0.95,"sourceBankAccount":{"country":"MX","accountIdentifier":"014680260346007120","bankName":"Santander","isVerified":true,"message":"12a121ad-cbea-4ec4-9e0a-5c861e528bba"},"targetBankAccount":{"country":"DO","accountIdentifier":"0123456789012345678","bankName":"Banco Popular Dominicano","isVerified":true},"createdAt":"2024-01-01T12:00:00Z","premiumSpread":0.01}}}},"exampleType":"examples"}},"exampleType":"examples"},"f4d4b71a-4ba7-437a-a231-51f403f5170b":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"code":{"type":"string","description":"Machine-readable error code.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"Optional per-field validation details.","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"required":["success","code","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"REQUIRED_USER_ID_ERROR":{"title":"REQUIRED_USER_ID_ERROR","value":{"success":false,"code":"REQUIRED_USER_ID_ERROR","message":"This endpoint requires a user id to be provided"}},"INVALID_USER_INPUT_ERROR":{"title":"INVALID_USER_INPUT_ERROR","value":{"success":false,"code":"INVALID_USER_INPUT_ERROR","message":"Invalid User Input"}},"BAD_REQUEST":{"title":"BAD_REQUEST","value":{"success":false,"code":"BAD_REQUEST","message":"Either targetBankAccount or targetBankAccountId must be provided"}},"BAD_REQUEST_2":{"title":"BAD_REQUEST_2","value":{"success":false,"code":"BAD_REQUEST","message":"Unsupported country for cross-ramp: {country}"}},"BAD_REQUEST_3":{"title":"BAD_REQUEST_3","value":{"success":false,"code":"BAD_REQUEST","message":"Target currency must match target bank account currency (expected: {expected}, actual: {actual})"}},"BAD_REQUEST_INVOICE_FILE":{"title":"BAD_REQUEST_INVOICE_FILE","value":{"success":false,"code":"BAD_REQUEST","message":"invoiceFile is required when target bank account country is CN"}},"BAD_REQUEST_4":{"title":"BAD_REQUEST_4","value":{"success":false,"code":"BAD_REQUEST","message":"Provided quoteId is not a CROSS_RAMP quote"}},"BAD_REQUEST_5":{"title":"BAD_REQUEST_5","value":{"success":false,"code":"BAD_REQUEST","message":"Quote currency mismatch (expected: {expected}, actual: {actual})"}},"BAD_REQUEST_6":{"title":"BAD_REQUEST_6","value":{"success":false,"code":"BAD_REQUEST","message":"Source and target currencies must differ"}},"BAD_REQUEST_7":{"title":"BAD_REQUEST_7","value":{"success":false,"code":"BAD_REQUEST","message":"Requested fiat currency is invalid or inactive"}},"BAD_REQUEST_8":{"title":"BAD_REQUEST_8","value":{"success":false,"code":"BAD_REQUEST","message":"This blockchain and token combination is disabled or does not exist"}},"BAD_REQUEST_9":{"title":"BAD_REQUEST_9","value":{"success":false,"code":"BAD_REQUEST","message":"Cannot create transaction: No supported banks configured for user with id: {userId}"}},"QUOTE_EXPIRED":{"title":"QUOTE_EXPIRED","value":{"success":false,"code":"QUOTE_EXPIRED","message":"Quote has expired"}}},"exampleType":"examples"}},"exampleType":"examples"},"ee145284-b04c-4fff-a96b-e6ef95b2fe54":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"code":{"type":"string","description":"Machine-readable error code.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"Optional per-field validation details.","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"required":["success","code","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"UNAUTHORIZED":{"title":"UNAUTHORIZED","value":{"success":false,"code":"UNAUTHORIZED","message":"API Key is missing"}},"UNAUTHORIZED_2":{"title":"UNAUTHORIZED_2","value":{"success":false,"code":"UNAUTHORIZED","message":"Invalid API Key format"}},"UNAUTHORIZED_3":{"title":"UNAUTHORIZED_3","value":{"success":false,"code":"UNAUTHORIZED","message":"Invalid API Key"}}},"exampleType":"examples"}},"exampleType":"examples"},"4d001602-6308-4de6-8dd2-f2bcb27fe96e":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"code":{"type":"string","description":"Machine-readable error code.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"Optional per-field validation details.","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"required":["success","code","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"USER_NOT_VERIFIED_ERROR":{"title":"USER_NOT_VERIFIED_ERROR","value":{"success":false,"code":"USER_NOT_VERIFIED_ERROR","message":"User is not allowed to perform the operations because has not completed the KYC verification."}},"USER_BANK_INFO_ACCESS_DENIED":{"title":"USER_BANK_INFO_ACCESS_DENIED","value":{"success":false,"code":"USER_BANK_INFO_ACCESS_DENIED","message":"The bank information does not belong to the specified user."}}},"exampleType":"examples"}},"exampleType":"examples"},"056deb31-c00f-44d0-ab4e-276ed5db18d9":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"code":{"type":"string","description":"Machine-readable error code.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"Optional per-field validation details.","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"required":["success","code","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"USER_BANK_INFO_NOT_FOUND":{"title":"USER_BANK_INFO_NOT_FOUND","value":{"success":false,"code":"USER_BANK_INFO_NOT_FOUND","message":"User bank information not found."}},"NOT_FOUND_ERROR":{"title":"NOT_FOUND_ERROR","value":{"success":false,"code":"NOT_FOUND_ERROR","message":"Requested resource was not found"}}},"exampleType":"examples"}},"exampleType":"examples"},"cb2acc5d-dcf3-4ea2-bec7-ea6a1fb119b8":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"code":{"type":"string","description":"Machine-readable error code.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"Optional per-field validation details.","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"required":["success","code","message"],"uniqueKey":"","typeLabel":"object"},"example":{"success":false,"code":"CONFLICT","message":"A request with this idempotency key is currently being processed"},"examples":{"Example":{"title":"Example","value":{"success":false,"code":"CONFLICT","message":"A request with this idempotency key is currently being processed"}}},"exampleType":"examples"}},"exampleType":"examples"},"a5b2cf88-9e00-4418-a6b5-52e259e83df9":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"code":{"type":"string","description":"Machine-readable error code.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"Optional per-field validation details.","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"required":["success","code","message"],"uniqueKey":"","typeLabel":"object"},"example":{"success":false,"code":"INVALID_USER_INPUT_ERROR","message":"Idempotency-Key was already used with a different request body"},"examples":{"Example":{"title":"Example","value":{"success":false,"code":"INVALID_USER_INPUT_ERROR","message":"Idempotency-Key was already used with a different request body"}}},"exampleType":"examples"}},"exampleType":"examples"},"a43023e6-b015-40d3-ad0f-f3ff9b97b73c":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"code":{"type":"string","description":"Machine-readable error code.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"Optional per-field validation details.","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"required":["success","code","message"],"uniqueKey":"","typeLabel":"object"},"example":{"success":false,"code":"INTERNAL_SERVER_ERROR","message":"Internal server error"},"examples":{"Example":{"title":"Example","value":{"success":false,"code":"INTERNAL_SERVER_ERROR","message":"Internal server error"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"a46fd3fd-6d04-42ea-94f0-e4ef11baf48c":{"PartnerApiKey":{"type":"apiKey","in":"header","name":"partner-api-key","description":"API key for the affiliated partner performing the request.","scopes":[],"schemeName":"PartnerApiKey"}}},"servers":{"46dda396-8678-46a5-9981-03b462d9469c":{"url":"https://api.sandbox.capa.fi"},"0d7482cc-0f09-4572-b799-4890cb6acb8c":{"url":"https://api.capa.fi"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"partner-api-key","description":"API key for the affiliated partner performing the request.","scopes":[],"schemeName":"PartnerApiKey"},"schema":{"title":"partner-api-key","type":"string","description":"API key for the affiliated partner performing the request.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"PartnerApiKey","name":"partner-api-key"}],"title":"PartnerApiKey"}]},"originalFileLocation":"reference/openapi/CrossRampPartnerV2Controller_createPartnerCrossRamp.json"},"subdomain":"capa","siteName":"Capa.fi","title":"Create Cross-Ramp - Capa.fi","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-06T16:31:38.615Z","originalFileLocation":"reference/crossramppartnerv2controller_createpartnercrossramp.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=\"application-name\" content=\"Capa.fi\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/capa/Gj5tlmaKVowjgoAW/_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/capa/Gj5tlmaKVowjgoAW/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/capa/Gj5tlmaKVowjgoAW/_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/capa/Gj5tlmaKVowjgoAW/_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/capa/Gj5tlmaKVowjgoAW/_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/capa/Gj5tlmaKVowjgoAW/_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/capa/Gj5tlmaKVowjgoAW/_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/capa/Gj5tlmaKVowjgoAW/_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/capa/Gj5tlmaKVowjgoAW/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create Cross-Ramp - Capa.fi\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Capa.fi\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.capa.fi/reference/crossramppartnerv2controller_createpartnercrossramp\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://capa.mintlify.app/_mintlify/api/og/v2?division=Cross-Ramp\u0026amp;title=Create+Cross-Ramp\u0026amp;theme=8042dca758d2679cfe40adac\u0026amp;signature=ab5b716627eddc3f63ab018c9f27f21d20b0953ffea5713a1f75145bb43ef28d\">\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 Cross-Ramp - Capa.fi\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://capa.mintlify.app/_mintlify/api/og/v2?division=Cross-Ramp\u0026amp;title=Create+Cross-Ramp\u0026amp;theme=8042dca758d2679cfe40adac\u0026amp;signature=ab5b716627eddc3f63ab018c9f27f21d20b0953ffea5713a1f75145bb43ef28d\">\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/capa/Gj5tlmaKVowjgoAW/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Capa.fi\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#191f14\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.capa.fi/reference/crossramppartnerv2controller_createpartnercrossramp\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/reference/crossramppartnerv2controller_createpartnercrossramp.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.capa.fi/#organization\",\"name\":\"Capa.fi\",\"url\":\"https://docs.capa.fi\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/capa/sdievWamxx2n0U65/logo/logo.svg?fit=max\u0026auto=format\u0026n=sdievWamxx2n0U65\u0026q=85\u0026s=cd1c9b9fcff02ef9bd460d71d7823292\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.capa.fi#website\",\"name\":\"Capa.fi\",\"url\":\"https://docs.capa.fi\",\"publisher\":{\"@id\":\"https://docs.capa.fi/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.capa.fi/reference/crossramppartnerv2controller_createpartnercrossramp#webpage\",\"url\":\"https://docs.capa.fi/reference/crossramppartnerv2controller_createpartnercrossramp\",\"name\":\"Create Cross-Ramp\",\"dateModified\":\"2026-10-06T16:31:38.615Z\",\"isPartOf\":{\"@id\":\"https://docs.capa.fi#website\"},\"breadcrumb\":{\"@id\":\"https://docs.capa.fi/reference/crossramppartnerv2controller_createpartnercrossramp#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.capa.fi/reference/crossramppartnerv2controller_createpartnercrossramp#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Capa Partner API - V2\",\"item\":\"https://docs.capa.fi/reference/userpartnercontrollerv2_createuser\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create Cross-Ramp\",\"item\":\"https://docs.capa.fi/reference/crossramppartnerv2controller_createpartnercrossramp\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.capa.fi/reference/crossramppartnerv2controller_createpartnercrossramp#apireference\",\"headline\":\"Create Cross-Ramp\",\"name\":\"Create Cross-Ramp\",\"url\":\"https://docs.capa.fi/reference/crossramppartnerv2controller_createpartnercrossramp\",\"mainEntityOfPage\":{\"@id\":\"https://docs.capa.fi/reference/crossramppartnerv2controller_createpartnercrossramp#webpage\"},\"dateModified\":\"2026-10-06T16:31:38.615Z\",\"publisher\":{\"@id\":\"https://docs.capa.fi/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.capa.fi#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Capa.fi\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Capa.fi","nav":{"global":null,"tabs":[{"tab":"Guides","icon":"book-open","pages":[{"title":"Guides","href":"/docs/getting-started"}]},{"tab":"API Reference","icon":"Code","pages":[{"group":"Capa Partner API - V2","pages":[{"group":"Users","pages":[{"title":"Create User","openapi":"reference/openapi/UserPartnerControllerV2_createUser.json POST /api/partner/v2/users","href":"/reference/userpartnercontrollerv2_createuser"},{"title":"Start KYC","openapi":"reference/openapi/UserPartnerControllerV2_createUserKYC.json POST /api/partner/v2/users/{userId}/kyc","href":"/reference/userpartnercontrollerv2_createuserkyc"},{"title":"Create KYC Link","openapi":"reference/openapi/UserPartnerControllerV2_createVerificationLink.json POST /api/partner/v2/users/{userId}/kyc/verification-link","href":"/reference/userpartnercontrollerv2_createverificationlink"},{"title":"Create KYB Link","openapi":"reference/openapi/UserPartnerControllerV2_generateKYBVerificationLink.json POST /api/partner/v2/users/{userId}/kyb/verification-link","href":"/reference/userpartnercontrollerv2_generatekybverificationlink"},{"title":"Request Signature","openapi":"reference/openapi/UserPartnerControllerV2_requestDocumentSignature.json POST /api/partner/v2/users/{userId}/documents/sign","href":"/reference/userpartnercontrollerv2_requestdocumentsignature"}]},{"group":"KYC","pages":[{"title":"Get KYC Details","openapi":"reference/openapi/KYCPartnerControllerV2_getUserVerificationDetails.json GET /api/partner/v2/kyc/details","href":"/reference/kycpartnercontrollerv2_getuserverificationdetails"}]},{"group":"KYB","pages":[{"title":"Submit Business Profile","openapi":"reference/openapi/KYBPartnerControllerV2_submitBusinessProfile.json POST /api/partner/v2/kyb","href":"/reference/kybpartnercontrollerv2_submitbusinessprofile"},{"title":"Get KYB Details","openapi":"reference/openapi/KYBPartnerControllerV2_getUserKYBDetails.json GET /api/partner/v2/kyb/details","href":"/reference/kybpartnercontrollerv2_getuserkybdetails"}]},{"group":"Quotes","pages":[{"title":"Create Quote","openapi":"reference/openapi/QuotePartnerV2Controller_createPartnerQuote.json POST /api/partner/v2/quotes","href":"/reference/quotepartnerv2controller_createpartnerquote"},{"title":"Get Quote Rate","openapi":"reference/openapi/QuotePartnerV2Controller_getPartnerQuoteRate.json GET /api/partner/v2/quotes","href":"/reference/quotepartnerv2controller_getpartnerquoterate"}]},{"group":"On-Ramp","pages":[{"title":"Create On-Ramp","openapi":"reference/openapi/OnRampPartnerV2Controller_createPartnerOnRamp.json POST /api/partner/v2/on-ramp","href":"/reference/onramppartnerv2controller_createpartneronramp"}]},{"group":"Off-Ramp","pages":[{"title":"Create Off-Ramp","openapi":"reference/openapi/OffRampPartnerV2Controller_createPartnerOffRamp.json POST /api/partner/v2/off-ramp","href":"/reference/offramppartnerv2controller_createpartnerofframp"},{"title":"Execute Off-Ramp","openapi":"reference/openapi/OffRampPartnerV2Controller_executeOffRamp.json POST /api/partner/v2/off-ramp/execute","description":"Executes a previously created off-ramp transaction. This endpoint triggers the actual processing of the off-ramp transaction after crypto funds have been received.","href":"/reference/offramppartnerv2controller_executeofframp"}]},{"group":"Cross-Ramp","pages":[{"title":"Create Cross-Ramp","openapi":"reference/openapi/CrossRampPartnerV2Controller_createPartnerCrossRamp.json POST /api/partner/v2/cross-ramp","href":"/reference/crossramppartnerv2controller_createpartnercrossramp"},{"title":"Create Cross-Ramp Quote","openapi":"reference/openapi/CrossRampPartnerV2Controller_createPartnerCrossRampQuote.json POST /api/partner/v2/cross-ramp/quotes","description":null,"href":"/reference/crossramppartnerv2controller_createpartnercrossrampquote"},{"title":"Get Cross-Ramp Rate","openapi":"reference/openapi/CrossRampPartnerV2Controller_getPartnerCrossRampQuoteRate.json GET /api/partner/v2/cross-ramp/quotes","href":"/reference/crossramppartnerv2controller_getpartnercrossrampquoterate"}]},{"group":"Associated Person Signatures","pages":[{"title":"Request Beneficial Owner Signatures","openapi":"reference/openapi/AssociatedPersonPartnerControllerV2_requestUboFormSignatures.json POST /api/partner/v2/users/{userId}/associated-persons/signatures","href":"/reference/associatedpersonpartnercontrollerv2_requestuboformsignatures"},{"title":"Get Beneficial Owner Signature Status","openapi":"reference/openapi/AssociatedPersonPartnerControllerV2_listUboFormSignatures.json GET /api/partner/v2/users/{userId}/associated-persons/signatures","href":"/reference/associatedpersonpartnercontrollerv2_listuboformsignatures"}]},{"group":"Transactions","pages":[{"title":"Cancel Transaction","openapi":"reference/openapi/TransactionPartnerV2Controller_cancelPartnerTransaction.json PUT /api/partner/v2/transactions/{id}/cancel","href":"/reference/transactionpartnerv2controller_cancelpartnertransaction"},{"title":"List Transactions","openapi":"reference/openapi/TransactionPartnerV2Controller_listPartnerUserTransactions.json GET /api/partner/v2/transactions","href":"/reference/transactionpartnerv2controller_listpartnerusertransactions"},{"title":"Mock Testing Guide","openapi":"reference/openapi/TransactionPartnerV2Controller_getMockTestingGuide.json GET /api/partner/v2/transactions/mock-testing-guide","href":"/reference/transactionpartnerv2controller_getmocktestingguide"}]},{"group":"Bank Accounts","pages":[{"title":"List Bank Accounts (User)","openapi":"reference/openapi/UserBankInfoPartnerV2Controller_getUserBankInfosByUserId.json GET /api/partner/v2/banks/users/{userId}/accounts","href":"/reference/userbankinfopartnerv2controller_getuserbankinfosbyuserid"},{"title":"Add Bank Account (User)","openapi":"reference/openapi/UserBankInfoPartnerV2Controller_createUserBankInfoByUserId.json POST /api/partner/v2/banks/users/{userId}/accounts","href":"/reference/userbankinfopartnerv2controller_createuserbankinfobyuserid"},{"title":"Delete Bank Account (User)","openapi":"reference/openapi/UserBankInfoPartnerV2Controller_deleteUserBankInfoByUserId.json DELETE /api/partner/v2/banks/users/{userId}/accounts/{userBankInfoId}","href":"/reference/userbankinfopartnerv2controller_deleteuserbankinfobyuserid"}]},{"group":"Virtual Accounts","pages":[{"title":"Get Virtual Account Status (User)","openapi":"reference/openapi/BankingOnboardingPartnerV2Controller_getOnboardingStatus.json GET /api/partner/v2/banks/users/{userId}/banking-onboarding","href":"/reference/bankingonboardingpartnerv2controller_getonboardingstatus"},{"title":"Request Virtual Account (User)","openapi":"reference/openapi/BankingOnboardingPartnerV2Controller_requestOnboarding.json POST /api/partner/v2/banks/users/{userId}/banking-onboarding","href":"/reference/bankingonboardingpartnerv2controller_requestonboarding"}]},{"group":"Wallets","pages":[{"title":"List Wallets","openapi":"reference/openapi/WalletAddressPartnerV2Controller_listUserWallets.json GET /api/partner/v2/users/{userId}/wallets","href":"/reference/walletaddresspartnerv2controller_listuserwallets"},{"title":"Create Wallet","openapi":"reference/openapi/WalletAddressPartnerV2Controller_createUserWallet.json POST /api/partner/v2/users/{userId}/wallets","href":"/reference/walletaddresspartnerv2controller_createuserwallet"},{"title":"Delete Wallet","openapi":"reference/openapi/WalletAddressPartnerV2Controller_deleteUserWallet.json DELETE /api/partner/v2/users/{userId}/wallets/{walletId}","href":"/reference/walletaddresspartnerv2controller_deleteuserwallet"},{"title":"Get Wallet Balances","openapi":"reference/openapi/UserBalancePartnerV2Controller_getUserWalletBalances.json GET /api/partner/v2/users/{userId}/wallets/balance","href":"/reference/userbalancepartnerv2controller_getuserwalletbalances"}]},{"group":"Webhooks · Settings","pages":[{"title":"Update Webhook Settings","openapi":"reference/openapi/PartnerWebhookSettingsV2Controller_update.json PUT /api/partner/v2/webhook-settings","href":"/reference/partnerwebhooksettingsv2controller_update"}]},{"group":"Webhooks · Notifications","pages":[{"title":"List Webhooks","openapi":"reference/openapi/PartnerWebhookNotificationV2Controller_listWebhookNotifications.json GET /api/partner/v2/webhook-notifications","href":"/reference/partnerwebhooknotificationv2controller_listwebhooknotifications"},{"title":"Get Webhook","openapi":"reference/openapi/PartnerWebhookNotificationV2Controller_getWebhookNotificationDetail.json GET /api/partner/v2/webhook-notifications/{id}","href":"/reference/partnerwebhooknotificationv2controller_getwebhooknotificationdetail"},{"title":"Retry Webhook","openapi":"reference/openapi/PartnerWebhookNotificationV2Controller_retry.json POST /api/partner/v2/webhook-notifications/{id}/retry","href":"/reference/partnerwebhooknotificationv2controller_retry"}]}]}]},{"tab":"Changelog","icon":"megaphone","pages":[{"title":"Changelog","href":"/changelog"}]}]},"title":"Create Cross-Ramp - Capa.fi","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DKJwRUt2.js","utils-CWD_VS3u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-oFjciODD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C76WsxC3.js","snippetPresets-DvPMxpX_.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CuNQfndH.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BVFpVUoF.js","shallow-t59Jg5Kr.js","getApiPlaygroundDisplay-C_JZ4amX.js","CodeSnippet-CLRDnx_h.js","CodeSnippets-C2myU4kc.js","Page-7TwLLapg.js","getPastedJson-B-JaVXw7.js","icon-BA-iDhH3.js","MethodPill-D4qZABFp.js","DuplicateIcon-THIDKO1O.js","createIcon-CYYJwgFd.js","DynamicMarkdown-UGQuxDKp.js","SectionHeading-jYELb23h.js","axios-vUo_bRtp.js","Markdown-DKsLa3wy.js","clsx-CefdjKz2.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BaREnp3o.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-sgx_0XzF.js"]}