{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or expired API Key",
"request_id": "req_example",
"suggested_action": "Send an API key in X-API-Key, or an OAuth access token as Authorization: Bearer. Refresh an expired access token.",
"documentation_url": "https://entendre.ai/docs/get-started/authentication"
}
}
{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or expired API Key",
"request_id": "req_example",
"suggested_action": "Send an API key in X-API-Key, or an OAuth access token as Authorization: Bearer. Refresh an expired access token.",
"documentation_url": "https://entendre.ai/docs/get-started/authentication"
}
}
name, one legal_entity_ids entry, api_key, api_secret and, where required, a passphrase
None.
Plaid
A public_token from Plaid Link, or start the hosted setup
Finish the setup before you select a bank source.
Ramp
The supported credentials, or start the hosted setup
None.
Rain
api_key and one legal_entity_ids entry
None.
Stripe
api_key (optional name and one legal_entity_ids entry)
None.
Fireblocks
api_key and api_secret (optional environment, name and one legal_entity_ids entry)
None.
QuickBooks, Xero, NetSuite
redirect_url or subdomain
Open the returned data.redirect_url to give consent. Set up NetSuite for your organization first.
Campfire, DualEntry
api_key
Entendre checks the credentials and starts the accounting import. Campfire needs a USD legal entity. guidance.warnings describes incomplete imports.
Do not send auth_method. Credentials are never returned. For a hosted setup, complete the returned authorization attempt before it expires. Then use List connections to confirm the connection and get its connection_ids and source_ids.To reauthorize a general-ledger connection, call this operation again.Send Idempotency-Key for replayable connection requests. Omit it for QuickBooks, Xero and NetSuite OAuth starts, and for Ramp authorization without credentials. These OAuth starts refuse the header with 400 IDEMPOTENCY_NOT_SUPPORTED. Reuse a key only with the same request body.QuickBooks, Xero and NetSuite return data.redirect_url. Campfire and DualEntry return the Connection directly with status 200; guidance.warnings identifies an incomplete accounting import.
Required for replayable connection requests. Omit this header for QuickBooks, Xero and NetSuite OAuth starts, and for Ramp authorization without credentials. Those OAuth starts return 400 IDEMPOTENCY_NOT_SUPPORTED if the header is present. For other providers, send a unique key and reuse it only for the same request body.
Required string length: 1 - 255
Body
application/json
Exchange
Bank
Card
Rain
Stripe
Fireblocks
QuickBooks (OAuth)
Xero (OAuth)
NetSuite (OAuth)
DualEntry (API key)
Campfire (API key)
An exchange venue. Credentials are supplied inline; there is no hosted setup for an exchange.
The exchange venue in lower case, such as kraken or binance. For QuickBooks, Xero, NetSuite, Campfire and DualEntry, use the general-ledger request body.
OAuth consent URL for a hosted GL provider (data.redirect_url), or the DualEntry or Campfire connection. The API-key connect updates an existing connection, so it returns 200, not 201. guidance.warnings can include entities_import_pending and accounts_import_pending.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Entendre Docs","description":"Documentation for the Entendre Unified API and MCP server: accounting, treasury and documents for crypto and fiat finance teams.","colors":{"primary":"#6366F1","light":"#818CF8","dark":"#4F46E5"},"logo":{"light":"https://mintcdn.com/entendre/iLG_yPYNFEzW9piO/logo.svg?fit=max\u0026auto=format\u0026n=iLG_yPYNFEzW9piO\u0026q=85\u0026s=e7ab9f91191f7aa74918c227c0675fc6","dark":"https://mintcdn.com/entendre/iLG_yPYNFEzW9piO/logo.svg?fit=max\u0026auto=format\u0026n=iLG_yPYNFEzW9piO\u0026q=85\u0026s=e7ab9f91191f7aa74918c227c0675fc6"},"favicon":"https://mintcdn.com/entendre/4Vx5A6rF_dhHssvv/favicon.ico?fit=max\u0026auto=format\u0026n=4Vx5A6rF_dhHssvv\u0026q=85\u0026s=35f0090147c1f9afbde9638b91c7cd74","api":{"params":{"expanded":"closed"},"playground":{"display":"simple"},"examples":{"defaults":"required","languages":["bash","javascript","python"],"prefill":true}},"navbar":{"primary":{"type":"button","label":"Sign in","href":"https://app.entendre.finance"}},"footer":{"socials":{"x":"https://x.com/entendreai","website":"https://entendre.ai"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"entendre","hasAudioNarration":false,"actualSubdomain":"entendre","customDomains":["entendre.ai"],"gitSource":{"type":"github","owner":"entendrefinance","repo":"monorepo","deployBranch":"master","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af4a1deb7449631187b152a","clientVersion":"0.0.4117","searchFilterCounts":[{"language":"default","tag":"API Reference","count":123},{"language":"default","tag":"Core","count":41},{"language":"default","tag":"Accounting","count":26},{"language":"default","tag":"Agents","count":19},{"language":"default","tag":"Firms","count":17},{"language":"default","tag":"Integrations","count":16},{"language":"default","tag":"Cash Application","count":10},{"language":"default","tag":"GL Mapping","count":10},{"language":"default","tag":"Reporting","count":10},{"language":"default","tag":"Journals","count":9}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".entendre-body-collapsed>:not(.api-section-heading){display:none}.entendre-body-toggle{margin-left:0.75rem;padding:0.25rem 0.5rem;border:1px solid currentColor;border-radius:0.375rem;background:transparent;color:inherit;font:inherit;font-size:0.75rem;cursor:pointer;white-space:nowrap}.entendre-body-toggle:focus-visible{outline:2px solid currentColor;outline-offset:3px}#topbar-cta-button svg{display:none}#topbar-cta-button a{padding-right:0.75rem}"}],"page":{"pagePath":"api-reference/integrations/connections/connect-provider","slug":"/api-reference/integrations/connections/connect-provider","pageMetadata":{"authority":"canonical","as-of":"2026-11-03T00:00:00.000Z","owner":"amr","title":"Connect provider","description":"Connects an exchange, Plaid, Ramp, Rain, Stripe, Fireblocks or general-ledger provider.","openapi":"openapi-public-preview.json POST /v1/connections","href":"/api-reference/integrations/connections/connect-provider"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Connects an exchange, Plaid, Ramp, Rain, Stripe, Fireblocks or general-ledger provider.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Table}=_components;if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Provider`}),_jsx(_components.th,{children:`Send`}),_jsx(_components.th,{children:`Next step`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Exchange`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`name`}),`, one `,_jsx(_components.code,{children:`legal_entity_ids`}),` entry, `,_jsx(_components.code,{children:`api_key`}),`, `,_jsx(_components.code,{children:`api_secret`}),` and, where required, a passphrase`]}),_jsx(_components.td,{children:`None.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Plaid`}),_jsxs(_components.td,{children:[`A `,_jsx(_components.code,{children:`public_token`}),` from Plaid Link, or start the hosted setup`]}),_jsx(_components.td,{children:`Finish the setup before you select a bank source.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Ramp`}),_jsx(_components.td,{children:`The supported credentials, or start the hosted setup`}),_jsx(_components.td,{children:`None.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Rain`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`api_key`}),` and one `,_jsx(_components.code,{children:`legal_entity_ids`}),` entry`]}),_jsx(_components.td,{children:`None.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Stripe`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`api_key`}),` (optional `,_jsx(_components.code,{children:`name`}),` and one `,_jsx(_components.code,{children:`legal_entity_ids`}),` entry)`]}),_jsx(_components.td,{children:`None.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Fireblocks`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`api_key`}),` and `,_jsx(_components.code,{children:`api_secret`}),` (optional `,_jsx(_components.code,{children:`environment`}),`, `,_jsx(_components.code,{children:`name`}),` and one `,_jsx(_components.code,{children:`legal_entity_ids`}),` entry)`]}),_jsx(_components.td,{children:`None.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`QuickBooks, Xero, NetSuite`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`redirect_url`}),` or `,_jsx(_components.code,{children:`subdomain`})]}),_jsxs(_components.td,{children:[`Open the returned `,_jsx(_components.code,{children:`data.redirect_url`}),` to give consent. Set up NetSuite for your organization first.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Campfire, DualEntry`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`api_key`})}),_jsxs(_components.td,{children:[`Entendre checks the credentials and starts the accounting import. Campfire needs a USD legal entity. `,_jsx(_components.code,{children:`guidance.warnings`}),` describes incomplete imports.`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Do not send `,_jsx(_components.code,{children:`auth_method`}),`. Credentials are never returned. For a hosted setup, complete the returned authorization attempt before it expires. Then use `,_jsx(_components.a,{href:`/api-reference/integrations/connections/list-connections`,children:`List connections`}),` to confirm the connection and get its `,_jsx(_components.code,{children:`connection_ids`}),` and `,_jsx(_components.code,{children:`source_ids`}),`.`]}),`\n`,_jsx(_components.p,{children:`To reauthorize a general-ledger connection, call this operation again.`}),`\n`,_jsxs(_components.p,{children:[`Send `,_jsx(_components.code,{children:`Idempotency-Key`}),` for replayable connection requests. Omit it for QuickBooks, Xero and NetSuite OAuth starts, and for Ramp authorization without credentials. These OAuth starts refuse the header with `,_jsx(_components.code,{children:`400 IDEMPOTENCY_NOT_SUPPORTED`}),`. Reuse a key only with the same request body.`]}),`\n`,_jsxs(_components.p,{children:[`QuickBooks, Xero and NetSuite return `,_jsx(_components.code,{children:`data.redirect_url`}),`. Campfire and DualEntry return the Connection directly with status `,_jsx(_components.code,{children:`200`}),`; `,_jsx(_components.code,{children:`guidance.warnings`}),` identifies an incomplete accounting import.`]})]})}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":{"authority":"canonical","as-of":"2026-11-03T00:00:00.000Z","owner":"amr","title":"Connect provider","description":"Connects an exchange, Plaid, Ramp, Rain, Stripe, Fireblocks or general-ledger provider.","openapi":"openapi-public-preview.json POST /v1/connections","href":"/api-reference/integrations/connections/connect-provider"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/entendre/f23b26253e1cc75d/request-body.js"],"openApiReferenceData":{"operation":{"operationId":"connect_provider","summary":"Connect provider","description":"Connects an exchange, Plaid, Ramp, Rain, Stripe, Fireblocks or general-ledger provider.","tags":["Connections"],"parameters":["ef627019-0e36-439a-885b-af0f7973dc76"],"responses":{"200":"a02a212e-092d-4423-bb2a-00391394d2ef","201":"e1a55b77-76de-4d2c-951f-93d05e18a2c3","400":"0369e2cb-8376-43a5-a506-d148f9bb1184","401":"427cb086-6d2b-4172-8cee-8b45b4998773","403":"51ebab4e-8a14-4963-8596-2898a26e68b5","404":"53c34ff4-1adf-4356-8231-d37921fc6a9d","409":"44bf9d23-8ffd-49df-a411-314787aa7c75","429":"e933bbf4-aa75-457a-af9f-ec6837ed8920","500":"ec409d56-c90d-4950-86d0-1e6a4575d6e6","503":"af7a09e9-4844-4cdc-85e4-e9bc15912a54"},"x-product":"Integrations","x-access-class":"secure_setup","requestBody":"8efc740a-9ea8-4355-8a01-ac069916c5e8","method":"post","type":"path","servers":["9e59403a-73c1-494e-9818-59dd36bdbfad"],"security":["1fe0c3f6-35d9-41d2-ac91-13356ced44bb"],"path":"/v1/connections","baseUrlOptions":["https://api.entendre.finance"],"title":"Connect provider","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.oneOf.0.provider":"kraken","body.oneOf.0.name":"Kraken main","body.oneOf.0.legal_entity_ids.items.0":"le_507f1f77bcf86cd799439011","body.oneOf.0.api_key":"ek_live_...","body.oneOf.0.api_secret":"..."}]},"dependencies":{"parameters":{"ef627019-0e36-439a-885b-af0f7973dc76":{"name":"Idempotency-Key","in":"header","required":false,"description":"Required for replayable connection requests. Omit this header for QuickBooks, Xero and NetSuite OAuth starts, and for Ramp authorization without credentials. Those OAuth starts return 400 IDEMPOTENCY_NOT_SUPPORTED if the header is present. For other providers, send a unique key and reuse it only for the same request body.","schema":{"type":"string","minLength":1,"maxLength":255,"isRequired":false,"description":"Required for replayable connection requests. Omit this header for QuickBooks, Xero and NetSuite OAuth starts, and for Ramp authorization without credentials. Those OAuth starts return 400 IDEMPOTENCY_NOT_SUPPORTED if the header is present. For other providers, send a unique key and reuse it only for the same request body.","uniqueKey":"","typeLabel":"string"},"example":"example-operation-2026-08-31-001"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","title":"Exchange","description":"An exchange venue. Credentials are supplied inline; there is no hosted setup for an exchange.","required":["provider","name","legal_entity_ids","api_key","api_secret"],"properties":{"provider":{"type":"string","description":"The exchange venue in lower case, such as kraken or binance. For QuickBooks, Xero, NetSuite, Campfire and DualEntry, use the general-ledger request body.","example":"kraken","isRequired":true,"uniqueKey":"oneOf.0.provider","typeLabel":"string"},"name":{"type":"string","description":"Display name. Required for an exchange connection.","minLength":1,"maxLength":500,"isRequired":true,"uniqueKey":"oneOf.0.name","typeLabel":"string"},"legal_entity_ids":{"type":"array","description":"Exactly one legal entity. An exchange connection scopes to a single entity.","items":{"type":"string","description":"Legal entity ID (`le_…`).","example":"le_507f1f77bcf86cd799439011","uniqueKey":"oneOf.0.legal_entity_ids.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":1,"uniqueItems":true,"isRequired":true,"uniqueKey":"oneOf.0.legal_entity_ids","typeLabel":"string[]"},"api_key":{"type":"string","description":"Venue API key.","minLength":1,"isRequired":true,"uniqueKey":"oneOf.0.api_key","typeLabel":"string"},"api_secret":{"type":"string","description":"Venue API secret.","minLength":1,"isRequired":true,"uniqueKey":"oneOf.0.api_secret","typeLabel":"string"},"api_passphrase":{"type":"string","description":"Venue API passphrase. Required for coinbase, coinbase_exchange, coinbase_prime, coinbase_international and kucoin; omitting it there fails with 400.","minLength":1,"uniqueKey":"oneOf.0.api_passphrase","typeLabel":"string"},"return_url":{"type":"string","description":"Registered HTTPS dashboard URL to return to after hosted setup.","format":"uri","example":"https://app.entendre.finance/settings/integrations","uniqueKey":"oneOf.0.return_url","typeLabel":"string\u003curi>"}},"additionalProperties":false,"uniqueKey":"oneOf.0","typeLabel":"Exchange · object"},{"type":"object","title":"Bank","description":"A Plaid bank account. Omit public_token to receive a hosted setup URL, or supply one to finish a link the client already completed.","required":["provider"],"properties":{"provider":{"type":"string","enum":["plaid"],"description":"Always plaid.","isRequired":true,"uniqueKey":"oneOf.1.provider","typeLabel":"enum\u003cstring>"},"name":{"type":"string","description":"Display name.","minLength":1,"maxLength":500,"uniqueKey":"oneOf.1.name","typeLabel":"string"},"legal_entity_ids":{"type":"array","description":"At most one legal entity.","items":{"type":"string","description":"Legal entity ID (`le_…`).","example":"le_507f1f77bcf86cd799439011","uniqueKey":"oneOf.1.legal_entity_ids.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":1,"uniqueItems":true,"uniqueKey":"oneOf.1.legal_entity_ids","typeLabel":"string[]"},"public_token":{"type":"string","description":"Plaid public token from a completed Link session. Omit it to use hosted setup instead.","minLength":1,"uniqueKey":"oneOf.1.public_token","typeLabel":"string"},"return_url":{"type":"string","description":"Registered HTTPS dashboard URL to return to after hosted setup.","format":"uri","example":"https://app.entendre.finance/settings/integrations","uniqueKey":"oneOf.1.return_url","typeLabel":"string\u003curi>"}},"additionalProperties":false,"uniqueKey":"oneOf.1","typeLabel":"Bank · object"},{"type":"object","title":"Card","description":"A Ramp card program. Omit credentials to receive a hosted setup URL, or supply the app credentials inline.","required":["provider"],"properties":{"provider":{"type":"string","enum":["ramp"],"description":"Always ramp.","isRequired":true,"uniqueKey":"oneOf.2.provider","typeLabel":"enum\u003cstring>"},"name":{"type":"string","description":"Display name.","minLength":1,"maxLength":500,"uniqueKey":"oneOf.2.name","typeLabel":"string"},"legal_entity_ids":{"type":"array","description":"At most one legal entity.","items":{"type":"string","description":"Legal entity ID (`le_…`).","example":"le_507f1f77bcf86cd799439011","uniqueKey":"oneOf.2.legal_entity_ids.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":1,"uniqueItems":true,"uniqueKey":"oneOf.2.legal_entity_ids","typeLabel":"string[]"},"credentials":{"type":"object","description":"Ramp application credentials. Omit them to use hosted setup instead.","required":["client_id","client_secret"],"additionalProperties":false,"properties":{"client_id":{"type":"string","minLength":1,"description":"Ramp client ID.","isRequired":true,"uniqueKey":"oneOf.2.credentials.client_id","typeLabel":"string"},"client_secret":{"type":"string","minLength":1,"description":"Ramp client secret.","isRequired":true,"uniqueKey":"oneOf.2.credentials.client_secret","typeLabel":"string"}},"uniqueKey":"oneOf.2.credentials","typeLabel":"object"},"return_url":{"type":"string","description":"Registered HTTPS dashboard URL to return to after hosted setup.","format":"uri","example":"https://app.entendre.finance/settings/integrations","uniqueKey":"oneOf.2.return_url","typeLabel":"string\u003curi>"}},"additionalProperties":false,"uniqueKey":"oneOf.2","typeLabel":"Card · object"},{"type":"object","title":"Rain","description":"A Rain card program for one legal entity. Cards are imported on a schedule. A duplicate key for the same legal entity returns HTTP 409.","required":["provider","legal_entity_ids","api_key"],"properties":{"provider":{"type":"string","enum":["rain"],"description":"Always rain.","isRequired":true,"uniqueKey":"oneOf.3.provider","typeLabel":"enum\u003cstring>"},"legal_entity_ids":{"type":"array","description":"Exactly one legal entity.","items":{"type":"string","description":"Legal entity ID (`le_…`).","example":"le_507f1f77bcf86cd799439011","uniqueKey":"oneOf.3.legal_entity_ids.items.[INDEX]","typeLabel":"string"},"minItems":1,"maxItems":1,"uniqueItems":true,"isRequired":true,"uniqueKey":"oneOf.3.legal_entity_ids","typeLabel":"string[]"},"api_key":{"type":"string","description":"Rain API key.","minLength":1,"isRequired":true,"uniqueKey":"oneOf.3.api_key","typeLabel":"string"},"name":{"type":"string","description":"Display name.","minLength":1,"maxLength":500,"uniqueKey":"oneOf.3.name","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.3","typeLabel":"Rain · object"},{"type":"object","title":"Stripe","description":"A Stripe account for accounts receivable. The API key is checked with one Stripe request before the connection is stored; a refused key returns 400. Each create stores a new connection.","required":["provider","api_key"],"properties":{"provider":{"type":"string","enum":["stripe"],"description":"Always stripe.","isRequired":true,"uniqueKey":"oneOf.4.provider","typeLabel":"enum\u003cstring>"},"api_key":{"type":"string","description":"Stripe secret or restricted key. It is stored encrypted and never returned.","minLength":1,"isRequired":true,"uniqueKey":"oneOf.4.api_key","typeLabel":"string"},"name":{"type":"string","description":"Human-readable label.","minLength":1,"maxLength":500,"uniqueKey":"oneOf.4.name","typeLabel":"string"},"legal_entity_ids":{"type":"array","description":"Zero or one legal entity. New Stripe records use it.","items":{"type":"string","description":"Opaque le_ identifier. Obtain it from a list or create response; do not construct it.","example":"le_507f1f77bcf86cd799439011","uniqueKey":"oneOf.4.legal_entity_ids.items.[INDEX]","typeLabel":"string"},"maxItems":1,"uniqueItems":true,"uniqueKey":"oneOf.4.legal_entity_ids","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"oneOf.4","typeLabel":"Stripe · object"},{"type":"object","title":"Fireblocks","description":"A Fireblocks workspace. The connection is created even when the connectivity check fails, so active does not prove that the credentials work. An organization has one live Fireblocks connection; a second create returns 409 with error.connection_id.","required":["provider","api_key","api_secret"],"properties":{"provider":{"type":"string","enum":["fireblocks"],"description":"Always fireblocks.","isRequired":true,"uniqueKey":"oneOf.5.provider","typeLabel":"enum\u003cstring>"},"api_key":{"type":"string","description":"Fireblocks API key. It is stored encrypted and never returned.","minLength":1,"isRequired":true,"uniqueKey":"oneOf.5.api_key","typeLabel":"string"},"api_secret":{"type":"string","description":"Fireblocks API secret (private key). It is stored encrypted and never returned.","minLength":1,"isRequired":true,"uniqueKey":"oneOf.5.api_secret","typeLabel":"string"},"name":{"type":"string","description":"Human-readable label.","minLength":1,"maxLength":500,"uniqueKey":"oneOf.5.name","typeLabel":"string"},"legal_entity_ids":{"type":"array","description":"Zero or one legal entity. New wallets use it.","items":{"type":"string","description":"Opaque le_ identifier. Obtain it from a list or create response; do not construct it.","example":"le_507f1f77bcf86cd799439011","uniqueKey":"oneOf.5.legal_entity_ids.items.[INDEX]","typeLabel":"string"},"maxItems":1,"uniqueItems":true,"uniqueKey":"oneOf.5.legal_entity_ids","typeLabel":"string[]"},"environment":{"type":"string","enum":["production","sandbox"],"description":"The Fireblocks host. Omitted, a new connection uses production.","uniqueKey":"oneOf.5.environment","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"oneOf.5","typeLabel":"Fireblocks · object"},{"type":"object","title":"QuickBooks (OAuth)","required":["provider"],"properties":{"provider":{"type":"string","enum":["quickbooks"],"description":"Always `quickbooks`.","isRequired":true,"uniqueKey":"oneOf.6.provider","typeLabel":"enum\u003cstring>"},"redirect_url":{"type":"string","format":"uri","description":"Where the OAuth flow should return after consent. Either redirect_url or subdomain is required.","uniqueKey":"oneOf.6.redirect_url","typeLabel":"string\u003curi>"},"subdomain":{"type":"string","description":"Your Entendre subdomain. Either redirect_url or subdomain is required.","uniqueKey":"oneOf.6.subdomain","typeLabel":"string"},"legal_entity_id":{"oneOf":[{"type":"string","description":"Legal entity to connect (`le_…`).","uniqueKey":"oneOf.6.legal_entity_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Legal entity to connect (`le_…`).","uniqueKey":"oneOf.6.legal_entity_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.6.legal_entity_id","typeLabel":"string | null"}},"uniqueKey":"oneOf.6","typeLabel":"QuickBooks (OAuth) · object"},{"type":"object","title":"Xero (OAuth)","required":["provider"],"properties":{"provider":{"type":"string","enum":["xero"],"description":"Always `xero`.","isRequired":true,"uniqueKey":"oneOf.7.provider","typeLabel":"enum\u003cstring>"},"redirect_url":{"type":"string","format":"uri","description":"Where the OAuth flow should return after consent. Either redirect_url or subdomain is required.","uniqueKey":"oneOf.7.redirect_url","typeLabel":"string\u003curi>"},"subdomain":{"type":"string","description":"Your Entendre subdomain. Either redirect_url or subdomain is required.","uniqueKey":"oneOf.7.subdomain","typeLabel":"string"},"legal_entity_id":{"oneOf":[{"type":"string","description":"Legal entity to connect (`le_…`).","uniqueKey":"oneOf.7.legal_entity_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Legal entity to connect (`le_…`).","uniqueKey":"oneOf.7.legal_entity_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.7.legal_entity_id","typeLabel":"string | null"}},"uniqueKey":"oneOf.7","typeLabel":"Xero (OAuth) · object"},{"type":"object","title":"NetSuite (OAuth)","required":["provider"],"properties":{"provider":{"type":"string","enum":["netsuite"],"description":"Always `netsuite`.","isRequired":true,"uniqueKey":"oneOf.8.provider","typeLabel":"enum\u003cstring>"},"redirect_url":{"type":"string","format":"uri","description":"Where the OAuth flow should return after consent. Either redirect_url or subdomain is required.","uniqueKey":"oneOf.8.redirect_url","typeLabel":"string\u003curi>"},"subdomain":{"type":"string","description":"Your Entendre subdomain. Either redirect_url or subdomain is required.","uniqueKey":"oneOf.8.subdomain","typeLabel":"string"},"legal_entity_id":{"oneOf":[{"type":"string","description":"Legal entity to connect (`le_…`).","uniqueKey":"oneOf.8.legal_entity_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Legal entity to connect (`le_…`).","uniqueKey":"oneOf.8.legal_entity_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.8.legal_entity_id","typeLabel":"string | null"},"account_id":{"type":"string","description":"Ignored. NetSuite authorization applies to the whole organization, and NetSuite must be set up for your organization first.","uniqueKey":"oneOf.8.account_id","typeLabel":"string"}},"uniqueKey":"oneOf.8","typeLabel":"NetSuite (OAuth) · object"},{"type":"object","title":"DualEntry (API key)","required":["provider","api_key"],"properties":{"provider":{"type":"string","enum":["dualentry"],"description":"Always `dualentry`.","isRequired":true,"uniqueKey":"oneOf.9.provider","typeLabel":"enum\u003cstring>"},"api_key":{"type":"string","description":"Provider API key. Validated against the provider, then encrypted at rest.","isRequired":true,"uniqueKey":"oneOf.9.api_key","typeLabel":"string"}},"uniqueKey":"oneOf.9","typeLabel":"DualEntry (API key) · object"},{"type":"object","title":"Campfire (API key)","required":["provider","api_key"],"properties":{"provider":{"type":"string","enum":["campfire"],"description":"Always `campfire`.","isRequired":true,"uniqueKey":"oneOf.10.provider","typeLabel":"enum\u003cstring>"},"api_key":{"type":"string","description":"Provider API key. Validated against the provider, then encrypted at rest.","isRequired":true,"uniqueKey":"oneOf.10.api_key","typeLabel":"string"}},"uniqueKey":"oneOf.10","typeLabel":"Campfire (API key) · object"}],"uniqueKey":"","typeLabel":"Exchange · object | Bank · object | Card · object | Rain · object | Stripe · object | Fireblocks · object | QuickBooks (OAuth) · object | Xero (OAuth) · object | NetSuite (OAuth) · object | DualEntry (API key) · object | Campfire (API key) · object"},"example":{"provider":"kraken","name":"Kraken main","legal_entity_ids":["le_507f1f77bcf86cd799439011"],"api_key":"ek_live_...","api_secret":"..."},"examples":{"Example":{"title":"Example","value":{"provider":"kraken","name":"Kraken main","legal_entity_ids":["le_507f1f77bcf86cd799439011"],"api_key":"ek_live_...","api_secret":"..."}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"a02a212e-092d-4423-bb2a-00391394d2ef":{"description":"OAuth consent URL for a hosted GL provider (data.redirect_url), or the DualEntry or Campfire connection. The API-key connect updates an existing connection, so it returns 200, not 201. `guidance.warnings` can include `entities_import_pending` and `accounts_import_pending`.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["redirect_url"],"properties":{"redirect_url":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.data.redirect_url","typeLabel":"string"}},"isRequired":true,"uniqueKey":"oneOf.0.data","typeLabel":"object"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["id","organization_id","provider","auth_method","name","status","external_account_id","legal_entity_ids","source_ids","capabilities","created_at","updated_at","guidance","etag"],"properties":{"id":{"type":"string","description":"Connection ID (`con_…`).","example":"con_507f1f77bcf86cd799439011","isRequired":true,"uniqueKey":"oneOf.1.id","typeLabel":"string"},"organization_id":{"type":"string","description":"Organization ID (`org_…`).","example":"org_507f1f77bcf86cd799439011","isRequired":true,"uniqueKey":"oneOf.1.organization_id","typeLabel":"string"},"provider":{"type":"string","description":"Provider identifier.","example":"quickbooks","isRequired":true,"uniqueKey":"oneOf.1.provider","typeLabel":"string"},"auth_method":{"type":"string","description":"Setup method.","enum":["oauth","api_key"],"isRequired":true,"uniqueKey":"oneOf.1.auth_method","typeLabel":"enum\u003cstring>"},"name":{"type":"string","description":"Connection display name.","isRequired":true,"uniqueKey":"oneOf.1.name","typeLabel":"string"},"status":{"type":"string","description":"Connection status.","enum":["pending_setup","active","inactive","expired","disconnecting","disconnected","failed"],"isRequired":true,"uniqueKey":"oneOf.1.status","typeLabel":"enum\u003cstring>"},"external_account_id":{"oneOf":[{"type":"string","description":"Account ID at the provider.","isRequired":true,"uniqueKey":"oneOf.1.external_account_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Account ID at the provider.","isRequired":true,"uniqueKey":"oneOf.1.external_account_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.external_account_id","typeLabel":"string | null"},"legal_entity_ids":{"type":"array","items":{"type":"string","description":"Legal entity ID (`le_…`).","example":"le_507f1f77bcf86cd799439011","uniqueKey":"oneOf.1.legal_entity_ids.items.[INDEX]","typeLabel":"string"},"description":"Legal entities of the connection (`le_…`).","isRequired":true,"uniqueKey":"oneOf.1.legal_entity_ids","typeLabel":"string[]"},"source_ids":{"type":"array","items":{"type":"string","description":"Source ID (`src_…`).","example":"src_507f1f77bcf86cd799439011","uniqueKey":"oneOf.1.source_ids.items.[INDEX]","typeLabel":"string"},"description":"Sources created from the connection.","isRequired":true,"uniqueKey":"oneOf.1.source_ids","typeLabel":"string[]"},"capabilities":{"type":"array","items":{"type":"string","description":"Supported action.","uniqueKey":"oneOf.1.capabilities.items.[INDEX]","typeLabel":"string"},"description":"Actions that the connection supports.","isRequired":true,"uniqueKey":"oneOf.1.capabilities","typeLabel":"string[]"},"created_at":{"type":"string","description":"ISO 8601 UTC timestamp.","format":"date-time","example":"2026-08-31T12:00:00Z","isRequired":true,"uniqueKey":"oneOf.1.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp of the last change.","isRequired":true,"uniqueKey":"oneOf.1.updated_at","typeLabel":"string\u003cdate-time>"},"guidance":{"type":"object","properties":{"allowed_actions":{"type":"array","items":{"type":"object","properties":{"action":{"type":"string","description":"Stable operation name.","isRequired":true,"uniqueKey":"oneOf.1.guidance.allowed_actions.items.[INDEX].action","typeLabel":"string"},"available":{"type":"boolean","description":"Whether the action is currently available.","isRequired":true,"uniqueKey":"oneOf.1.guidance.allowed_actions.items.[INDEX].available","typeLabel":"boolean"},"reason":{"oneOf":[{"type":"string","description":"Why unavailable, or null.","isRequired":true,"uniqueKey":"oneOf.1.guidance.allowed_actions.items.[INDEX].reason.oneOf.0","typeLabel":"string"},{"type":"null","description":"Why unavailable, or null.","isRequired":true,"uniqueKey":"oneOf.1.guidance.allowed_actions.items.[INDEX].reason.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.guidance.allowed_actions.items.[INDEX].reason","typeLabel":"string | null"},"url":{"oneOf":[{"type":"string","description":"Authorized relative API or dashboard URL, or null.","isRequired":true,"uniqueKey":"oneOf.1.guidance.allowed_actions.items.[INDEX].url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Authorized relative API or dashboard URL, or null.","isRequired":true,"uniqueKey":"oneOf.1.guidance.allowed_actions.items.[INDEX].url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.guidance.allowed_actions.items.[INDEX].url","typeLabel":"string | null"}},"required":["action","available","reason","url"],"additionalProperties":false,"uniqueKey":"oneOf.1.guidance.allowed_actions.items.[INDEX]","typeLabel":"object"},"description":"Actions that you can take now.","isRequired":true,"uniqueKey":"oneOf.1.guidance.allowed_actions","typeLabel":"object[]"},"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Stable warning code.","isRequired":true,"uniqueKey":"oneOf.1.guidance.warnings.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","description":"Actionable explanation.","isRequired":true,"uniqueKey":"oneOf.1.guidance.warnings.items.[INDEX].message","typeLabel":"string"},"field":{"oneOf":[{"type":"string","description":"Affected field, if known.","uniqueKey":"oneOf.1.guidance.warnings.items.[INDEX].field.oneOf.0","typeLabel":"string"},{"type":"null","description":"Affected field, if known.","uniqueKey":"oneOf.1.guidance.warnings.items.[INDEX].field.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.guidance.warnings.items.[INDEX].field","typeLabel":"string | null"}},"required":["code","message"],"additionalProperties":false,"uniqueKey":"oneOf.1.guidance.warnings.items.[INDEX]","typeLabel":"object"},"description":"Warnings about the resource.","isRequired":true,"uniqueKey":"oneOf.1.guidance.warnings","typeLabel":"object[]"},"version":{"type":"string","description":"Version of the resource. Use it only when an operation asks for `expected_version`.","isRequired":true,"uniqueKey":"oneOf.1.guidance.version","typeLabel":"string"}},"required":["allowed_actions","warnings","version"],"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.1.guidance","typeLabel":"object"},"etag":{"type":"string","readOnly":true,"pattern":"^\"[^\"\\r\\n]+\"$","description":"Strong version of this resource. Send this value, including its quotes, in If-Match when updating it.","examples":["\"v_example\""],"isRequired":true,"uniqueKey":"oneOf.1.etag","typeLabel":"string"},"authorization_attempt":{"type":"object","properties":{"id":{"type":"string","description":"Authorization attempt ID (`auth_…`).","example":"auth_507f1f77bcf86cd799439011","isRequired":true,"uniqueKey":"oneOf.1.authorization_attempt.id","typeLabel":"string"},"status":{"type":"string","description":"Status of the setup attempt.","enum":["pending","succeeded","expired","failed"],"isRequired":true,"uniqueKey":"oneOf.1.authorization_attempt.status","typeLabel":"enum\u003cstring>"},"setup_url":{"oneOf":[{"type":"string","description":"Setup URL for the user. It expires and is not a credential.","uniqueKey":"oneOf.1.authorization_attempt.setup_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Setup URL for the user. It expires and is not a credential.","uniqueKey":"oneOf.1.authorization_attempt.setup_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.authorization_attempt.setup_url","typeLabel":"string | null"},"link_token":{"oneOf":[{"type":"string","description":"Plaid Link token. Present only in the reauthorize response of a bank connection.","uniqueKey":"oneOf.1.authorization_attempt.link_token.oneOf.0","typeLabel":"string"},{"type":"null","description":"Plaid Link token. Present only in the reauthorize response of a bank connection.","uniqueKey":"oneOf.1.authorization_attempt.link_token.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.authorization_attempt.link_token","typeLabel":"string | null"},"expires_at":{"oneOf":[{"type":"string","description":"Expiry time (ISO 8601).","uniqueKey":"oneOf.1.authorization_attempt.expires_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"Expiry time (ISO 8601).","uniqueKey":"oneOf.1.authorization_attempt.expires_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.authorization_attempt.expires_at","typeLabel":"string | null"},"error":{"oneOf":[{"type":"string","description":"Why the setup failed.","uniqueKey":"oneOf.1.authorization_attempt.error.oneOf.0","typeLabel":"string"},{"type":"null","description":"Why the setup failed.","uniqueKey":"oneOf.1.authorization_attempt.error.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.authorization_attempt.error","typeLabel":"string | null"}},"required":["id","status"],"additionalProperties":false,"description":"The latest setup attempt.","uniqueKey":"oneOf.1.authorization_attempt","typeLabel":"object"},"created_by":{"oneOf":[{"type":"object","description":"Rain only. The user the legacy configuration records as creator. The email is masked unless `include_pii=true` on the list.","properties":{"id":{"type":"string","uniqueKey":"oneOf.1.created_by.oneOf.0.id","typeLabel":"string"},"email":{"oneOf":[{"type":"string","uniqueKey":"oneOf.1.created_by.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.1.created_by.oneOf.0.email.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.created_by.oneOf.0.email","typeLabel":"string | null"}},"uniqueKey":"oneOf.1.created_by.oneOf.0","typeLabel":"object"},{"type":"null","description":"Rain only. The user the legacy configuration records as creator. The email is masked unless `include_pii=true` on the list.","properties":{"id":{"type":"string"},"email":{"oneOf":[{"type":"string"},{"type":"null"}]}},"uniqueKey":"oneOf.1.created_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.created_by","typeLabel":"object | null"},"updated_by":{"oneOf":[{"type":"object","description":"Rain only. The user the legacy configuration records as last editor. The email is masked unless `include_pii=true` on the list.","properties":{"id":{"type":"string","uniqueKey":"oneOf.1.updated_by.oneOf.0.id","typeLabel":"string"},"email":{"oneOf":[{"type":"string","uniqueKey":"oneOf.1.updated_by.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.1.updated_by.oneOf.0.email.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.updated_by.oneOf.0.email","typeLabel":"string | null"}},"uniqueKey":"oneOf.1.updated_by.oneOf.0","typeLabel":"object"},{"type":"null","description":"Rain only. The user the legacy configuration records as last editor. The email is masked unless `include_pii=true` on the list.","properties":{"id":{"type":"string"},"email":{"oneOf":[{"type":"string"},{"type":"null"}]}},"uniqueKey":"oneOf.1.updated_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.updated_by","typeLabel":"object | null"},"ramp":{"oneOf":[{"type":"object","description":"Ramp only. Credential hints of the current Ramp connection; null on a disconnected or replaced one. The credentials themselves are never returned.","properties":{"has_credentials":{"type":"boolean","description":"The organization saved Ramp app credentials.","uniqueKey":"oneOf.1.ramp.oneOf.0.has_credentials","typeLabel":"boolean"},"masked_client_id":{"oneOf":[{"type":"string","uniqueKey":"oneOf.1.ramp.oneOf.0.masked_client_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.1.ramp.oneOf.0.masked_client_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.ramp.oneOf.0.masked_client_id","typeLabel":"string | null"},"masked_client_secret":{"oneOf":[{"type":"string","uniqueKey":"oneOf.1.ramp.oneOf.0.masked_client_secret.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.1.ramp.oneOf.0.masked_client_secret.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.ramp.oneOf.0.masked_client_secret","typeLabel":"string | null"}},"uniqueKey":"oneOf.1.ramp.oneOf.0","typeLabel":"object"},{"type":"null","description":"Ramp only. Credential hints of the current Ramp connection; null on a disconnected or replaced one. The credentials themselves are never returned.","properties":{"has_credentials":{"type":"boolean","description":"The organization saved Ramp app credentials."},"masked_client_id":{"oneOf":[{"type":"string"},{"type":"null"}]},"masked_client_secret":{"oneOf":[{"type":"string"},{"type":"null"}]}},"uniqueKey":"oneOf.1.ramp.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.ramp","typeLabel":"object | null"},"revocation_error":{"oneOf":[{"type":"string","description":"Why the provider did not revoke access. A disabled connection in Entendre does not prove that the provider revoked access.","uniqueKey":"oneOf.1.revocation_error.oneOf.0","typeLabel":"string"},{"type":"null","description":"Why the provider did not revoke access. A disabled connection in Entendre does not prove that the provider revoked access.","uniqueKey":"oneOf.1.revocation_error.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.revocation_error","typeLabel":"string | null"},"retained_resources":{"type":"array","items":{"type":"string","description":"Resource types retained after disconnect.","uniqueKey":"oneOf.1.retained_resources.items.[INDEX]","typeLabel":"string"},"description":"Resource types that stay after a disconnect.","uniqueKey":"oneOf.1.retained_resources","typeLabel":"string[]"},"cleanup":{"type":"object","description":"Present after bank disconnect. Counts rows removed by this call. Zero is valid for empty or already-cleaned connections.","properties":{"accounts_deleted":{"type":"integer","minimum":0,"description":"Bank accounts deleted.","isRequired":true,"uniqueKey":"oneOf.1.cleanup.accounts_deleted","typeLabel":"integer"},"transactions_deleted":{"type":"integer","minimum":0,"description":"Transactions deleted.","isRequired":true,"uniqueKey":"oneOf.1.cleanup.transactions_deleted","typeLabel":"integer"}},"required":["accounts_deleted","transactions_deleted"],"uniqueKey":"oneOf.1.cleanup","typeLabel":"object"},"institution_id":{"oneOf":[{"type":"string","description":"Bank connections only: the Plaid institution id.","uniqueKey":"oneOf.1.institution_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Bank connections only: the Plaid institution id.","uniqueKey":"oneOf.1.institution_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.institution_id","typeLabel":"string | null"},"last_synced_at":{"oneOf":[{"type":"string","format":"date-time","description":"Bank and Stripe connections: when the last transaction import from the provider finished.","uniqueKey":"oneOf.1.last_synced_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Bank and Stripe connections: when the last transaction import from the provider finished.","uniqueKey":"oneOf.1.last_synced_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.last_synced_at","typeLabel":"string\u003cdate-time> | null"},"last_error":{"oneOf":[{"type":"object","additionalProperties":false,"required":["code","message","type"],"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.last_error.oneOf.0.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.last_error.oneOf.0.message","typeLabel":"string"},"type":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.last_error.oneOf.0.type","typeLabel":"string"}},"description":"Bank connections only: the last error that the provider reported for the connection, as the provider sent it. Null when the connection has no error.","uniqueKey":"oneOf.1.last_error.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":false,"required":["code","message","type"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"type":{"type":"string"}},"description":"Bank connections only: the last error that the provider reported for the connection, as the provider sent it. Null when the connection has no error.","uniqueKey":"oneOf.1.last_error.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.last_error","typeLabel":"object | null"},"importable_resources":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.importable_resources.items.[INDEX]","typeLabel":"string"},"description":"General-ledger connections only: the resource types that the connection can import.","uniqueKey":"oneOf.1.importable_resources","typeLabel":"string[]"},"environment":{"oneOf":[{"type":"string","enum":["production","sandbox",null],"description":"Fireblocks connections only: the Fireblocks host; null when the stored host is not a known Fireblocks host.","uniqueKey":"oneOf.1.environment.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["production","sandbox",null],"description":"Fireblocks connections only: the Fireblocks host; null when the stored host is not a known Fireblocks host.","uniqueKey":"oneOf.1.environment.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.environment","typeLabel":"enum\u003cstring> | null"},"plaid":{"oneOf":[{"type":"object","description":"Bank only. Plaid state of the bank connection; null on a hosted setup that has no Plaid item yet.","properties":{"institution_name":{"oneOf":[{"type":"string","uniqueKey":"oneOf.1.plaid.oneOf.0.institution_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"oneOf.1.plaid.oneOf.0.institution_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.plaid.oneOf.0.institution_name","typeLabel":"string | null"},"connection_status":{"oneOf":[{"type":"string","description":"One of pending_setup, active, error or disconnected.","uniqueKey":"oneOf.1.plaid.oneOf.0.connection_status.oneOf.0","typeLabel":"string"},{"type":"null","description":"One of pending_setup, active, error or disconnected.","uniqueKey":"oneOf.1.plaid.oneOf.0.connection_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.plaid.oneOf.0.connection_status","typeLabel":"string | null"},"consent_expires_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"oneOf.1.plaid.oneOf.0.consent_expires_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"oneOf.1.plaid.oneOf.0.consent_expires_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.plaid.oneOf.0.consent_expires_at","typeLabel":"string\u003cdate-time> | null"},"pending_disconnect_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"oneOf.1.plaid.oneOf.0.pending_disconnect_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"oneOf.1.plaid.oneOf.0.pending_disconnect_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.plaid.oneOf.0.pending_disconnect_at","typeLabel":"string\u003cdate-time> | null"},"initial_update_complete":{"oneOf":[{"type":"boolean","uniqueKey":"oneOf.1.plaid.oneOf.0.initial_update_complete.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.1.plaid.oneOf.0.initial_update_complete.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.plaid.oneOf.0.initial_update_complete","typeLabel":"boolean | null"},"historical_update_complete":{"oneOf":[{"type":"boolean","uniqueKey":"oneOf.1.plaid.oneOf.0.historical_update_complete.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.1.plaid.oneOf.0.historical_update_complete.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.plaid.oneOf.0.historical_update_complete","typeLabel":"boolean | null"},"new_accounts_available":{"oneOf":[{"type":"boolean","uniqueKey":"oneOf.1.plaid.oneOf.0.new_accounts_available.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"oneOf.1.plaid.oneOf.0.new_accounts_available.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.plaid.oneOf.0.new_accounts_available","typeLabel":"boolean | null"},"bank_transactions_updated_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"oneOf.1.plaid.oneOf.0.bank_transactions_updated_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"oneOf.1.plaid.oneOf.0.bank_transactions_updated_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.plaid.oneOf.0.bank_transactions_updated_at","typeLabel":"string\u003cdate-time> | null"},"tags":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.plaid.oneOf.0.tags.items.[INDEX]","typeLabel":"string"},"description":"Prefixed tag ids (tag_).","uniqueKey":"oneOf.1.plaid.oneOf.0.tags","typeLabel":"string[]"}},"uniqueKey":"oneOf.1.plaid.oneOf.0","typeLabel":"object"},{"type":"null","description":"Bank only. Plaid state of the bank connection; null on a hosted setup that has no Plaid item yet.","properties":{"institution_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"connection_status":{"oneOf":[{"type":"string","description":"One of pending_setup, active, error or disconnected."},{"type":"null","description":"One of pending_setup, active, error or disconnected."}]},"consent_expires_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"pending_disconnect_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"initial_update_complete":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"historical_update_complete":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"new_accounts_available":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"bank_transactions_updated_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"tags":{"type":"array","items":{"type":"string"},"description":"Prefixed tag ids (tag_)."}},"uniqueKey":"oneOf.1.plaid.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.plaid","typeLabel":"object | null"}},"additionalProperties":false,"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"example":{"data":{"redirect_url":"https://provider.example/authorize"}},"examples":{"Example":{"title":"Example","value":{"data":{"redirect_url":"https://provider.example/authorize"}}}},"exampleType":"examples"}},"headers":{"X-Request-Id":{"description":"Support correlation ID.","schema":{"type":"string"}},"ETag":{"schema":{"type":"string"},"description":"DualEntry and Campfire only. Strong version of the connection."},"Location":{"schema":{"type":"string"},"description":"DualEntry and Campfire only. Canonical list URL for the connection."}},"exampleType":"examples"},"e1a55b77-76de-4d2c-951f-93d05e18a2c3":{"description":"Created.","headers":{"X-Request-Id":{"description":"Support correlation ID.","schema":{"type":"string"}},"ETag":{"description":"Version tag of the returned resource.","schema":{"type":"string"},"example":"\"v_example\""},"Location":{"description":"URL to retrieve the returned resource through its list endpoint.","schema":{"type":"string"},"example":"/v1/connections?connection_ids=con_507f1f77bcf86cd799439011"}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","description":"Connection ID (`con_…`).","example":"con_507f1f77bcf86cd799439011","isRequired":true,"uniqueKey":"data.id","typeLabel":"string"},"organization_id":{"type":"string","description":"Organization ID (`org_…`).","example":"org_507f1f77bcf86cd799439011","isRequired":true,"uniqueKey":"data.organization_id","typeLabel":"string"},"provider":{"type":"string","description":"Provider identifier.","example":"quickbooks","isRequired":true,"uniqueKey":"data.provider","typeLabel":"string"},"auth_method":{"type":"string","description":"Setup method.","enum":["oauth","api_key"],"isRequired":true,"uniqueKey":"data.auth_method","typeLabel":"enum\u003cstring>"},"name":{"type":"string","description":"Connection display name.","isRequired":true,"uniqueKey":"data.name","typeLabel":"string"},"status":{"type":"string","description":"Connection status.","enum":["pending_setup","active","inactive","expired","disconnecting","disconnected","failed"],"isRequired":true,"uniqueKey":"data.status","typeLabel":"enum\u003cstring>"},"external_account_id":{"oneOf":[{"type":"string","description":"Account ID at the provider.","isRequired":true,"uniqueKey":"data.external_account_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Account ID at the provider.","isRequired":true,"uniqueKey":"data.external_account_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.external_account_id","typeLabel":"string | null"},"legal_entity_ids":{"type":"array","items":{"type":"string","description":"Legal entity ID (`le_…`).","example":"le_507f1f77bcf86cd799439011","uniqueKey":"data.legal_entity_ids.items.[INDEX]","typeLabel":"string"},"description":"Legal entities of the connection (`le_…`).","isRequired":true,"uniqueKey":"data.legal_entity_ids","typeLabel":"string[]"},"source_ids":{"type":"array","items":{"type":"string","description":"Source ID (`src_…`).","example":"src_507f1f77bcf86cd799439011","uniqueKey":"data.source_ids.items.[INDEX]","typeLabel":"string"},"description":"Sources created from the connection.","isRequired":true,"uniqueKey":"data.source_ids","typeLabel":"string[]"},"capabilities":{"type":"array","items":{"type":"string","description":"Supported action.","uniqueKey":"data.capabilities.items.[INDEX]","typeLabel":"string"},"description":"Actions that the connection supports.","isRequired":true,"uniqueKey":"data.capabilities","typeLabel":"string[]"},"created_at":{"type":"string","description":"ISO 8601 UTC timestamp.","format":"date-time","example":"2026-08-31T12:00:00Z","isRequired":true,"uniqueKey":"data.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp of the last change.","isRequired":true,"uniqueKey":"data.updated_at","typeLabel":"string\u003cdate-time>"},"guidance":{"type":"object","properties":{"allowed_actions":{"type":"array","items":{"type":"object","properties":{"action":{"type":"string","description":"Stable operation name.","isRequired":true,"uniqueKey":"data.guidance.allowed_actions.items.[INDEX].action","typeLabel":"string"},"available":{"type":"boolean","description":"Whether the action is currently available.","isRequired":true,"uniqueKey":"data.guidance.allowed_actions.items.[INDEX].available","typeLabel":"boolean"},"reason":{"oneOf":[{"type":"string","description":"Why unavailable, or null.","isRequired":true,"uniqueKey":"data.guidance.allowed_actions.items.[INDEX].reason.oneOf.0","typeLabel":"string"},{"type":"null","description":"Why unavailable, or null.","isRequired":true,"uniqueKey":"data.guidance.allowed_actions.items.[INDEX].reason.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.guidance.allowed_actions.items.[INDEX].reason","typeLabel":"string | null"},"url":{"oneOf":[{"type":"string","description":"Authorized relative API or dashboard URL, or null.","isRequired":true,"uniqueKey":"data.guidance.allowed_actions.items.[INDEX].url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Authorized relative API or dashboard URL, or null.","isRequired":true,"uniqueKey":"data.guidance.allowed_actions.items.[INDEX].url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.guidance.allowed_actions.items.[INDEX].url","typeLabel":"string | null"}},"required":["action","available","reason","url"],"additionalProperties":false,"uniqueKey":"data.guidance.allowed_actions.items.[INDEX]","typeLabel":"object"},"description":"Actions that you can take now.","isRequired":true,"uniqueKey":"data.guidance.allowed_actions","typeLabel":"object[]"},"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Stable warning code.","isRequired":true,"uniqueKey":"data.guidance.warnings.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","description":"Actionable explanation.","isRequired":true,"uniqueKey":"data.guidance.warnings.items.[INDEX].message","typeLabel":"string"},"field":{"oneOf":[{"type":"string","description":"Affected field, if known.","uniqueKey":"data.guidance.warnings.items.[INDEX].field.oneOf.0","typeLabel":"string"},{"type":"null","description":"Affected field, if known.","uniqueKey":"data.guidance.warnings.items.[INDEX].field.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.guidance.warnings.items.[INDEX].field","typeLabel":"string | null"}},"required":["code","message"],"additionalProperties":false,"uniqueKey":"data.guidance.warnings.items.[INDEX]","typeLabel":"object"},"description":"Warnings about the resource.","isRequired":true,"uniqueKey":"data.guidance.warnings","typeLabel":"object[]"},"version":{"type":"string","description":"Version of the resource. Use it only when an operation asks for `expected_version`.","isRequired":true,"uniqueKey":"data.guidance.version","typeLabel":"string"}},"required":["allowed_actions","warnings","version"],"additionalProperties":false,"isRequired":true,"uniqueKey":"data.guidance","typeLabel":"object"},"etag":{"type":"string","readOnly":true,"pattern":"^\"[^\"\\r\\n]+\"$","description":"Strong version of this resource. Send this value, including its quotes, in If-Match when updating it.","examples":["\"v_example\""],"isRequired":true,"uniqueKey":"data.etag","typeLabel":"string"},"authorization_attempt":{"type":"object","properties":{"id":{"type":"string","description":"Authorization attempt ID (`auth_…`).","example":"auth_507f1f77bcf86cd799439011","isRequired":true,"uniqueKey":"data.authorization_attempt.id","typeLabel":"string"},"status":{"type":"string","description":"Status of the setup attempt.","enum":["pending","succeeded","expired","failed"],"isRequired":true,"uniqueKey":"data.authorization_attempt.status","typeLabel":"enum\u003cstring>"},"setup_url":{"oneOf":[{"type":"string","description":"Setup URL for the user. It expires and is not a credential.","uniqueKey":"data.authorization_attempt.setup_url.oneOf.0","typeLabel":"string"},{"type":"null","description":"Setup URL for the user. It expires and is not a credential.","uniqueKey":"data.authorization_attempt.setup_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.authorization_attempt.setup_url","typeLabel":"string | null"},"link_token":{"oneOf":[{"type":"string","description":"Plaid Link token. Present only in the reauthorize response of a bank connection.","uniqueKey":"data.authorization_attempt.link_token.oneOf.0","typeLabel":"string"},{"type":"null","description":"Plaid Link token. Present only in the reauthorize response of a bank connection.","uniqueKey":"data.authorization_attempt.link_token.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.authorization_attempt.link_token","typeLabel":"string | null"},"expires_at":{"oneOf":[{"type":"string","description":"Expiry time (ISO 8601).","uniqueKey":"data.authorization_attempt.expires_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"Expiry time (ISO 8601).","uniqueKey":"data.authorization_attempt.expires_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.authorization_attempt.expires_at","typeLabel":"string | null"},"error":{"oneOf":[{"type":"string","description":"Why the setup failed.","uniqueKey":"data.authorization_attempt.error.oneOf.0","typeLabel":"string"},{"type":"null","description":"Why the setup failed.","uniqueKey":"data.authorization_attempt.error.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.authorization_attempt.error","typeLabel":"string | null"}},"required":["id","status"],"additionalProperties":false,"description":"The latest setup attempt.","uniqueKey":"data.authorization_attempt","typeLabel":"object"},"created_by":{"oneOf":[{"type":"object","description":"Rain only. The user the legacy configuration records as creator. The email is masked unless `include_pii=true` on the list.","properties":{"id":{"type":"string","uniqueKey":"data.created_by.oneOf.0.id","typeLabel":"string"},"email":{"oneOf":[{"type":"string","uniqueKey":"data.created_by.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.created_by.oneOf.0.email.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.created_by.oneOf.0.email","typeLabel":"string | null"}},"uniqueKey":"data.created_by.oneOf.0","typeLabel":"object"},{"type":"null","description":"Rain only. The user the legacy configuration records as creator. The email is masked unless `include_pii=true` on the list.","properties":{"id":{"type":"string"},"email":{"oneOf":[{"type":"string"},{"type":"null"}]}},"uniqueKey":"data.created_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.created_by","typeLabel":"object | null"},"updated_by":{"oneOf":[{"type":"object","description":"Rain only. The user the legacy configuration records as last editor. The email is masked unless `include_pii=true` on the list.","properties":{"id":{"type":"string","uniqueKey":"data.updated_by.oneOf.0.id","typeLabel":"string"},"email":{"oneOf":[{"type":"string","uniqueKey":"data.updated_by.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.updated_by.oneOf.0.email.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.updated_by.oneOf.0.email","typeLabel":"string | null"}},"uniqueKey":"data.updated_by.oneOf.0","typeLabel":"object"},{"type":"null","description":"Rain only. The user the legacy configuration records as last editor. The email is masked unless `include_pii=true` on the list.","properties":{"id":{"type":"string"},"email":{"oneOf":[{"type":"string"},{"type":"null"}]}},"uniqueKey":"data.updated_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.updated_by","typeLabel":"object | null"},"ramp":{"oneOf":[{"type":"object","description":"Ramp only. Credential hints of the current Ramp connection; null on a disconnected or replaced one. The credentials themselves are never returned.","properties":{"has_credentials":{"type":"boolean","description":"The organization saved Ramp app credentials.","uniqueKey":"data.ramp.oneOf.0.has_credentials","typeLabel":"boolean"},"masked_client_id":{"oneOf":[{"type":"string","uniqueKey":"data.ramp.oneOf.0.masked_client_id.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.ramp.oneOf.0.masked_client_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.ramp.oneOf.0.masked_client_id","typeLabel":"string | null"},"masked_client_secret":{"oneOf":[{"type":"string","uniqueKey":"data.ramp.oneOf.0.masked_client_secret.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.ramp.oneOf.0.masked_client_secret.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.ramp.oneOf.0.masked_client_secret","typeLabel":"string | null"}},"uniqueKey":"data.ramp.oneOf.0","typeLabel":"object"},{"type":"null","description":"Ramp only. Credential hints of the current Ramp connection; null on a disconnected or replaced one. The credentials themselves are never returned.","properties":{"has_credentials":{"type":"boolean","description":"The organization saved Ramp app credentials."},"masked_client_id":{"oneOf":[{"type":"string"},{"type":"null"}]},"masked_client_secret":{"oneOf":[{"type":"string"},{"type":"null"}]}},"uniqueKey":"data.ramp.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.ramp","typeLabel":"object | null"},"revocation_error":{"oneOf":[{"type":"string","description":"Why the provider did not revoke access. A disabled connection in Entendre does not prove that the provider revoked access.","uniqueKey":"data.revocation_error.oneOf.0","typeLabel":"string"},{"type":"null","description":"Why the provider did not revoke access. A disabled connection in Entendre does not prove that the provider revoked access.","uniqueKey":"data.revocation_error.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.revocation_error","typeLabel":"string | null"},"retained_resources":{"type":"array","items":{"type":"string","description":"Resource types retained after disconnect.","uniqueKey":"data.retained_resources.items.[INDEX]","typeLabel":"string"},"description":"Resource types that stay after a disconnect.","uniqueKey":"data.retained_resources","typeLabel":"string[]"},"cleanup":{"type":"object","description":"Present after bank disconnect. Counts rows removed by this call. Zero is valid for empty or already-cleaned connections.","properties":{"accounts_deleted":{"type":"integer","minimum":0,"description":"Bank accounts deleted.","isRequired":true,"uniqueKey":"data.cleanup.accounts_deleted","typeLabel":"integer"},"transactions_deleted":{"type":"integer","minimum":0,"description":"Transactions deleted.","isRequired":true,"uniqueKey":"data.cleanup.transactions_deleted","typeLabel":"integer"}},"required":["accounts_deleted","transactions_deleted"],"uniqueKey":"data.cleanup","typeLabel":"object"},"institution_id":{"oneOf":[{"type":"string","description":"Bank connections only: the Plaid institution id.","uniqueKey":"data.institution_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Bank connections only: the Plaid institution id.","uniqueKey":"data.institution_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.institution_id","typeLabel":"string | null"},"last_synced_at":{"oneOf":[{"type":"string","format":"date-time","description":"Bank and Stripe connections: when the last transaction import from the provider finished.","uniqueKey":"data.last_synced_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Bank and Stripe connections: when the last transaction import from the provider finished.","uniqueKey":"data.last_synced_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.last_synced_at","typeLabel":"string\u003cdate-time> | null"},"last_error":{"oneOf":[{"type":"object","additionalProperties":false,"required":["code","message","type"],"properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"data.last_error.oneOf.0.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"data.last_error.oneOf.0.message","typeLabel":"string"},"type":{"type":"string","isRequired":true,"uniqueKey":"data.last_error.oneOf.0.type","typeLabel":"string"}},"description":"Bank connections only: the last error that the provider reported for the connection, as the provider sent it. Null when the connection has no error.","uniqueKey":"data.last_error.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":false,"required":["code","message","type"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"type":{"type":"string"}},"description":"Bank connections only: the last error that the provider reported for the connection, as the provider sent it. Null when the connection has no error.","uniqueKey":"data.last_error.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.last_error","typeLabel":"object | null"},"importable_resources":{"type":"array","items":{"type":"string","uniqueKey":"data.importable_resources.items.[INDEX]","typeLabel":"string"},"description":"General-ledger connections only: the resource types that the connection can import.","uniqueKey":"data.importable_resources","typeLabel":"string[]"},"environment":{"oneOf":[{"type":"string","enum":["production","sandbox",null],"description":"Fireblocks connections only: the Fireblocks host; null when the stored host is not a known Fireblocks host.","uniqueKey":"data.environment.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["production","sandbox",null],"description":"Fireblocks connections only: the Fireblocks host; null when the stored host is not a known Fireblocks host.","uniqueKey":"data.environment.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.environment","typeLabel":"enum\u003cstring> | null"},"plaid":{"oneOf":[{"type":"object","description":"Bank only. Plaid state of the bank connection; null on a hosted setup that has no Plaid item yet.","properties":{"institution_name":{"oneOf":[{"type":"string","uniqueKey":"data.plaid.oneOf.0.institution_name.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"data.plaid.oneOf.0.institution_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.plaid.oneOf.0.institution_name","typeLabel":"string | null"},"connection_status":{"oneOf":[{"type":"string","description":"One of pending_setup, active, error or disconnected.","uniqueKey":"data.plaid.oneOf.0.connection_status.oneOf.0","typeLabel":"string"},{"type":"null","description":"One of pending_setup, active, error or disconnected.","uniqueKey":"data.plaid.oneOf.0.connection_status.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.plaid.oneOf.0.connection_status","typeLabel":"string | null"},"consent_expires_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"data.plaid.oneOf.0.consent_expires_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"data.plaid.oneOf.0.consent_expires_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.plaid.oneOf.0.consent_expires_at","typeLabel":"string\u003cdate-time> | null"},"pending_disconnect_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"data.plaid.oneOf.0.pending_disconnect_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"data.plaid.oneOf.0.pending_disconnect_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.plaid.oneOf.0.pending_disconnect_at","typeLabel":"string\u003cdate-time> | null"},"initial_update_complete":{"oneOf":[{"type":"boolean","uniqueKey":"data.plaid.oneOf.0.initial_update_complete.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"data.plaid.oneOf.0.initial_update_complete.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.plaid.oneOf.0.initial_update_complete","typeLabel":"boolean | null"},"historical_update_complete":{"oneOf":[{"type":"boolean","uniqueKey":"data.plaid.oneOf.0.historical_update_complete.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"data.plaid.oneOf.0.historical_update_complete.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.plaid.oneOf.0.historical_update_complete","typeLabel":"boolean | null"},"new_accounts_available":{"oneOf":[{"type":"boolean","uniqueKey":"data.plaid.oneOf.0.new_accounts_available.oneOf.0","typeLabel":"boolean"},{"type":"null","uniqueKey":"data.plaid.oneOf.0.new_accounts_available.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.plaid.oneOf.0.new_accounts_available","typeLabel":"boolean | null"},"bank_transactions_updated_at":{"oneOf":[{"type":"string","format":"date-time","uniqueKey":"data.plaid.oneOf.0.bank_transactions_updated_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","uniqueKey":"data.plaid.oneOf.0.bank_transactions_updated_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.plaid.oneOf.0.bank_transactions_updated_at","typeLabel":"string\u003cdate-time> | null"},"tags":{"type":"array","items":{"type":"string","uniqueKey":"data.plaid.oneOf.0.tags.items.[INDEX]","typeLabel":"string"},"description":"Prefixed tag ids (tag_).","uniqueKey":"data.plaid.oneOf.0.tags","typeLabel":"string[]"}},"uniqueKey":"data.plaid.oneOf.0","typeLabel":"object"},{"type":"null","description":"Bank only. Plaid state of the bank connection; null on a hosted setup that has no Plaid item yet.","properties":{"institution_name":{"oneOf":[{"type":"string"},{"type":"null"}]},"connection_status":{"oneOf":[{"type":"string","description":"One of pending_setup, active, error or disconnected."},{"type":"null","description":"One of pending_setup, active, error or disconnected."}]},"consent_expires_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"pending_disconnect_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"initial_update_complete":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"historical_update_complete":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"new_accounts_available":{"oneOf":[{"type":"boolean"},{"type":"null"}]},"bank_transactions_updated_at":{"oneOf":[{"type":"string","format":"date-time"},{"type":"null","format":"date-time"}]},"tags":{"type":"array","items":{"type":"string"},"description":"Prefixed tag ids (tag_)."}},"uniqueKey":"data.plaid.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.plaid","typeLabel":"object | null"}},"required":["id","organization_id","provider","auth_method","name","status","external_account_id","legal_entity_ids","source_ids","capabilities","created_at","updated_at","guidance","etag"],"additionalProperties":false,"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"required":["data"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"example":{"data":{"id":"con_507f1f77bcf86cd799439011","organization_id":"org_507f1f77bcf86cd799439011","provider":"quickbooks","auth_method":"oauth","name":"QuickBooks accounting","status":"pending_setup","external_account_id":null,"legal_entity_ids":["le_507f1f77bcf86cd799439011"],"source_ids":[],"capabilities":["import_transactions"],"authorization_attempt":{"id":"auth_507f1f77bcf86cd799439011","status":"pending","setup_url":"https://app.entendre.finance/settings/integrations","expires_at":"2026-08-31T12:10:00Z","error":null},"created_at":"2026-08-31T12:00:00Z","guidance":{"allowed_actions":[],"warnings":[],"version":"v_example"},"revocation_error":null,"retained_resources":["transactions"],"etag":"\"v_example\""}},"examples":{"Example":{"title":"Example","value":{"data":{"id":"con_507f1f77bcf86cd799439011","organization_id":"org_507f1f77bcf86cd799439011","provider":"quickbooks","auth_method":"oauth","name":"QuickBooks accounting","status":"pending_setup","external_account_id":null,"legal_entity_ids":["le_507f1f77bcf86cd799439011"],"source_ids":[],"capabilities":["import_transactions"],"authorization_attempt":{"id":"auth_507f1f77bcf86cd799439011","status":"pending","setup_url":"https://app.entendre.finance/settings/integrations","expires_at":"2026-08-31T12:10:00Z","error":null},"created_at":"2026-08-31T12:00:00Z","guidance":{"allowed_actions":[],"warnings":[],"version":"v_example"},"revocation_error":null,"retained_resources":["transactions"],"etag":"\"v_example\""}}}},"exampleType":"examples"}},"exampleType":"examples"},"0369e2cb-8376-43a5-a506-d148f9bb1184":{"description":"The request is invalid. `error.fields` lists the fields to correct. Nothing was changed.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable error code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Technical description for developers.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Unique request ID for support escalation.","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"fields":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"error.fields.additionalProperties","typeLabel":"string"},"description":"Present only on VALIDATION_ERROR. Maps failing field paths to reason strings.","uniqueKey":"error.fields","typeLabel":"object"},"details":{"type":"object","additionalProperties":true,"description":"Optional redacted diagnostic details. Request validation uses fields or field_errors.","uniqueKey":"error.details","typeLabel":"object"},"suggested_action":{"type":"string","description":"A suggested next step.","uniqueKey":"error.suggested_action","typeLabel":"string"},"documentation_url":{"type":"string","format":"uri","description":"Link to documentation about this error.","uniqueKey":"error.documentation_url","typeLabel":"string\u003curi>"}},"description":"Error details.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"VALIDATION_ERROR","message":"Invalid path, query or request body.","request_id":"req_example"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_ERROR","message":"Invalid path, query or request body.","request_id":"req_example"}}}},"exampleType":"examples"}},"exampleType":"examples"},"427cb086-6d2b-4172-8cee-8b45b4998773":{"description":"The API key is missing, invalid or expired.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable error code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Technical description for developers.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Unique request ID for support escalation.","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"fields":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"error.fields.additionalProperties","typeLabel":"string"},"description":"Present only on VALIDATION_ERROR. Maps failing field paths to reason strings.","uniqueKey":"error.fields","typeLabel":"object"},"details":{"type":"object","additionalProperties":true,"description":"Optional redacted diagnostic details. Request validation uses fields or field_errors.","uniqueKey":"error.details","typeLabel":"object"},"suggested_action":{"type":"string","description":"A suggested next step.","uniqueKey":"error.suggested_action","typeLabel":"string"},"documentation_url":{"type":"string","format":"uri","description":"Link to documentation about this error.","uniqueKey":"error.documentation_url","typeLabel":"string\u003curi>"}},"description":"Error details.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"UNAUTHORIZED","message":"Invalid or expired API Key","request_id":"req_example","suggested_action":"Send an API key in X-API-Key, or an OAuth access token as Authorization: Bearer. Refresh an expired access token.","documentation_url":"https://entendre.ai/docs/get-started/authentication"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UNAUTHORIZED","message":"Invalid or expired API Key","request_id":"req_example","suggested_action":"Send an API key in X-API-Key, or an OAuth access token as Authorization: Bearer. Refresh an expired access token.","documentation_url":"https://entendre.ai/docs/get-started/authentication"}}}},"exampleType":"examples"}},"headers":{"WWW-Authenticate":{"description":"Bearer challenge with `realm=\"entendre\"` and `resource_metadata`, the URL of the protected-resource metadata (RFC 9728). `error=\"invalid_token\"` is added when the credential that was sent is invalid or expired.","schema":{"type":"string"}}},"exampleType":"examples"},"51ebab4e-8a14-4963-8596-2898a26e68b5":{"description":"The API key does not have the required scope or is not associated with a user, or the action needs a review in the dashboard.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable error code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Technical description for developers.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Unique request ID for support escalation.","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"fields":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"error.fields.additionalProperties","typeLabel":"string"},"description":"Present only on VALIDATION_ERROR. Maps failing field paths to reason strings.","uniqueKey":"error.fields","typeLabel":"object"},"details":{"type":"object","additionalProperties":true,"description":"Optional redacted diagnostic details. Request validation uses fields or field_errors.","uniqueKey":"error.details","typeLabel":"object"},"suggested_action":{"type":"string","description":"A suggested next step.","uniqueKey":"error.suggested_action","typeLabel":"string"},"documentation_url":{"type":"string","format":"uri","description":"Link to documentation about this error.","uniqueKey":"error.documentation_url","typeLabel":"string\u003curi>"}},"description":"Error details.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"FORBIDDEN","message":"Insufficient access to organization","request_id":"req_example"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"FORBIDDEN","message":"Insufficient access to organization","request_id":"req_example"}}}},"exampleType":"examples"}},"exampleType":"examples"},"53c34ff4-1adf-4356-8231-d37921fc6a9d":{"description":"The resource does not exist, or your organization cannot access it.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable error code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Technical description for developers.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Unique request ID for support escalation.","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"fields":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"error.fields.additionalProperties","typeLabel":"string"},"description":"Present only on VALIDATION_ERROR. Maps failing field paths to reason strings.","uniqueKey":"error.fields","typeLabel":"object"},"details":{"type":"object","additionalProperties":true,"description":"Optional redacted diagnostic details. Request validation uses fields or field_errors.","uniqueKey":"error.details","typeLabel":"object"},"suggested_action":{"type":"string","description":"A suggested next step.","uniqueKey":"error.suggested_action","typeLabel":"string"},"documentation_url":{"type":"string","format":"uri","description":"Link to documentation about this error.","uniqueKey":"error.documentation_url","typeLabel":"string\u003curi>"}},"description":"Error details.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"RESOURCE_NOT_FOUND","message":"Resource not found","request_id":"req_example"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"RESOURCE_NOT_FOUND","message":"Resource not found","request_id":"req_example"}}}},"exampleType":"examples"}},"exampleType":"examples"},"44bf9d23-8ffd-49df-a411-314787aa7c75":{"description":"The current state of the resource or an accounting rule prevents this operation. Read the resource again before you choose another action.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable error code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Technical description for developers.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Unique request ID for support escalation.","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"fields":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"error.fields.additionalProperties","typeLabel":"string"},"description":"Present only on VALIDATION_ERROR. Maps failing field paths to reason strings.","uniqueKey":"error.fields","typeLabel":"object"},"details":{"type":"object","additionalProperties":true,"description":"Optional redacted diagnostic details. Request validation uses fields or field_errors.","uniqueKey":"error.details","typeLabel":"object"},"suggested_action":{"type":"string","description":"A suggested next step.","uniqueKey":"error.suggested_action","typeLabel":"string"},"documentation_url":{"type":"string","format":"uri","description":"Link to documentation about this error.","uniqueKey":"error.documentation_url","typeLabel":"string\u003curi>"}},"description":"Error details.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"CONFLICT","message":"The resource state does not allow this operation.","request_id":"req_example"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"CONFLICT","message":"The resource state does not allow this operation.","request_id":"req_example"}}}},"exampleType":"examples"}},"exampleType":"examples"},"e933bbf4-aa75-457a-af9f-ec6837ed8920":{"description":"Too many requests. If the response has a `Retry-After` header, wait that many seconds before you retry. Otherwise, read `error.message`.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable error code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Technical description for developers.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Unique request ID for support escalation.","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"fields":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"error.fields.additionalProperties","typeLabel":"string"},"description":"Present only on VALIDATION_ERROR. Maps failing field paths to reason strings.","uniqueKey":"error.fields","typeLabel":"object"},"details":{"type":"object","additionalProperties":true,"description":"Optional redacted diagnostic details. Request validation uses fields or field_errors.","uniqueKey":"error.details","typeLabel":"object"},"suggested_action":{"type":"string","description":"A suggested next step.","uniqueKey":"error.suggested_action","typeLabel":"string"},"documentation_url":{"type":"string","format":"uri","description":"Link to documentation about this error.","uniqueKey":"error.documentation_url","typeLabel":"string\u003curi>"}},"description":"Error details.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"RATE_LIMITED","message":"Rate limit exceeded. Retry after 30s.","request_id":"req_example"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"RATE_LIMITED","message":"Rate limit exceeded. Retry after 30s.","request_id":"req_example"}}}},"exampleType":"examples"}},"exampleType":"examples"},"ec409d56-c90d-4950-86d0-1e6a4575d6e6":{"description":"An unexpected error occurred. A write can still have taken effect; check the resource before you retry. Give the `request_id` to support.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable error code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Technical description for developers.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Unique request ID for support escalation.","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"fields":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"error.fields.additionalProperties","typeLabel":"string"},"description":"Present only on VALIDATION_ERROR. Maps failing field paths to reason strings.","uniqueKey":"error.fields","typeLabel":"object"},"details":{"type":"object","additionalProperties":true,"description":"Optional redacted diagnostic details. Request validation uses fields or field_errors.","uniqueKey":"error.details","typeLabel":"object"},"suggested_action":{"type":"string","description":"A suggested next step.","uniqueKey":"error.suggested_action","typeLabel":"string"},"documentation_url":{"type":"string","format":"uri","description":"Link to documentation about this error.","uniqueKey":"error.documentation_url","typeLabel":"string\u003curi>"}},"description":"Error details.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"INTERNAL_ERROR","message":"Internal server error","request_id":"req_example"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"INTERNAL_ERROR","message":"Internal server error","request_id":"req_example"}}}},"exampleType":"examples"}},"exampleType":"examples"},"af7a09e9-4844-4cdc-85e4-e9bc15912a54":{"description":"A service that this operation needs is unavailable. If the response has a `Retry-After` header, wait that many seconds. Check for earlier accepted work before you send the request again.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable error code.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Technical description for developers.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","description":"Unique request ID for support escalation.","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"fields":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"error.fields.additionalProperties","typeLabel":"string"},"description":"Present only on VALIDATION_ERROR. Maps failing field paths to reason strings.","uniqueKey":"error.fields","typeLabel":"object"},"details":{"type":"object","additionalProperties":true,"description":"Optional redacted diagnostic details. Request validation uses fields or field_errors.","uniqueKey":"error.details","typeLabel":"object"},"suggested_action":{"type":"string","description":"A suggested next step.","uniqueKey":"error.suggested_action","typeLabel":"string"},"documentation_url":{"type":"string","format":"uri","description":"Link to documentation about this error.","uniqueKey":"error.documentation_url","typeLabel":"string\u003curi>"}},"description":"Error details.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"SERVICE_UNAVAILABLE","message":"Service unavailable.","request_id":"req_example"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"SERVICE_UNAVAILABLE","message":"Service unavailable.","request_id":"req_example"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"1fe0c3f6-35d9-41d2-ac91-13356ced44bb":{"ApiKey":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Your organization API key. See [Authentication](/get-started/authentication).","scopes":[],"schemeName":"ApiKey"}}},"servers":{"9e59403a-73c1-494e-9818-59dd36bdbfad":{"url":"https://api.entendre.finance","description":"Production API."}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Your organization API key. See [Authentication](/get-started/authentication).","scopes":[],"schemeName":"ApiKey"},"schema":{"title":"X-API-Key","type":"string","description":"Your organization API key. See [Authentication](/get-started/authentication).","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKey","name":"X-API-Key"}],"title":"ApiKey"}]},"originalFileLocation":"openapi-public-preview.json"},"subdomain":"entendre","siteName":"Entendre Docs","title":"Connect provider - Entendre Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T15:20:15.064Z","originalFileLocation":"api-reference/integrations/connections/connect-provider.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Connects an exchange, Plaid, Ramp, Rain, Stripe, Fireblocks or general-ledger provider.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Entendre Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/entendre/Mf9zE4F1cDdIJzLg/_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=\"/docs/mintlify-assets/_mintlify/favicons/entendre/Mf9zE4F1cDdIJzLg/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/entendre/Mf9zE4F1cDdIJzLg/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/entendre/Mf9zE4F1cDdIJzLg/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/entendre/Mf9zE4F1cDdIJzLg/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/entendre/Mf9zE4F1cDdIJzLg/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/entendre/Mf9zE4F1cDdIJzLg/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/entendre/Mf9zE4F1cDdIJzLg/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/entendre/Mf9zE4F1cDdIJzLg/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Connect provider - Entendre Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Connects an exchange, Plaid, Ramp, Rain, Stripe, Fireblocks or general-ledger provider.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Entendre Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://entendre.ai/docs/api-reference/integrations/connections/connect-provider\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://entendre.mintlify.site/docs/_mintlify/api/og/v2?division=Connections\u0026amp;title=Connect+provider\u0026amp;description=Connects+an+exchange%2C+Plaid%2C+Ramp%2C+Rain%2C+Stripe%2C+Fireblocks+or+general-ledger+provider.\u0026amp;theme=455e3eee472c81219447aa36\u0026amp;signature=51742c3b4a752059b915f13cad43752fbac8dda1074aa84c276fe77fc8e24c44\">\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=\"Connect provider - Entendre Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Connects an exchange, Plaid, Ramp, Rain, Stripe, Fireblocks or general-ledger provider.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://entendre.mintlify.site/docs/_mintlify/api/og/v2?division=Connections\u0026amp;title=Connect+provider\u0026amp;description=Connects+an+exchange%2C+Plaid%2C+Ramp%2C+Rain%2C+Stripe%2C+Fireblocks+or+general-ledger+provider.\u0026amp;theme=455e3eee472c81219447aa36\u0026amp;signature=51742c3b4a752059b915f13cad43752fbac8dda1074aa84c276fe77fc8e24c44\">\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=\"/docs/mintlify-assets/_mintlify/favicons/entendre/Mf9zE4F1cDdIJzLg/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Entendre Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6366F1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://entendre.ai/docs/api-reference/integrations/connections/connect-provider\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/integrations/connections/connect-provider.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://entendre.ai/#organization\",\"name\":\"Entendre Docs\",\"url\":\"https://entendre.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/entendre/iLG_yPYNFEzW9piO/logo.svg?fit=max\u0026auto=format\u0026n=iLG_yPYNFEzW9piO\u0026q=85\u0026s=e7ab9f91191f7aa74918c227c0675fc6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://entendre.ai/docs#website\",\"name\":\"Entendre Docs\",\"url\":\"https://entendre.ai/docs\",\"publisher\":{\"@id\":\"https://entendre.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://entendre.ai/docs/api-reference/integrations/connections/connect-provider#webpage\",\"url\":\"https://entendre.ai/docs/api-reference/integrations/connections/connect-provider\",\"name\":\"Connect provider\",\"description\":\"Connects an exchange, Plaid, Ramp, Rain, Stripe, Fireblocks or general-ledger provider.\",\"dateModified\":\"2026-11-03T15:20:15.064Z\",\"isPartOf\":{\"@id\":\"https://entendre.ai/docs#website\"},\"breadcrumb\":{\"@id\":\"https://entendre.ai/docs/api-reference/integrations/connections/connect-provider#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://entendre.ai/docs/api-reference/integrations/connections/connect-provider#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Integrations\",\"item\":\"https://entendre.ai/docs/api-reference/integrations/connections/list-integrations\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Connections\",\"item\":\"https://entendre.ai/docs/api-reference/integrations/connections/list-integrations\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Connect provider\",\"item\":\"https://entendre.ai/docs/api-reference/integrations/connections/connect-provider\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://entendre.ai/docs/api-reference/integrations/connections/connect-provider#apireference\",\"headline\":\"Connect provider\",\"name\":\"Connect provider\",\"description\":\"Connects an exchange, Plaid, Ramp, Rain, Stripe, Fireblocks or general-ledger provider.\",\"url\":\"https://entendre.ai/docs/api-reference/integrations/connections/connect-provider\",\"mainEntityOfPage\":{\"@id\":\"https://entendre.ai/docs/api-reference/integrations/connections/connect-provider#webpage\"},\"dateModified\":\"2026-11-03T15:20:15.064Z\",\"publisher\":{\"@id\":\"https://entendre.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://entendre.ai/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Entendre Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Entendre Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/api-reference/integrations/connections/connect-provider.md","siteName":"Entendre Docs","nav":{"global":null,"tabs":[{"tab":"Docs","pages":[{"title":"Docs","href":"/get-started/introduction"}]},{"tab":"API Reference","groups":[{"group":"Using the API","pages":[{"title":"Overview","href":"/api-reference/overview"}]},{"group":"Core","pages":[{"group":"Organization","pages":[{"title":"Get organization","openapi":"openapi-public-preview.json GET /v1/organization","href":"/api-reference/core/organization/get-organization"},{"title":"Update organization","openapi":"openapi-public-preview.json PATCH /v1/organization","href":"/api-reference/core/organization/update-organization"},{"title":"List organization members","openapi":"openapi-public-preview.json GET /v1/organization/members","href":"/api-reference/core/organization/list-organization-members"}]},{"group":"Transactions","pages":[{"title":"List transactions","openapi":"openapi-public-preview.json GET /v1/transactions","href":"/api-reference/core/transactions/list-transactions"},{"title":"Create transaction","openapi":"openapi-public-preview.json POST /v1/transactions","href":"/api-reference/core/transactions/create-transaction"},{"title":"Update transaction","openapi":"openapi-public-preview.json PATCH /v1/transactions/{transaction_id}","href":"/api-reference/core/transactions/update-transaction"},{"title":"Delete transaction","openapi":"openapi-public-preview.json DELETE /v1/transactions/{transaction_id}","href":"/api-reference/core/transactions/delete-transaction"}]},{"group":"Sources","pages":[{"title":"List sources","openapi":"openapi-public-preview.json GET /v1/sources","href":"/api-reference/core/sources/list-sources"},{"title":"Create source","openapi":"openapi-public-preview.json POST /v1/sources","href":"/api-reference/core/sources/create-source"},{"title":"Update source","openapi":"openapi-public-preview.json PATCH /v1/sources/{source_id}","href":"/api-reference/core/sources/update-source"},{"title":"Delete source","openapi":"openapi-public-preview.json DELETE /v1/sources/{source_id}","href":"/api-reference/core/sources/delete-source"},{"title":"Import transactions from source","openapi":"openapi-public-preview.json POST /v1/sources/{source_id}/imports","href":"/api-reference/core/sources/import-transactions-from-source"}]},{"group":"Assets","pages":[{"title":"List assets","openapi":"openapi-public-preview.json GET /v1/assets","href":"/api-reference/core/assets/list-assets"},{"title":"Create manual asset","openapi":"openapi-public-preview.json POST /v1/assets","href":"/api-reference/core/assets/create-manual-asset"},{"title":"Update manual asset","openapi":"openapi-public-preview.json PATCH /v1/assets/{asset_id}","href":"/api-reference/core/assets/update-manual-asset"},{"title":"Delete manual asset","openapi":"openapi-public-preview.json DELETE /v1/assets/{asset_id}","href":"/api-reference/core/assets/delete-manual-asset"}]},{"group":"Journals","pages":[{"title":"List journals","openapi":"openapi-public-preview.json GET /v1/journal-entries","href":"/api-reference/core/journals/list-journals"},{"title":"Create journal","openapi":"openapi-public-preview.json POST /v1/journal-entries","href":"/api-reference/core/journals/create-journal"},{"title":"Update journal","openapi":"openapi-public-preview.json PATCH /v1/journal-entries/{journal_id}","href":"/api-reference/core/journals/update-journal"},{"title":"Delete journal","openapi":"openapi-public-preview.json DELETE /v1/journal-entries/{journal_id}","href":"/api-reference/core/journals/delete-journal"},{"title":"Post journal","openapi":"openapi-public-preview.json POST /v1/journal-entries/{journal_id}/post","href":"/api-reference/core/journals/post-journal"},{"title":"Unpost journal","openapi":"openapi-public-preview.json POST /v1/journal-entries/{journal_id}/unpost","href":"/api-reference/core/journals/unpost-journal"},{"title":"Reverse journal","openapi":"openapi-public-preview.json POST /v1/journal-entries/{journal_id}/reverse","href":"/api-reference/core/journals/reverse-journal"},{"title":"Sync journals","openapi":"openapi-public-preview.json POST /v1/journal-entries/syncs","href":"/api-reference/core/journals/sync-journals"},{"title":"List journal sync jobs","openapi":"openapi-public-preview.json GET /v1/journal-entries/syncs","href":"/api-reference/core/journals/list-journal-sync-jobs"}]},{"group":"Documents","pages":[{"title":"List documents","openapi":"openapi-public-preview.json GET /v1/vault/documents","href":"/api-reference/core/documents/list-documents"},{"title":"Upload document","openapi":"openapi-public-preview.json POST /v1/vault/documents","href":"/api-reference/core/documents/upload-document"},{"title":"Update document","openapi":"openapi-public-preview.json PATCH /v1/vault/documents/{document_id}","href":"/api-reference/core/documents/update-document"},{"title":"Delete document","openapi":"openapi-public-preview.json DELETE /v1/vault/documents/{document_id}","href":"/api-reference/core/documents/delete-document"}]},{"group":"Legal Entities","pages":[{"title":"List legal entities","openapi":"openapi-public-preview.json GET /v1/legal-entities","href":"/api-reference/core/legal-entities/list-legal-entities"},{"title":"Create legal entity","openapi":"openapi-public-preview.json POST /v1/legal-entities","href":"/api-reference/core/legal-entities/create-legal-entity"},{"title":"Update legal entity","openapi":"openapi-public-preview.json PATCH /v1/legal-entities/{legal_entity_id}","href":"/api-reference/core/legal-entities/update-legal-entity"},{"title":"Delete legal entity","openapi":"openapi-public-preview.json DELETE /v1/legal-entities/{legal_entity_id}","href":"/api-reference/core/legal-entities/delete-legal-entity"}]},{"group":"Ledger Accounts","pages":[{"title":"List ledger accounts","openapi":"openapi-public-preview.json GET /v1/ledger-accounts","href":"/api-reference/core/ledger-accounts/list-ledger-accounts"},{"title":"Create ledger account","openapi":"openapi-public-preview.json POST /v1/ledger-accounts","href":"/api-reference/core/ledger-accounts/create-ledger-account"},{"title":"Update ledger account","openapi":"openapi-public-preview.json PATCH /v1/ledger-accounts/{ledger_account_id}","href":"/api-reference/core/ledger-accounts/update-ledger-account"},{"title":"Delete ledger account","openapi":"openapi-public-preview.json DELETE /v1/ledger-accounts/{ledger_account_id}","href":"/api-reference/core/ledger-accounts/delete-ledger-account"}]},{"group":"Tags","pages":[{"title":"List tags","openapi":"openapi-public-preview.json GET /v1/tags","href":"/api-reference/core/tags/list-tags"},{"title":"Create tag","openapi":"openapi-public-preview.json POST /v1/tags","href":"/api-reference/core/tags/create-tag"},{"title":"Update tag","openapi":"openapi-public-preview.json PATCH /v1/tags/{tag_id}","href":"/api-reference/core/tags/update-tag"},{"title":"Delete tag","openapi":"openapi-public-preview.json DELETE /v1/tags/{tag_id}","href":"/api-reference/core/tags/delete-tag"}]}]},{"group":"Accounting","pages":[{"group":"Accruals","pages":[{"title":"Find vendors for accruals","openapi":"openapi-public-preview.json GET /v1/vault/vendors","href":"/api-reference/accounting/accruals/find-vendors-for-accruals"},{"title":"List accruals","openapi":"openapi-public-preview.json GET /v1/accruals","href":"/api-reference/accounting/accruals/list-accruals"},{"title":"Post accrual entries","openapi":"openapi-public-preview.json POST /v1/accruals","href":"/api-reference/accounting/accruals/post-accrual-entries"},{"title":"Reverse accrual","openapi":"openapi-public-preview.json POST /v1/accruals/{accrual_id}/reverse","href":"/api-reference/accounting/accruals/reverse-accrual"}]},{"group":"Cash Application","pages":[{"title":"List eligible invoices","openapi":"openapi-public-preview.json GET /v1/cash-applications/invoices","href":"/api-reference/accounting/cash-application/list-eligible-invoices"},{"title":"Refresh Stripe invoice","openapi":"openapi-public-preview.json POST /v1/cash-applications/invoices/refresh","href":"/api-reference/accounting/cash-application/refresh-stripe-invoice"},{"title":"Preview cash application","openapi":"openapi-public-preview.json POST /v1/cash-applications/preview","href":"/api-reference/accounting/cash-application/preview-cash-application"},{"title":"List cash applications","openapi":"openapi-public-preview.json GET /v1/cash-applications","href":"/api-reference/accounting/cash-application/list-cash-applications"},{"title":"Create and apply cash application","openapi":"openapi-public-preview.json POST /v1/cash-applications","href":"/api-reference/accounting/cash-application/create-and-apply-cash-application"},{"title":"Update cash application","openapi":"openapi-public-preview.json PATCH /v1/cash-applications/{application_id}","href":"/api-reference/accounting/cash-application/update-cash-application"},{"title":"Apply cash application","openapi":"openapi-public-preview.json POST /v1/cash-applications/{application_id}/apply","href":"/api-reference/accounting/cash-application/apply-cash-application"},{"title":"Unapply cash application","openapi":"openapi-public-preview.json POST /v1/cash-applications/{application_id}/unapply","href":"/api-reference/accounting/cash-application/unapply-cash-application"},{"title":"Complete cash application","openapi":"openapi-public-preview.json POST /v1/cash-applications/{application_id}/complete","href":"/api-reference/accounting/cash-application/complete-cash-application"},{"title":"Void cash application","openapi":"openapi-public-preview.json POST /v1/cash-applications/{application_id}/void","href":"/api-reference/accounting/cash-application/void-cash-application"}]},{"group":"Classification","pages":[{"title":"Classify transactions","openapi":"openapi-public-preview.json POST /v1/classifications","href":"/api-reference/accounting/classification/classify-transactions"},{"title":"Get classification status","openapi":"openapi-public-preview.json GET /v1/classifications/{classification_id}","href":"/api-reference/accounting/classification/get-classification"}]},{"group":"Cost Basis","pages":[{"title":"Get cost basis settings","openapi":"openapi-public-preview.json GET /v1/settings/cost-basis","href":"/api-reference/accounting/cost-basis/get-cost-basis-settings"},{"title":"Update cost basis settings","openapi":"openapi-public-preview.json PUT /v1/settings/cost-basis","href":"/api-reference/accounting/cost-basis/update-cost-basis-settings"}]},{"group":"Purpose Accounts","pages":[{"title":"List purpose accounts","openapi":"openapi-public-preview.json GET /v1/organization/purpose-accounts","href":"/api-reference/accounting/purpose-accounts/list-purpose-accounts"},{"title":"Set realized gain or loss account","openapi":"openapi-public-preview.json PUT /v1/organization/purpose-accounts","href":"/api-reference/accounting/purpose-accounts/set-purpose-account"}]},{"group":"Revaluation","pages":[{"title":"List revaluations","openapi":"openapi-public-preview.json GET /v1/revaluations","href":"/api-reference/accounting/revaluation/list-revaluations"},{"title":"Create revaluation","openapi":"openapi-public-preview.json POST /v1/revaluations","href":"/api-reference/accounting/revaluation/create-revaluation"}]},{"group":"Accounting Periods","pages":[{"title":"List accounting periods","openapi":"openapi-public-preview.json GET /v1/accounting-periods","href":"/api-reference/accounting/accounting-periods/list-accounting-periods"},{"title":"Check period readiness","openapi":"openapi-public-preview.json GET /v1/accounting-periods/{period_id}/close-preflight","href":"/api-reference/accounting/accounting-periods/check-period-readiness"},{"title":"Close accounting period","openapi":"openapi-public-preview.json POST /v1/accounting-periods/{period_id}/close","href":"/api-reference/accounting/accounting-periods/close-accounting-period"},{"title":"Reopen accounting period","openapi":"openapi-public-preview.json POST /v1/accounting-periods/{period_id}/reopen","href":"/api-reference/accounting/accounting-periods/reopen-accounting-period"}]}]},{"group":"Reporting","pages":[{"group":"Income Statement","pages":[{"title":"Get income statement","openapi":"openapi-public-preview.json GET /v1/reports/income-statement","href":"/api-reference/reporting/income-statement/get-income-statement"}]},{"group":"Balance Sheet","pages":[{"title":"Get balance sheet","openapi":"openapi-public-preview.json GET /v1/reports/balance-sheet","href":"/api-reference/reporting/balance-sheet/get-balance-sheet"}]},{"group":"Trial Balance","pages":[{"title":"Get trial balance","openapi":"openapi-public-preview.json GET /v1/reports/trial-balance","href":"/api-reference/reporting/trial-balance/get-trial-balance"}]},{"group":"Closing Positions","pages":[{"title":"Get closing positions","openapi":"openapi-public-preview.json GET /v1/reports/closing-positions","href":"/api-reference/reporting/closing-positions/get-closing-positions"}]},{"group":"Treasury Balances","pages":[{"title":"Get treasury balances","openapi":"openapi-public-preview.json GET /v1/reports/treasury-balances","href":"/api-reference/reporting/treasury-balances/get-treasury-balances"},{"title":"Refresh treasury balances","openapi":"openapi-public-preview.json POST /v1/reports/treasury-balances/refresh","href":"/api-reference/reporting/treasury-balances/refresh-treasury-balances"}]},{"group":"Realized Gains \u0026 Losses","pages":[{"title":"Get realized gains \u0026 losses","openapi":"openapi-public-preview.json GET /v1/reports/realized-gains","href":"/api-reference/reporting/realized-gains-and-losses/get-realized-gains-and-losses"}]},{"group":"Asset Tax Lots","pages":[{"title":"Get asset tax lots","openapi":"openapi-public-preview.json GET /v1/reports/asset-tax-lots","href":"/api-reference/reporting/asset-tax-lots/get-asset-tax-lots"}]},{"group":"Schedule of Dispositions","pages":[{"title":"Get schedule of dispositions","openapi":"openapi-public-preview.json GET /v1/reports/schedule-of-dispositions","href":"/api-reference/reporting/schedule-of-dispositions/get-schedule-of-dispositions"}]},{"group":"Financial Insights","pages":[{"title":"Get financial insights","openapi":"openapi-public-preview.json GET /v1/reports/financial-insights","href":"/api-reference/reporting/financial-insights/get-financial-insights"}]}]},{"group":"Agents","pages":[{"group":"Agents","pages":[{"title":"List agents","openapi":"openapi-public-preview.json GET /v1/agents","href":"/api-reference/agents/agents/list-agents"},{"title":"Create agent","openapi":"openapi-public-preview.json POST /v1/agents","href":"/api-reference/agents/agents/create-agent"},{"title":"Update agent","openapi":"openapi-public-preview.json PATCH /v1/agents/{agent_id}","href":"/api-reference/agents/agents/update-agent"},{"title":"Delete agent","openapi":"openapi-public-preview.json DELETE /v1/agents/{agent_id}","href":"/api-reference/agents/agents/delete-agent"},{"title":"Run agent","openapi":"openapi-public-preview.json POST /v1/agents/{agent_id}/runs","href":"/api-reference/agents/agents/run-agent"},{"title":"List agent runs","openapi":"openapi-public-preview.json GET /v1/agents/{agent_id}/runs","href":"/api-reference/agents/agents/list-agent-runs"},{"title":"Cancel agent run","openapi":"openapi-public-preview.json POST /v1/agents/{agent_id}/runs/{run_id}/cancel","href":"/api-reference/agents/agents/cancel-agent-run"}]},{"group":"Memory","pages":[{"title":"List memory","openapi":"openapi-public-preview.json GET /v1/memory","href":"/api-reference/agents/memory/list-memory"},{"title":"Search memory","openapi":"openapi-public-preview.json GET /v1/memory/search","href":"/api-reference/agents/memory/search-memory"},{"title":"Read memory","openapi":"openapi-public-preview.json GET /v1/memory/file","href":"/api-reference/agents/memory/read-memory"},{"title":"Write memory","openapi":"openapi-public-preview.json PUT /v1/memory/file","href":"/api-reference/agents/memory/write-memory"},{"title":"Delete memory","openapi":"openapi-public-preview.json DELETE /v1/memory/file","href":"/api-reference/agents/memory/delete-memory"}]}]},{"group":"Integrations","pages":[{"group":"Connections","pages":[{"title":"List integrations","openapi":"openapi-public-preview.json GET /v1/integrations","href":"/api-reference/integrations/connections/list-integrations"},{"title":"List connections","description":"Lists your general-ledger, exchange, bank, card, receivables and custody connections.","openapi":"openapi-public-preview.json GET /v1/connections","href":"/api-reference/integrations/connections/list-connections"},{"title":"Connect provider","openapi":"openapi-public-preview.json POST /v1/connections","href":"/api-reference/integrations/connections/connect-provider"},{"title":"Update connection","description":"Updates the name or legal entities of a connection.","openapi":"openapi-public-preview.json PATCH /v1/connections/{connection_id}","href":"/api-reference/integrations/connections/update-connection"},{"title":"Reauthorize connection","openapi":"openapi-public-preview.json POST /v1/connections/{connection_id}/reauthorize","href":"/api-reference/integrations/connections/reauthorize-connection"},{"title":"Disconnect connection","openapi":"openapi-public-preview.json DELETE /v1/connections/{connection_id}","href":"/api-reference/integrations/connections/disconnect-provider"}]},{"group":"GL Mapping","pages":[{"title":"List external accounts","openapi":"openapi-public-preview.json GET /v1/connections/{connection_id}/external-accounts","href":"/api-reference/integrations/gl-mapping/list-external-ledger-accounts"},{"title":"List external entities","openapi":"openapi-public-preview.json GET /v1/connections/{connection_id}/external-entities","href":"/api-reference/integrations/gl-mapping/list-external-legal-entities"},{"title":"List account mappings","openapi":"openapi-public-preview.json GET /v1/connections/{connection_id}/account-mappings","href":"/api-reference/integrations/gl-mapping/list-account-mappings"},{"title":"Set account mapping","openapi":"openapi-public-preview.json PUT /v1/connections/{connection_id}/account-mappings/{ledger_account_id}","href":"/api-reference/integrations/gl-mapping/map-ledger-account-to-erp"},{"title":"Remove account mapping","openapi":"openapi-public-preview.json DELETE /v1/connections/{connection_id}/account-mappings/{ledger_account_id}","href":"/api-reference/integrations/gl-mapping/remove-erp-account-mapping"},{"title":"List entity mappings","openapi":"openapi-public-preview.json GET /v1/connections/{connection_id}/entity-mappings","href":"/api-reference/integrations/gl-mapping/list-entity-mappings"},{"title":"Set entity mapping","openapi":"openapi-public-preview.json PUT /v1/connections/{connection_id}/entity-mappings/{legal_entity_id}","href":"/api-reference/integrations/gl-mapping/map-legal-entity-to-erp"},{"title":"Remove entity mapping","openapi":"openapi-public-preview.json DELETE /v1/connections/{connection_id}/entity-mappings/{legal_entity_id}","href":"/api-reference/integrations/gl-mapping/remove-erp-entity-mapping"},{"title":"List accounting imports","openapi":"openapi-public-preview.json GET /v1/connections/{connection_id}/imports","href":"/api-reference/integrations/gl-mapping/list-erp-imports"},{"title":"Import accounting data","openapi":"openapi-public-preview.json POST /v1/connections/{connection_id}/imports","href":"/api-reference/integrations/gl-mapping/import-from-erp"}]}]},{"group":"Firms","pages":[{"group":"Request","pages":[{"title":"List requests","openapi":"openapi-public-preview.json GET /v1/firm/requests","href":"/api-reference/firms/request/list-requests"},{"title":"Create request","openapi":"openapi-public-preview.json POST /v1/firm/requests","href":"/api-reference/firms/request/create-request"},{"title":"Resend request","openapi":"openapi-public-preview.json POST /v1/firm/requests/{request_id}/resend","href":"/api-reference/firms/request/resend-request"},{"title":"Cancel request","openapi":"openapi-public-preview.json POST /v1/firm/requests/{request_id}/cancel","href":"/api-reference/firms/request/cancel-request"}]},{"group":"Client","pages":[{"title":"List clients","openapi":"openapi-public-preview.json GET /v1/firm/clients","href":"/api-reference/firms/client/list-clients"},{"title":"Create client","openapi":"openapi-public-preview.json POST /v1/firm/clients","href":"/api-reference/firms/client/create-client"},{"title":"Update client","openapi":"openapi-public-preview.json PATCH /v1/firm/clients/{client_id}","href":"/api-reference/firms/client/update-client"},{"title":"Unlink client","openapi":"openapi-public-preview.json DELETE /v1/firm/clients/{client_id}","href":"/api-reference/firms/client/unlink-client"}]},{"group":"Team","pages":[{"title":"List team members","openapi":"openapi-public-preview.json GET /v1/firm/members","href":"/api-reference/firms/team/list-team-members"},{"title":"Update team member","openapi":"openapi-public-preview.json PATCH /v1/firm/members/{member_id}","href":"/api-reference/firms/team/update-team-member"},{"title":"Remove team member","openapi":"openapi-public-preview.json DELETE /v1/firm/members/{member_id}","href":"/api-reference/firms/team/remove-team-member"},{"title":"List invitations","openapi":"openapi-public-preview.json GET /v1/firm/invitations","href":"/api-reference/firms/team/list-invitations"},{"title":"Invite team member","openapi":"openapi-public-preview.json POST /v1/firm/invitations","href":"/api-reference/firms/team/invite-team-member"},{"title":"Resend invitation","openapi":"openapi-public-preview.json POST /v1/firm/invitations/{invitation_id}/resend","href":"/api-reference/firms/team/resend-invitation"},{"title":"Revoke invitation","openapi":"openapi-public-preview.json DELETE /v1/firm/invitations/{invitation_id}","href":"/api-reference/firms/team/revoke-invitation"}]},{"group":"Settings","pages":[{"title":"Get firm settings","openapi":"openapi-public-preview.json GET /v1/firm/settings","href":"/api-reference/firms/settings/get-firm-settings"},{"title":"Update firm settings","openapi":"openapi-public-preview.json PATCH /v1/firm/settings","href":"/api-reference/firms/settings/update-firm-settings"}]}]}]}]},"basePath":"","title":"Connect provider - Entendre Docs","buildId":"dpl_AHzSCQPRq6mP9FZXEa5AbDZTffie","deploymentId":"dpl_AHzSCQPRq6mP9FZXEa5AbDZTffie","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C0w-WQJ2.js","utils-C5d2irbo.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CJr73d5s.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B9xqpnhe.js","snippetPresets-C6Ms_vrL.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-C4vTqKLT.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Dvb1kse5.js","shallow-BIuit-p4.js","getApiPlaygroundDisplay-B4qYxU7P.js","CodeSnippet-DbbDcn2_.js","CodeSnippets-P3qMtezt.js","Page-DLEGoKJA.js","getPastedJson-rlg7qTiW.js","icon-ChyN3MIj.js","MethodPill-BDbONhDa.js","DuplicateIcon-CJlrtq8z.js","createIcon-BDOguHRU.js","DynamicMarkdown-mBxoveKr.js","SectionHeading-CAMJotVi.js","axios-vUo_bRtp.js","Markdown-BNXMbgxP.js","clsx-4BR7cppx.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CAwBMBkB.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CJogWhER.js"]}