Retrieve a paginated list of agent actions that require platform approval. Filter by agentId or customerId to scope results to a specific agent or customer. Approve or reject individual actions via POST /agents/{agentId}/actions/{actionId}/approve or POST /agents/{agentId}/actions/{actionId}/reject.
Total number of actions matching the criteria (excluding pagination).
{"docsConfig":{"theme":"palm","$schema":"https://mintlify.com/docs.json","name":"Lightspark Docs","description":"Lightspark Grid is an API for global payments across fiat, stablecoins, and Bitcoin. This documentation helps developers understand the Grid API and integrate with it.","colors":{"primary":"#1A1A1A","light":"#f0f0ee","dark":"#00B3E0"},"logo":{"light":"https://mintcdn.com/agents-docs/YKCmEU4MWMlPER9B/logo/light.svg?fit=max\u0026auto=format\u0026n=YKCmEU4MWMlPER9B\u0026q=85\u0026s=94c3cecafe700f5f98421f0d9a80ed22","dark":"https://mintcdn.com/agents-docs/YKCmEU4MWMlPER9B/logo/dark.svg?fit=max\u0026auto=format\u0026n=YKCmEU4MWMlPER9B\u0026q=85\u0026s=585939b913aba9ee29e0ec1fd334d026"},"favicon":{"light":"https://mintcdn.com/agents-docs/qL8kqlSYbvexR8cg/favicon-light.svg?fit=max\u0026auto=format\u0026n=qL8kqlSYbvexR8cg\u0026q=85\u0026s=80b3d230ea38ea7b571ddcc0474e21fa","dark":"https://mintcdn.com/agents-docs/qL8kqlSYbvexR8cg/favicon-dark.svg?fit=max\u0026auto=format\u0026n=qL8kqlSYbvexR8cg\u0026q=85\u0026s=25bab6c1495aa2f1d260567d46638ac0"},"api":{"playground":{"display":"interactive"},"examples":{"defaults":"all","languages":["curl","javascript","kotlin"],"prefill":true}},"background":{"color":{"light":"#F8F8F7","dark":"#000000"}},"navbar":{"links":[{"icon":"github","href":"https://github.com/lightsparkdev/grid-api","label":"GitHub"},{"href":"https://www.lightspark.com/contact","label":"Book a live demo"},{"href":"https://app.lightspark.com/login","label":"Dashboard"}]},"footer":{},"seo":{},"fonts":{"heading":{"family":"Suisse Intl","weight":500,"source":"fonts/suisse-intl/SuisseIntl-Medium.woff2","format":"woff2"},"body":{"family":"Suisse Intl","weight":400,"source":"fonts/suisse-intl/SuisseIntl-Regular.woff2","format":"woff2"}},"integrations":{"amplitude":{"apiKey":"7f2e340589501177fa6f8a5cc7b6bc51"},"gtm":{"tagId":"GTM-5R5NP3DS"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"thumbnails":{"appearance":"dark","background":"https://mintcdn.com/agents-docs/YKCmEU4MWMlPER9B/images/og/og-api-reference-generic.png?fit=max\u0026auto=format\u0026n=YKCmEU4MWMlPER9B\u0026q=85\u0026s=d99cb0beb6266d8bff4e9c34a1612ec6"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"agents-docs","hasAudioNarration":false,"actualSubdomain":"agents-docs","customDomains":["agents-docs.lightspark.com"],"gitSource":{"type":"github","owner":"lightsparkdev","repo":"grid-api","deployBranch":"lightspark-agents","contentDirectory":"mintlify","isPrivate":false,"mountPath":"","label":"","_id":"6af61615a14da7b1b52e01b9"},"entitlements":{},"buildId":"6af61cf818df279b9709c450","clientVersion":"0.0.4117","searchFilterCounts":[{"language":"default","tag":"API reference","count":267},{"language":"default","tag":"API documentation","count":261},{"language":"default","tag":"Agent Operations","count":47},{"language":"default","tag":"Cards","count":35},{"language":"default","tag":"Payouts \u0026 B2B","count":30},{"language":"default","tag":"Overview","count":28},{"language":"default","tag":"Global Accounts","count":25},{"language":"default","tag":"Agent Management","count":25},{"language":"default","tag":"Global P2P","count":23},{"language":"default","tag":"Strong Customer Authentication","count":22}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"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},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","href":"/_mintlify/custom/agents-docs/1d0cf883a2567caa/style.css"}],"page":{"pagePath":"api-reference/agent-management/list-agent-transaction-approval-requests","slug":"/api-reference/agent-management/list-agent-transaction-approval-requests","pageMetadata":{"title":"List agent transaction approval requests","description":"Retrieve a paginated list of agent actions that require platform approval. Filter by `agentId` or `customerId` to scope results to a specific agent or customer. Approve or reject individual actions via `POST /agents/{agentId}/actions/{actionId}/approve` or `POST /agents/{agentId}/actions/{actionId}/reject`.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/approvals","href":"/api-reference/agent-management/list-agent-transaction-approval-requests","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Retrieve a paginated list of agent actions that require platform approval. Filter by \", _jsx(_components.code, {\n children: \"agentId\"\n }), \" or \", _jsx(_components.code, {\n children: \"customerId\"\n }), \" to scope results to a specific agent or customer. Approve or reject individual actions via \", _jsx(_components.code, {\n children: \"POST /agents/{agentId}/actions/{actionId}/approve\"\n }), \" or \", _jsx(_components.code, {\n children: \"POST /agents/{agentId}/actions/{actionId}/reject\"\n }), \".\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"List agent transaction approval requests","description":"Retrieve a paginated list of agent actions that require platform approval. Filter by `agentId` or `customerId` to scope results to a specific agent or customer. Approve or reject individual actions via `POST /agents/{agentId}/actions/{actionId}/approve` or `POST /agents/{agentId}/actions/{actionId}/reject`.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/approvals","href":"/api-reference/agent-management/list-agent-transaction-approval-requests","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/agents-docs/da7b02c7798913d5/corridor-fields.js","/_mintlify/custom/agents-docs/46fa8cc4a502b704/css-perf-patch.js","/_mintlify/custom/agents-docs/7ebeec8d40dffb19/homepage.js","/_mintlify/custom/agents-docs/50899f73f3824d7c/sidebar-toggle.js"],"openApiReferenceData":{"operation":{"summary":"List agent transaction approval requests","description":"Retrieve a paginated list of agent actions that require platform approval. Filter by `agentId` or `customerId` to scope results to a specific agent or customer. Approve or reject individual actions via `POST /agents/{agentId}/actions/{actionId}/approve` or `POST /agents/{agentId}/actions/{actionId}/reject`.\n","operationId":"listAgentApprovals","tags":["Agent Management"],"security":["247cb195-be78-4f6d-b480-155d78a4f063"],"parameters":["aff24b7f-944d-42ef-b8fd-186451dfd9d3","85110785-297a-4ab0-8f48-1cece7e4cf35","3af77111-260f-4a14-95dc-d502dd6f00ad","3e717a5e-8a22-40f9-96a7-b9837e9ee37b","c867cff5-f6be-4c40-92b1-a995d4d5fa71","f6222101-fe80-4808-99c2-037efa16f3a7","c41176df-5718-4401-8cbd-ec0e86a559ea"],"responses":{"200":"f12f9dc0-235a-45aa-a0cd-c6dbec07ccee","400":"32530883-4ea2-4ead-b705-640fc8044c12","401":"a1bff083-9447-465c-9f2d-a20bc4ca948c","403":"833cf1cd-5d4f-4b5d-85d9-03da2c1e4958","500":"8090a3e5-9b4f-424a-82cc-469cb8b31fac"},"method":"get","type":"path","servers":["24130320-b7d6-4677-b65b-e5edfcc43529"],"path":"/agents/approvals","baseUrlOptions":["https://api.lightspark.com/grid/2025-10-13"],"title":"List agent transaction approval requests","codeSamples":[],"requestExampleLanguages":["bash","javascript","kotlin"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[]},"dependencies":{"parameters":{"aff24b7f-944d-42ef-b8fd-186451dfd9d3":{"name":"agentId","in":"query","description":"Filter by agent ID","required":false,"schema":{"type":"string","isRequired":false,"description":"Filter by agent ID","uniqueKey":"","typeLabel":"string"}},"85110785-297a-4ab0-8f48-1cece7e4cf35":{"name":"customerId","in":"query","description":"Filter by customer ID","required":false,"schema":{"type":"string","isRequired":false,"description":"Filter by customer ID","uniqueKey":"","typeLabel":"string"}},"3af77111-260f-4a14-95dc-d502dd6f00ad":{"name":"startDate","in":"query","description":"Filter by start date (inclusive) in ISO 8601 format","required":false,"schema":{"type":"string","format":"date-time","isRequired":false,"description":"Filter by start date (inclusive) in ISO 8601 format","uniqueKey":"","typeLabel":"string\u003cdate-time>"}},"3e717a5e-8a22-40f9-96a7-b9837e9ee37b":{"name":"endDate","in":"query","description":"Filter by end date (inclusive) in ISO 8601 format","required":false,"schema":{"type":"string","format":"date-time","isRequired":false,"description":"Filter by end date (inclusive) in ISO 8601 format","uniqueKey":"","typeLabel":"string\u003cdate-time>"}},"c867cff5-f6be-4c40-92b1-a995d4d5fa71":{"name":"limit","in":"query","description":"Maximum number of results to return (default 20, max 100)","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"isRequired":false,"description":"Maximum number of results to return (default 20, max 100)","uniqueKey":"","typeLabel":"integer"}},"f6222101-fe80-4808-99c2-037efa16f3a7":{"name":"cursor","in":"query","description":"Cursor for pagination (returned from previous request)","required":false,"schema":{"type":"string","isRequired":false,"description":"Cursor for pagination (returned from previous request)","uniqueKey":"","typeLabel":"string"}},"c41176df-5718-4401-8cbd-ec0e86a559ea":{"name":"sortOrder","in":"query","description":"Order to sort results in","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc","isRequired":false,"description":"Order to sort results in","uniqueKey":"","typeLabel":"enum\u003cstring>"}}},"responses":{"f12f9dc0-235a-45aa-a0cd-c6dbec07ccee":{"description":"Successful operation","content":{"application/json":{"schema":{"type":"object","required":["data","hasMore"],"properties":{"data":{"type":"array","description":"List of agent actions matching the filter criteria.","items":{"type":"object","description":"An action submitted by an agent that may require platform approval before execution. All agent-initiated operations (quote execution, transfers) are represented as AgentActions, giving the platform a consistent object to approve, reject, and audit regardless of the underlying operation type.","required":["id","agentId","customerId","platformCustomerId","status","type","expiresAt","createdAt","updatedAt"],"properties":{"id":{"type":"string","description":"System-generated unique identifier for this action.","example":"AgentAction:019542f5-b3e7-1d02-0000-000000000099","isRequired":true,"uniqueKey":"data.items.[INDEX].id","typeLabel":"string"},"agentId":{"type":"string","description":"The agent that submitted this action.","example":"Agent:019542f5-b3e7-1d02-0000-000000000042","isRequired":true,"uniqueKey":"data.items.[INDEX].agentId","typeLabel":"string"},"customerId":{"type":"string","description":"The customer on whose behalf the action was submitted.","example":"Customer:019542f5-b3e7-1d02-0000-000000000010","isRequired":true,"uniqueKey":"data.items.[INDEX].customerId","typeLabel":"string"},"platformCustomerId":{"type":"string","description":"Platform-specific ID of the customer.","example":"user-a1b2c3","isRequired":true,"uniqueKey":"data.items.[INDEX].platformCustomerId","typeLabel":"string"},"status":{"type":"string","enum":["PENDING_APPROVAL","APPROVED","REJECTED","FAILED"],"description":"Status of an agent action.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING_APPROVAL` | Submitted by the agent, awaiting platform approval before execution |\n| `APPROVED` | Approved by the platform; execution is in progress or completed |\n| `REJECTED` | Rejected by the platform; the underlying transaction was not executed |\n| `FAILED` | Not executed, or execution failed; see `failureReason` |\n","isRequired":true,"uniqueKey":"data.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"type":{"type":"string","enum":["EXECUTE_QUOTE","ISSUE_PURCHASE_CARD","CLAIMABLE_PAYOUT","USE_STORED_CARD","CREATE_SETTLEMENT_RULE","UPDATE_SETTLEMENT_RULE","PAYOUT_RUN"],"description":"The type of action the agent is requesting.\n\n| Type | Description |\n|------|-------------|\n| `EXECUTE_QUOTE` | Execute a quote |\n| `ISSUE_PURCHASE_CARD` | Issue a purchase card: single-use, or recurring when `purchaseCard.recurring` is `true`. When `purchaseCard.increaseCardId` is set, raise the amount of that existing single-use card instead of issuing one. See `purchaseCard` |\n| `CLAIMABLE_PAYOUT` | Send a claimable payout to a person by phone number or email. See `claimablePayout` |\n| `USE_STORED_CARD` | Use one of the customer's stored cards for a purchase. See `storedCardUse` |\n| `CREATE_SETTLEMENT_RULE` | Make a settlement rule the agent proposed `ACTIVE`. See `settlementRule` |\n| `UPDATE_SETTLEMENT_RULE` | Change the match, shares or limits of a settlement rule the agent created. See `settlementRule` |\n| `PAYOUT_RUN` | Start a payout run the agent created. See `payoutRun` |\n","isRequired":true,"uniqueKey":"data.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"expiresAt":{"type":"string","format":"date-time","description":"When the action expires. For an `EXECUTE_QUOTE` action with `priceTolerance`, this is the end of the platform's approval window, independent of the quote's own expiry: approval executes a live quote and quotes the send again once it has expired, and a pending action that reaches this time fails with `APPROVAL_EXPIRED`. For any other `EXECUTE_QUOTE` action, this is the quote's own expiry; a pending action that reaches it fails with `QUOTE_EXPIRED`, and approval never creates a replacement quote. For `ISSUE_PURCHASE_CARD`, `USE_STORED_CARD`, `CREATE_SETTLEMENT_RULE`, `UPDATE_SETTLEMENT_RULE` and `PAYOUT_RUN`, this is the end of the approval window, after which a pending action fails with `APPROVAL_EXPIRED`; a settlement rule's window is seven days, and a payout run's 24 hours.","example":"2025-10-03T15:05:00Z","isRequired":true,"uniqueKey":"data.items.[INDEX].expiresAt","typeLabel":"string\u003cdate-time>"},"createdAt":{"type":"string","format":"date-time","description":"When the action was submitted by the agent.","example":"2025-10-03T15:00:00Z","isRequired":true,"uniqueKey":"data.items.[INDEX].createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","description":"When the action was last updated.","example":"2025-10-03T15:02:00Z","isRequired":true,"uniqueKey":"data.items.[INDEX].updatedAt","typeLabel":"string\u003cdate-time>"},"quote":{"type":"object","title":"Agent Quote","description":"The quote being executed. Contains the full amount, currency, destination, and rate details needed to present an approval decision to the user. Present for `EXECUTE_QUOTE`.","required":["id","status","expiresAt","createdAt","source","destination","sendingCurrency","receivingCurrency","totalSendingAmount","totalReceivingAmount","exchangeRate","feesIncluded","transactionId"],"properties":{"id":{"type":"string","description":"Unique identifier for this quote","example":"Quote:019542f5-b3e7-1d02-0000-000000000006","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.id","typeLabel":"string"},"status":{"type":"string","enum":["PENDING","PENDING_AUTHORIZATION","PROCESSING","COMPLETED","FAILED","EXPIRED"],"description":"Current status of the quote. `PENDING_AUTHORIZATION` occurs only for customers in a region where Strong Customer Authentication is required (e.g. EU): the quote carries an `scaChallenge` that must be authorized before execution, and for realtime-funding sources `paymentInstructions` are withheld until it is satisfied.","example":"PENDING","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.status","typeLabel":"enum\u003cstring>"},"createdAt":{"type":"string","format":"date-time","description":"When this quote was created","example":"2025-10-03T12:00:00Z","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.createdAt","typeLabel":"string\u003cdate-time>"},"expiresAt":{"type":"string","format":"date-time","description":"Absolute UTC timestamp when the rate locked in this quote becomes invalid and the quote can no longer be executed. The window depends on the rail and corridor: instant rails (Lightning, Spark, USDC on Solana/Base/Polygon, RTP, SEPA Instant) typically expire in 1–5 minutes; corridors with longer settlement guarantees may have longer windows. Always rely on this timestamp rather than assuming a fixed window.","example":"2025-10-03T12:05:00Z","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.expiresAt","typeLabel":"string\u003cdate-time>"},"source":{"oneOf":[{"type":"object","title":"Account","description":"Source account details","required":["accountId","sourceType"],"properties":{"sourceType":{"type":"string","description":"Type of quote funding source","enum":["ACCOUNT"],"example":"ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.source.oneOf.0.sourceType","typeLabel":"enum\u003cstring>"},"accountId":{"type":"string","description":"Source account identifier","example":"InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.source.oneOf.0.accountId","typeLabel":"string"},"customerId":{"type":"string","description":"The customer on whose behalf the transaction is being initiated. Required when funding from a `BULK_SETTLEMENT` account. The customer is never the account owner, because the platform owns the account. When funding from an FBO account, this field is optional. If you omit it, the transaction is initiated on behalf of the platform. For any other account, it defaults to the account owner's customerId.","example":"Customer:019542f5-b3e7-1d02-0000-000000000001","uniqueKey":"data.items.[INDEX].quote.source.oneOf.0.customerId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.source.oneOf.0","typeLabel":"Account · object"},{"type":"object","title":"Real-time Funding","description":"Fund the quote using a real-time funding source (RTP, SEPA Instant, Spark, Stables, etc.). This will require manual just-in-time funding using `paymentInstructions` in the response. Because quotes expire quickly, this option is only valid for instant payment methods. Do not try to fund a quote with a non-instant payment method (ACH, etc.).","required":["currency","sourceType"],"properties":{"sourceType":{"type":"string","description":"Type of quote funding source","enum":["REALTIME_FUNDING"],"example":"ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.source.oneOf.1.sourceType","typeLabel":"enum\u003cstring>"},"currency":{"type":"string","description":"Currency code for the funding source. See [Supported Currencies](https://docs.lightspark.com/platform-overview/core-concepts/currencies-and-rails) for the full list of supported fiat and crypto currencies.","example":"USD","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.source.oneOf.1.currency","typeLabel":"string"},"customerId":{"type":"string","description":"Source customer ID. If this transaction is being initiated on behalf of a customer, this is required. If customerId is not provided, the quote will be created on behalf of the platform itself.","example":"Customer:019542f5-b3e7-1d02-0000-000000000009","uniqueKey":"data.items.[INDEX].quote.source.oneOf.1.customerId","typeLabel":"string"},"cryptoNetwork":{"type":"string","description":"The crypto network to use for the funding source. Required when `currency` is a stablecoin (e.g. USDC, USDT). Specifies which network the customer will deposit on, so the correct deposit address can be generated. Example values: `SOLANA`, `ETHEREUM`, `BASE`, `POLYGON`, `TRON`, `PLASMA`, `ARBITRUM`, `SPARK`, `LIGHTNING`, `BITCOIN`.","example":"SOLANA","uniqueKey":"data.items.[INDEX].quote.source.oneOf.1.cryptoNetwork","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.source.oneOf.1","typeLabel":"Real-time Funding · object"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.source","typeLabel":"Account · object | Real-time Funding · object"},"destination":{"oneOf":[{"type":"object","title":"Account","description":"Destination account details","required":["accountId","destinationType"],"properties":{"destinationType":{"type":"string","description":"Type of payment destination","enum":["ACCOUNT"],"example":"ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.destination.oneOf.0.destinationType","typeLabel":"enum\u003cstring>"},"accountId":{"type":"string","description":"Destination account identifier","example":"ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.destination.oneOf.0.accountId","typeLabel":"string"},"paymentRail":{"type":"string","description":"The payment rail to use for the transfer. Must be one of the rails supported by the destination account. If not specified, the system will select a default rail.","enum":["ACH","ACH_COLOMBIA","ACH_SAME_DAY","BANK_TRANSFER","BRE_B","CIPS","FAST","FASTER_PAYMENTS","FEDNOW","INSTAPAY","MOBILE_MONEY","NEFT","PAYNOW","PESONET","PIX","RTGS","RTP","SEPA","SEPA_INSTANT","SPEI","SWIFT","UNIONPAY","UPI","WIRE"],"example":"ACH","uniqueKey":"data.items.[INDEX].quote.destination.oneOf.0.paymentRail","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.destination.oneOf.0","typeLabel":"Account · object"},{"type":"object","title":"UMA Address","description":"UMA address destination details","required":["umaAddress","destinationType","currency"],"properties":{"destinationType":{"type":"string","description":"Type of payment destination","enum":["UMA_ADDRESS"],"example":"ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.destination.oneOf.1.destinationType","typeLabel":"enum\u003cstring>"},"umaAddress":{"type":"string","maxLength":200,"description":"UMA address of the recipient","example":"$receiver@uma.domain.com","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.destination.oneOf.1.umaAddress","typeLabel":"string"},"currency":{"type":"string","description":"Currency code for the destination. See [Supported Currencies](https://docs.lightspark.com/platform-overview/core-concepts/currencies-and-rails) for the full list of supported fiat and crypto currencies.","example":"EUR","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.destination.oneOf.1.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.destination.oneOf.1","typeLabel":"UMA Address · object"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.destination","typeLabel":"Account · object | UMA Address · object"},"sendingCurrency":{"type":"object","properties":{"code":{"type":"string","description":"Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. \"BTC\" for Bitcoin, \"USDC\" for USDC, etc.)","example":"USD","uniqueKey":"data.items.[INDEX].quote.sendingCurrency.code","typeLabel":"string"},"name":{"type":"string","description":"Full name of the currency","example":"United States Dollar","uniqueKey":"data.items.[INDEX].quote.sendingCurrency.name","typeLabel":"string"},"symbol":{"type":"string","description":"Symbol of the currency","example":"$","uniqueKey":"data.items.[INDEX].quote.sendingCurrency.symbol","typeLabel":"string"},"decimals":{"type":"integer","description":"Number of decimal places for the currency","minimum":0,"example":2,"uniqueKey":"data.items.[INDEX].quote.sendingCurrency.decimals","typeLabel":"integer"}},"description":"Currency for the sending amount","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.sendingCurrency","typeLabel":"object"},"receivingCurrency":{"type":"object","properties":{"code":{"type":"string","description":"Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. \"BTC\" for Bitcoin, \"USDC\" for USDC, etc.)","example":"USD","uniqueKey":"data.items.[INDEX].quote.receivingCurrency.code","typeLabel":"string"},"name":{"type":"string","description":"Full name of the currency","example":"United States Dollar","uniqueKey":"data.items.[INDEX].quote.receivingCurrency.name","typeLabel":"string"},"symbol":{"type":"string","description":"Symbol of the currency","example":"$","uniqueKey":"data.items.[INDEX].quote.receivingCurrency.symbol","typeLabel":"string"},"decimals":{"type":"integer","description":"Number of decimal places for the currency","minimum":0,"example":2,"uniqueKey":"data.items.[INDEX].quote.receivingCurrency.decimals","typeLabel":"integer"}},"description":"Currency for the receiving amount","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.receivingCurrency","typeLabel":"object"},"totalSendingAmount":{"type":"integer","format":"int64","description":"The total amount that will be sent in the smallest unit of the sending currency (eg. cents).","exclusiveMinimum":0,"example":123010,"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.totalSendingAmount","typeLabel":"integer\u003cint64>"},"totalReceivingAmount":{"type":"integer","format":"int64","description":"The total amount that will be received in the smallest unit of the receiving currency (eg. cents).","exclusiveMinimum":0,"example":1000,"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.totalReceivingAmount","typeLabel":"integer\u003cint64>"},"exchangeRate":{"type":"number","description":"Number of sending currency units per receiving currency unit. The rate is fee-exclusive: Grid deducts `feesIncluded` from `totalSendingAmount` first, then converts the remainder at this rate to reach `totalReceivingAmount`.","exclusiveMinimum":0,"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.exchangeRate","typeLabel":"number"},"feesIncluded":{"type":"integer","format":"int64","description":"The fees associated with the quote in the smallest unit of the sending currency (eg. cents). Note: this value may fluctuate between quotes — some underlying fee components are defined in the receiving currency, so their equivalent in the sending currency moves with the FX rate. The fees shown here are locked only for the lifetime of this quote.","minimum":0,"example":10,"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.feesIncluded","typeLabel":"integer\u003cint64>"},"transactionId":{"type":"string","description":"The ID of the transaction created from this quote.","example":"Transaction:019542f5-b3e7-1d02-0000-000000000005","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.transactionId","typeLabel":"string"},"platformFeesIncluded":{"type":"integer","format":"int64","description":"The portion of `feesIncluded` collected by the platform (platform-configured transaction fees), in the smallest unit of the sending currency. 0 when the platform has no applicable fee configured. Already included in `feesIncluded`. May be omitted from payloads produced before platform fees existed.","minimum":0,"example":5,"uniqueKey":"data.items.[INDEX].quote.platformFeesIncluded","typeLabel":"integer\u003cint64>"},"paymentInstructions":{"type":"array","description":"Payment instructions for executing the payment. This is not required when using an internal account source.","items":{"type":"object","required":["accountOrWalletInfo"],"properties":{"accountOrWalletInfo":{"oneOf":[{"type":"object","title":"USD Bank Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["reference","paymentRails","accountType","accountNumber","routingNumber"],"example":{"accountType":"USD_ACCOUNT","accountNumber":"1234567890","routingNumber":"021000021","bankName":"Chase Bank","intermediaryBankName":"JPMorgan Chase Bank","intermediaryRoutingNumber":"021000021","fiToFiInformation":"/BNF/Invoice 4471","bankAccountType":"CHECKING"},"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["USD_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.accountType","typeLabel":"enum\u003cstring>"},"accountNumber":{"type":"string","description":"The account number of the bank","minLength":1,"maxLength":34,"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.accountNumber","typeLabel":"string"},"routingNumber":{"type":"string","description":"The ABA routing number","example":"021000021","minLength":9,"maxLength":9,"pattern":"^[0-9]{9}$","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.routingNumber","typeLabel":"string"},"paymentRails":{"type":"array","items":{"type":"string","enum":["ACH","ACH_SAME_DAY","WIRE","RTP","FEDNOW"],"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.paymentRails.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.paymentRails","typeLabel":"enum\u003cstring>[]"},"reference":{"type":"string","description":"Reference code for the payment. On a quote's `paymentInstructions`, include it with the payment, in the memo or remittance information, so Grid can match the payment to the quote. On an internal account's `fundingPaymentInstructions`, the account number is unique to that account and deposits are credited by account number, so the payer doesn't need to include the reference.","example":"UMA-Q12345-REF","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.reference","typeLabel":"string"},"bankName":{"type":"string","description":"The name of the financial institution holding the account. Optional on every rail, and recommended for wires, where it identifies the beneficiary's institution on the payment message. Not checked against `GET /discoveries`.","minLength":1,"maxLength":140,"example":"Chase Bank","uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.bankName","typeLabel":"string"},"intermediaryBankName":{"type":"string","description":"The name of the intermediary financial institution, for accounts reachable only through a correspondent bank. Used on the WIRE rail; ignored on ACH, RTP and FEDNOW.","example":"JPMorgan Chase Bank","minLength":1,"maxLength":140,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.intermediaryBankName","typeLabel":"string"},"intermediaryRoutingNumber":{"type":"string","description":"The ABA routing number of the intermediary financial institution. Used on the WIRE rail; ignored on ACH, RTP and FEDNOW.","example":"021000021","minLength":9,"maxLength":9,"pattern":"^[0-9]{9}$","uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.intermediaryRoutingNumber","typeLabel":"string"},"fiToFiInformation":{"type":"string","description":"Bank-to-bank instructions carried alongside the payment. Used on the WIRE rail; ignored on ACH, RTP and FEDNOW.","example":"/BNF/Invoice 4471","maxLength":210,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.fiToFiInformation","typeLabel":"string"},"bankAccountType":{"type":"string","description":"Whether the account is a checking or a savings account. Grid uses this to set the ACH transaction code, so a value that does not match the account causes the receiving bank to return a notification of change.","enum":["CHECKING","SAVINGS"],"example":"CHECKING","uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.bankAccountType","typeLabel":"enum\u003cstring>"},"bankAddress":{"type":"string","description":"The postal address of the financial institution holding the account, on a single line. Optional on every rail, and recommended for wires, where some originating banks require the beneficiary institution's address before they will send.","example":"885 Teaneck Road, Teaneck, NJ 07666","minLength":1,"maxLength":255,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.bankAddress","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0","typeLabel":"USD Bank Account · object"},{"type":"object","title":"EUR Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["reference","paymentRails","accountType","iban"],"example":{"accountType":"EUR_ACCOUNT","iban":"DE89370400440532013000","swiftCode":"DEUTDEFF"},"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["EUR_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1.accountType","typeLabel":"enum\u003cstring>"},"iban":{"type":"string","description":"The IBAN of the bank account","example":"DE89370400440532013000","minLength":15,"maxLength":34,"pattern":"^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1.iban","typeLabel":"string"},"paymentRails":{"type":"array","items":{"type":"string","enum":["SEPA","SEPA_INSTANT"],"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1.paymentRails.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1.paymentRails","typeLabel":"enum\u003cstring>[]"},"reference":{"type":"string","description":"Unique reference code that must be included with the payment to properly credit it","example":"UMA-Q12345-REF","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1.reference","typeLabel":"string"},"swiftCode":{"type":"string","description":"The SWIFT/BIC code of the bank. When omitted, Grid derives it from the IBAN when possible. Provide it when automatic derivation is unavailable.","example":"DEUTDEFF","minLength":8,"maxLength":11,"pattern":"^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$","uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1.swiftCode","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1","typeLabel":"EUR Account · object"},{"type":"object","title":"SWIFT Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["accountHolderName","paymentRails","accountType","swiftCode","bankName","country"],"example":{"accountType":"SWIFT_ACCOUNT","country":"NG","swiftCode":"DEUTDEFF","bankName":"Deutsche Bank","accountNumber":"1234567890"},"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["SWIFT_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.accountType","typeLabel":"enum\u003cstring>"},"country":{"type":"string","description":"The ISO 3166-1 alpha-2 country code of the bank account","example":"NG","minLength":2,"maxLength":2,"pattern":"^[A-Z]{2}$","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.country","typeLabel":"string"},"swiftCode":{"type":"string","description":"The SWIFT/BIC code of the bank","example":"DEUTDEFF","minLength":8,"maxLength":11,"pattern":"^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.swiftCode","typeLabel":"string"},"bankName":{"type":"string","description":"The name of the bank","example":"Deutsche Bank","minLength":1,"maxLength":255,"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.bankName","typeLabel":"string"},"paymentRails":{"type":"array","items":{"type":"string","enum":["SWIFT"],"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.paymentRails.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.paymentRails","typeLabel":"enum\u003cstring>[]"},"accountHolderName":{"type":"string","description":"The name of the account holder as it must appear on the wire. Remitting banks match this against the beneficiary name field, so payers should copy it exactly.","example":"Acme Exports Pte Ltd","minLength":1,"maxLength":255,"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.accountHolderName","typeLabel":"string"},"accountNumber":{"type":"string","description":"The bank account number. Required for most corridors. Use iban instead for IBAN-only corridors (e.g. BR, GB).","example":"1234567890","minLength":1,"maxLength":34,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.accountNumber","typeLabel":"string"},"iban":{"type":"string","description":"The IBAN of the bank account. Required for IBAN-only corridors (e.g. BR, GB). Use accountNumber for all other corridors.","example":"GB29NWBK60161331926819","minLength":15,"maxLength":34,"pattern":"^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$","uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.iban","typeLabel":"string"},"bankAddress":{"type":"string","description":"The address of the bank holding the account, when known.","example":"12 Marina Boulevard, Singapore 018982","minLength":1,"maxLength":1024,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.bankAddress","typeLabel":"string"},"reference":{"type":"string","description":"Reference code to include with the payment when present. SWIFT payments are attributed by the destination account number/IBAN, so this account type typically requires no reference.","example":"UMA-Q12345-REF","uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.reference","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2","typeLabel":"SWIFT Account · object"},{"type":"object","title":"MXN Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["reference","paymentRails","accountType","clabeNumber"],"example":{"accountType":"MXN_ACCOUNT","clabeNumber":"123456789012345678"},"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["MXN_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.3.accountType","typeLabel":"enum\u003cstring>"},"clabeNumber":{"type":"string","description":"The CLABE number of the bank","example":"123456789012345678","minLength":18,"maxLength":18,"pattern":"^[0-9]{18}$","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.3.clabeNumber","typeLabel":"string"},"paymentRails":{"type":"array","items":{"type":"string","enum":["SPEI"],"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.3.paymentRails.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.3.paymentRails","typeLabel":"enum\u003cstring>[]"},"reference":{"type":"string","description":"Unique reference code that must be included with the payment to properly credit it","example":"UMA-Q12345-REF","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.3.reference","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.3","typeLabel":"MXN Account · object"},{"type":"object","title":"BRL Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["qrCode","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["BRL_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.4.accountType","typeLabel":"enum\u003cstring>"},"qrCode":{"type":"string","description":"A PIX QR code payload that can be used to fund the transaction. This can be rendered as a QR code image or pasted into a PIX-compatible banking app.","minLength":1,"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.4.qrCode","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.4","typeLabel":"BRL Account · object"},{"type":"object","title":"COP Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["paymentUrl","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["COP_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.5.accountType","typeLabel":"enum\u003cstring>"},"paymentUrl":{"type":"string","format":"uri","description":"A payment URL where the customer can complete their COP deposit.","example":"https://payments.example.com/t/abc123","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.5.paymentUrl","typeLabel":"string\u003curi>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.5","typeLabel":"COP Account · object"},{"type":"object","title":"ARS Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["accountNumber","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["ARS_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.6.accountType","typeLabel":"enum\u003cstring>"},"accountNumber":{"type":"string","description":"The static CVU (Clave Virtual Uniforme) bank account number to pay to.","minLength":22,"maxLength":22,"pattern":"^\\d{22}$","example":"0000003100074052501434","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.6.accountNumber","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.6","typeLabel":"ARS Account · object"},{"type":"object","title":"Spark Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["assetType","address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["SPARK_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.7.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Spark wallet address","example":"spark1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.7.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset or configured Spark token currency code","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.7.assetType","typeLabel":"string"},"invoice":{"type":"string","description":"Invoice for the payment","example":"sparkrt1pgss8ter0fhc4c220f3zftmpz49h8wqte8eg3m5zkrraplgc048jucgszg3ssqgjzqqekv73mmh842yj7drsjwh7t7tz5zt8wf5kghm5v4ehggszppjp5s80cg3qjdzc55g2567tn3lj705hdsr577tg8ah795mlnt6807y657qhkmgfkf9w75p4wz3l8vhua85zdn6ryj32zuj0p00pv2l5z4u47mw6h4s","uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.7.invoice","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.7","typeLabel":"Spark Wallet · object"},{"type":"object","title":"Lightning Invoice","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["invoice","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["LIGHTNING"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.8.accountType","typeLabel":"enum\u003cstring>"},"invoice":{"type":"string","description":"Invoice for the payment","example":"lnbc15u1p3xnhl2pp5jptserfk3zk4qy42tlucycrfwxhydvlemu9pqr93tuzlv9cc7g3sdqsvfhkcap3xyhx7un8cqzpgxqzjcsp5f8c52y2stc300gl6s4xswtjpc37hrnnr3c9wvtgjfuvqmpm35evq9qyyssqy4lgd8tj637qcjp05rdpxxykjenthxftej7a2zzmwrmrl70fyj9hvj0rewhzj7jfyuwkwcg9g2jpwtk3wkjtwnkdks84hsnu8xps5vsq4gj5hs","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.8.invoice","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.8","typeLabel":"Lightning Invoice · object"},{"type":"object","title":"Bitcoin L1 Deposit Address","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["BITCOIN_L1"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.9.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"On-chain Bitcoin (L1) deposit address to send funds to","example":"bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.9.address","typeLabel":"string"},"network":{"type":"string","description":"The blockchain network for the deposit address.","enum":["BITCOIN"],"example":"BITCOIN","uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.9.network","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.9","typeLabel":"Bitcoin L1 Deposit Address · object"},{"type":"object","title":"Solana Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["SOLANA_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.10.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Solana wallet address","example":"4Nd1m6Qkq7RfKuE5vQ9qP9Tn6H94Ueqb4xXHzsAbd8Wg","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.10.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDC","USDT"],"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.10.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.10","typeLabel":"Solana Wallet · object"},{"type":"object","title":"Ethereum Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["ETHEREUM_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.11.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Ethereum L1 wallet address","example":"0xAbCDEF1234567890aBCdEf1234567890ABcDef12","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.11.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDC","USDT"],"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.11.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.11","typeLabel":"Ethereum Wallet · object"},{"type":"object","title":"Base Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["BASE_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.12.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Base eth wallet address","example":"0xAbCDEF1234567890aBCdEf1234567890ABcDef12","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.12.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDC"],"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.12.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.12","typeLabel":"Base Wallet · object"},{"type":"object","title":"Polygon Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["POLYGON_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.13.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Polygon eth wallet address","example":"0xAbCDEF1234567890aBCdEf1234567890ABcDef12","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.13.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDC"],"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.13.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.13","typeLabel":"Polygon Wallet · object"},{"type":"object","title":"Arbitrum Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["ARBITRUM_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.14.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Arbitrum wallet address","example":"0xAbCDEF1234567890aBCdEf1234567890ABcDef12","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.14.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDC","USDT"],"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.14.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.14","typeLabel":"Arbitrum Wallet · object"},{"type":"object","title":"Tron Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["TRON_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.15.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Tron wallet address","example":"TNPeeaaFB7K9cmo4uQpcU32zGK8G1NYqeL","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.15.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDT"],"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.15.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.15","typeLabel":"Tron Wallet · object"},{"type":"object","title":"Plasma Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["PLASMA_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.16.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Plasma wallet address","example":"0xAbCDEF1234567890aBCdEf1234567890ABcDef12","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.16.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDT"],"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.16.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.16","typeLabel":"Plasma Wallet · object"},{"type":"object","title":"Embedded Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["accountType","payloadToSign"],"properties":{"accountType":{"type":"string","description":"Discriminator value identifying this as Embedded Wallet payment instructions.","enum":["EMBEDDED_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.17.accountType","typeLabel":"enum\u003cstring>"},"payloadToSign":{"type":"string","description":"JSON-encoded transaction signing payload that must be stamped, as-is (byte-for-byte, without re-serialization), with the session private key of a verified authentication credential on the source Embedded Wallet. The resulting Grid wallet signature is passed as the `Grid-Wallet-Signature` header on `POST /quotes/{quoteId}/execute` to authorize the outbound transfer from the wallet.","example":"{\"type\":\"ACTIVITY_TYPE_SIGN_TRANSACTION_V2\",\"timestampMs\":\"1746736509954\",\"organizationId\":\"org_abc123\",\"parameters\":{\"signWith\":\"wallet_abc123def456\",\"unsignedTransaction\":\"ea69b4bf05f775209f26ff0a34a05569180f7936579d5c4af9377ae550194f72\",\"type\":\"TRANSACTION_TYPE_ETHEREUM\"},\"generateAppProofs\":true}","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.17.payloadToSign","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.17","typeLabel":"Embedded Wallet · object"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].accountOrWalletInfo","typeLabel":"USD Bank Account · object | EUR Account · object | SWIFT Account · object | MXN Account · object | BRL Account · object | COP Account · object | ARS Account · object | Spark Wallet · object | Lightning Invoice · object | Bitcoin L1 Deposit Address · object | Solana Wallet · object | Ethereum Wallet · object | Base Wallet · object | Polygon Wallet · object | Arbitrum Wallet · object | Tron Wallet · object | Plasma Wallet · object | Embedded Wallet · object"},"instructionsNotes":{"type":"string","description":"Additional human-readable instructions for making the payment","example":"Please ensure the reference code is included in the payment memo/description field","uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].instructionsNotes","typeLabel":"string"},"isPlatformAccount":{"type":"boolean","description":"Indicates whether the account is a platform account or a customer account.","example":true,"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX].isPlatformAccount","typeLabel":"boolean"}},"uniqueKey":"data.items.[INDEX].quote.paymentInstructions.items.[INDEX]","typeLabel":"object"},"example":[{"accountOrWalletInfo":{"accountType":"USD_ACCOUNT","paymentRails":["ACH","WIRE"],"accountNumber":"1234567890","routingNumber":"021000021","bankName":"Chase Bank","reference":"UMA-Q12345-REF"},"instructionsNotes":"Include reference UMA-Q12345-REF in memo"},{"accountOrWalletInfo":{"accountType":"SPARK_WALLET","assetType":"BTC","address":"spark1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu","invoice":"lnbc15u1p3xnhl2pp5jptserfk3zk4qy42tlucycrfwxhydvlemu9pqr93tuzlv9cc7g3sdqsvfhkcap3xyhx7un8cqzpgxqzjcsp5f8c52y2stc300gl6s4xswtjpc37hrnnr3c9wvtgjfuvqmpm35evq9qyyssqy4lgd8tj637qcjp05rdpxxykjenthxftej7a2zzmwrmrl70fyj9hvj0rewhzj7jfyuwkwcg9g2jpwtk3wkjtwnkdks84hsnu8xps5vsq4gj5hs"}}],"uniqueKey":"data.items.[INDEX].quote.paymentInstructions","typeLabel":"object[]"},"counterpartyInformation":{"type":"object","description":"Additional information about the counterparty, if available and required by the platform in their configuration.","additionalProperties":true,"example":{"FULL_NAME":"John Sender","BIRTH_DATE":"1985-06-15","NATIONALITY":"DE"},"uniqueKey":"data.items.[INDEX].quote.counterpartyInformation","typeLabel":"object"},"rateDetails":{"description":"Details about the rate and fees for the transaction.","type":"object","required":["counterpartyMultiplier","counterpartyFixedFee","gridApiMultiplier","gridApiFixedFee","gridApiVariableFeeRate","gridApiVariableFeeAmount"],"properties":{"counterpartyMultiplier":{"type":"number","format":"double","description":"The underlying multiplier from mSATs to the receiving currency as returned by the counterparty institution.","exclusiveMinimum":0,"example":1.08,"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.rateDetails.counterpartyMultiplier","typeLabel":"number\u003cdouble>"},"counterpartyFixedFee":{"type":"integer","format":"int64","description":"The fixed fee charged by the counterparty institution to execute the quote in the smallest unit of the receiving currency (eg. cents).","minimum":0,"example":10,"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.rateDetails.counterpartyFixedFee","typeLabel":"integer\u003cint64>"},"gridApiMultiplier":{"type":"number","format":"double","description":"The underlying multiplier from the sending currency to mSATS, including variable fees.","exclusiveMinimum":0,"example":0.925,"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.rateDetails.gridApiMultiplier","typeLabel":"number\u003cdouble>"},"gridApiFixedFee":{"type":"integer","format":"int64","description":"The fixed fee charged by the Grid product to execute the quote in the smallest unit of the sending currency (eg. cents).","minimum":0,"example":10,"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.rateDetails.gridApiFixedFee","typeLabel":"integer\u003cint64>"},"gridApiVariableFeeRate":{"type":"number","format":"double","description":"The variable fee rate charged by the Grid product to execute the quote as a percentage of the sending currency amount.","minimum":0,"example":0.003,"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.rateDetails.gridApiVariableFeeRate","typeLabel":"number\u003cdouble>"},"gridApiVariableFeeAmount":{"type":"number","format":"int64","description":"The variable fee amount charged by the Grid product to execute the quote in the smallest unit of the sending currency (eg. cents). This is the sending amount times gridApiVariableFeeRate.","minimum":0,"example":30,"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.rateDetails.gridApiVariableFeeAmount","typeLabel":"number\u003cint64>"}},"uniqueKey":"data.items.[INDEX].quote.rateDetails","typeLabel":"object"},"purposeOfPayment":{"type":"string","description":"The purpose of payment the quote was created with. Present only when the quote request set `purposeOfPayment`.","enum":["GIFT","SELF","GOODS_OR_SERVICES","EDUCATION","HEALTH_OR_MEDICAL","REAL_ESTATE_PURCHASE","TAX_PAYMENT","LOAN_PAYMENT","UTILITY_BILL","DONATION","TRAVEL","FAMILY_SUPPORT","SALARY_PAYMENT","EXPORTED_GOODS_PREPAYMENT","EXPORTED_GOODS_POSTPAYMENT","SERVICE_CHARGES","OFFICE_EXPENSES","DELIVERY_FEES","HOTEL_ACCOMMODATION","COMMISSION_ON_GOODS","COMMISSION_ON_SERVICES","ACCOUNTING_SERVICES","EXHIBITION_SERVICES","OTHER"],"uniqueKey":"data.items.[INDEX].quote.purposeOfPayment","typeLabel":"enum\u003cstring>"},"documentIds":{"type":"array","description":"IDs of the supporting documents attached to the payment behind this quote, as passed in `documentIds` on `POST /quotes`. Present only when the quote was created with `documentIds`. Grid returns such a quote only after it has attached every document. Call `GET /payment-documents/{paymentDocumentId}` for each document's details, such as its `documentType` and its `ATTACHED` status.","items":{"type":"string","uniqueKey":"data.items.[INDEX].quote.documentIds.items.[INDEX]","typeLabel":"string"},"example":["PaymentDocument:019542f5-b3e7-1d02-0000-000000000001","PaymentDocument:019542f5-b3e7-1d02-0000-000000000002","PaymentDocument:019542f5-b3e7-1d02-0000-000000000003"],"uniqueKey":"data.items.[INDEX].quote.documentIds","typeLabel":"string[]"},"scaChallenge":{"type":"object","description":"Present only while `status` is `PENDING_AUTHORIZATION`: the Strong Customer Authentication challenge to satisfy before this quote can be executed (or, for realtime-funding sources, before `paymentInstructions` are issued). Omitted for customers outside SCA-regulated regions (non-EU).","required":["id","expiresAt","factor","availableFactors"],"properties":{"id":{"type":"string","description":"Unique identifier for this challenge. The server resolves the active challenge from the quote or transaction being authorized, so this field need not be supplied back; it is informational (e.g. for logging or correlation).","example":"ScaChallenge:019542f5-b3e7-1d02-0000-000000000007","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.scaChallenge.id","typeLabel":"string"},"expiresAt":{"type":"string","format":"date-time","description":"Absolute UTC timestamp after which this challenge can no longer be authorized.","example":"2025-10-03T12:05:00Z","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.scaChallenge.expiresAt","typeLabel":"string\u003cdate-time>"},"factor":{"type":"string","enum":["SMS_OTP","TOTP","PASSKEY"],"description":"The factor this challenge was issued for. Defaults to `SMS_OTP`.","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.scaChallenge.factor","typeLabel":"enum\u003cstring>"},"availableFactors":{"type":"array","description":"The factors the customer may use to satisfy this challenge.","items":{"type":"string","enum":["SMS_OTP","TOTP","PASSKEY"],"description":"A Strong Customer Authentication factor.\n\n| Factor | Description |\n|--------|-------------|\n| `SMS_OTP` | One-time code sent by SMS to the customer's verified phone. Requires no prior enrollment. |\n| `TOTP` | Time-based one-time code from an authenticator app. Requires enrollment. Not valid for per-transaction challenges (cannot carry dynamic linking). |\n| `PASSKEY` | WebAuthn passkey assertion. Requires enrollment. |\n","uniqueKey":"data.items.[INDEX].quote.scaChallenge.availableFactors.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["SMS_OTP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].quote.scaChallenge.availableFactors","typeLabel":"enum\u003cstring>[]"},"purpose":{"oneOf":[{"type":"string","description":"Optional, informational label for what this particular challenge in the sequence authorizes — useful for step UX (e.g. \"Authorize the currency conversion\" vs \"Authorize the payout\"). Known values include `CURRENCY_CONVERSION`, `PAYOUT`, `TRANSFER`, and `STANDING_INSTRUCTION` (authorizing a rule-based account's sweep instruction), but the set is **non-exhaustive and may grow** — treat unrecognized values as a generic authorization step and do not branch program logic on it. Omitted when steps are not distinguished (e.g. a single-authorization flow).","example":"PAYOUT","uniqueKey":"data.items.[INDEX].quote.scaChallenge.purpose.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional, informational label for what this particular challenge in the sequence authorizes — useful for step UX (e.g. \"Authorize the currency conversion\" vs \"Authorize the payout\"). Known values include `CURRENCY_CONVERSION`, `PAYOUT`, `TRANSFER`, and `STANDING_INSTRUCTION` (authorizing a rule-based account's sweep instruction), but the set is **non-exhaustive and may grow** — treat unrecognized values as a generic authorization step and do not branch program logic on it. Omitted when steps are not distinguished (e.g. a single-authorization flow).","example":"PAYOUT","uniqueKey":"data.items.[INDEX].quote.scaChallenge.purpose.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].quote.scaChallenge.purpose","typeLabel":"string | null"},"passkeyAssertionOptions":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Opaque WebAuthn assertion request options (including the relying-party id, challenge, and allowed credentials), present only when `factor` is `PASSKEY`. Pass to the device's WebAuthn API to produce the assertion submitted back in `ScaAuthorization.passkeyAssertion`.","uniqueKey":"data.items.[INDEX].quote.scaChallenge.passkeyAssertionOptions.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"Opaque WebAuthn assertion request options (including the relying-party id, challenge, and allowed credentials), present only when `factor` is `PASSKEY`. Pass to the device's WebAuthn API to produce the assertion submitted back in `ScaAuthorization.passkeyAssertion`.","uniqueKey":"data.items.[INDEX].quote.scaChallenge.passkeyAssertionOptions.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].quote.scaChallenge.passkeyAssertionOptions","typeLabel":"object | null"},"passkeyAllowedOrigins":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"data.items.[INDEX].quote.scaChallenge.passkeyAllowedOrigins.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"The origins the WebAuthn ceremony may run against. Populated for enrollment and login passkey challenges; the origin the assertion is produced against must be one of these and echoed back as `ScaAuthorization.origin`. Per-transaction passkey challenges omit this (they carry `passkeyAssertionOptions` only) — see `ScaAuthorization.origin` for how to source the origin in that case.","example":["https://app.example.com"],"uniqueKey":"data.items.[INDEX].quote.scaChallenge.passkeyAllowedOrigins.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"The origins the WebAuthn ceremony may run against. Populated for enrollment and login passkey challenges; the origin the assertion is produced against must be one of these and echoed back as `ScaAuthorization.origin`. Per-transaction passkey challenges omit this (they carry `passkeyAssertionOptions` only) — see `ScaAuthorization.origin` for how to source the origin in that case.","example":["https://app.example.com"],"uniqueKey":"data.items.[INDEX].quote.scaChallenge.passkeyAllowedOrigins.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].quote.scaChallenge.passkeyAllowedOrigins","typeLabel":"string[] | null"}},"uniqueKey":"data.items.[INDEX].quote.scaChallenge","typeLabel":"object"},"minimumReceivingAmount":{"oneOf":[{"type":"integer","format":"int64","description":"Smallest amount the recipient receives, in the smallest unit of `receivingCurrency`, for a quote to a `CHAIN_ADDRESS` destination. Grid pays the chain itself at a locked rate, so this equals `totalReceivingAmount`. Null for a quote whose destination is not `CHAIN_ADDRESS`.","example":1000,"uniqueKey":"data.items.[INDEX].quote.minimumReceivingAmount.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","format":"int64","description":"Smallest amount the recipient receives, in the smallest unit of `receivingCurrency`, for a quote to a `CHAIN_ADDRESS` destination. Grid pays the chain itself at a locked rate, so this equals `totalReceivingAmount`. Null for a quote whose destination is not `CHAIN_ADDRESS`.","example":1000,"uniqueKey":"data.items.[INDEX].quote.minimumReceivingAmount.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].quote.minimumReceivingAmount","typeLabel":"integer\u003cint64> | null"},"destinationSparkAddress":{"type":"string","description":"The Spark address this quote pays, when its `destination` is one of the customer's `SPARK_WALLET` external accounts.","example":"spark1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu","uniqueKey":"data.items.[INDEX].quote.destinationSparkAddress","typeLabel":"string"},"destinationChainAddress":{"title":"Chain Address","type":"object","required":["destinationType","network","currency","address"],"properties":{"destinationType":{"type":"string","enum":["CHAIN_ADDRESS"],"description":"Marks a destination on another chain.","example":"CHAIN_ADDRESS","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.destinationChainAddress.destinationType","typeLabel":"enum\u003cstring>"},"network":{"type":"string","enum":["BASE","ETHEREUM","SOLANA","POLYGON","ARBITRUM","TRON"],"description":"Network the recipient receives on.","example":"BASE","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.destinationChainAddress.network","typeLabel":"enum\u003cstring>"},"currency":{"type":"string","enum":["USDC","USDT"],"description":"Asset the recipient receives: `USDC` or `USDT`. `TRON` supports `USDT` only, and `BASE` supports `USDC` only.","example":"USDC","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.destinationChainAddress.currency","typeLabel":"enum\u003cstring>"},"address":{"type":"string","maxLength":128,"description":"Recipient address on `network`.","example":"0x1234567890abcdef1234567890abcdef12345678","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.destinationChainAddress.address","typeLabel":"string"}},"description":"The chain, address and stablecoin this quote pays, when it was created with a `CHAIN_ADDRESS` destination.","uniqueKey":"data.items.[INDEX].quote.destinationChainAddress","typeLabel":"Chain Address · object"},"destinationLightningInvoice":{"title":"Lightning Invoice","type":"object","required":["destinationType","invoice"],"properties":{"destinationType":{"type":"string","enum":["LIGHTNING_INVOICE"],"description":"Marks a BOLT11 Lightning invoice destination.","example":"LIGHTNING_INVOICE","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.destinationLightningInvoice.destinationType","typeLabel":"enum\u003cstring>"},"invoice":{"type":"string","maxLength":4096,"description":"The BOLT11 invoice to pay. It must name an amount in whole satoshis, be for the platform's Bitcoin network, and not expire within the next minute.","example":"lnbc15u1p3xnhl2pp5jptserfk3zk4qy42tlucycrfwxhydvlemu9pqr93tuzlv9cc7g3sdqsvfhkcap3xyhx7un8cqzpgxqzjcsp5f8c52y2stc300gl6s4xswtjpc37hrnnr3c9wvtgjfuvqmpm35evq9qyyssqy4lgd8tj637qcjp05rdpxxykjenthxftej7a2zzmwrmrl70fyj9hvj0rewhzj7jfyuwkwcg9g2jpwtk3wkjtwnkdks84hsnu8xps5vsq4gj5hs","isRequired":true,"uniqueKey":"data.items.[INDEX].quote.destinationLightningInvoice.invoice","typeLabel":"string"}},"description":"The invoice this quote pays, when it was created with a `LIGHTNING_INVOICE` destination.","uniqueKey":"data.items.[INDEX].quote.destinationLightningInvoice","typeLabel":"Lightning Invoice · object"}},"uniqueKey":"data.items.[INDEX].quote","typeLabel":"Agent Quote · object"},"previousQuote":{"type":"object","title":"Agent Quote","description":"The quote the customer was shown before an approval found that the price had moved past `priceTolerance`. Present only while the action is `PENDING_APPROVAL` after such an approval; `quote` is then the new quote to show the customer, and approving it again repeats the check against it.","required":["id","status","expiresAt","createdAt","source","destination","sendingCurrency","receivingCurrency","totalSendingAmount","totalReceivingAmount","exchangeRate","feesIncluded","transactionId"],"properties":{"id":{"type":"string","description":"Unique identifier for this quote","example":"Quote:019542f5-b3e7-1d02-0000-000000000006","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.id","typeLabel":"string"},"status":{"type":"string","enum":["PENDING","PENDING_AUTHORIZATION","PROCESSING","COMPLETED","FAILED","EXPIRED"],"description":"Current status of the quote. `PENDING_AUTHORIZATION` occurs only for customers in a region where Strong Customer Authentication is required (e.g. EU): the quote carries an `scaChallenge` that must be authorized before execution, and for realtime-funding sources `paymentInstructions` are withheld until it is satisfied.","example":"PENDING","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.status","typeLabel":"enum\u003cstring>"},"createdAt":{"type":"string","format":"date-time","description":"When this quote was created","example":"2025-10-03T12:00:00Z","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.createdAt","typeLabel":"string\u003cdate-time>"},"expiresAt":{"type":"string","format":"date-time","description":"Absolute UTC timestamp when the rate locked in this quote becomes invalid and the quote can no longer be executed. The window depends on the rail and corridor: instant rails (Lightning, Spark, USDC on Solana/Base/Polygon, RTP, SEPA Instant) typically expire in 1–5 minutes; corridors with longer settlement guarantees may have longer windows. Always rely on this timestamp rather than assuming a fixed window.","example":"2025-10-03T12:05:00Z","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.expiresAt","typeLabel":"string\u003cdate-time>"},"source":{"oneOf":[{"type":"object","title":"Account","description":"Source account details","required":["accountId","sourceType"],"properties":{"sourceType":{"type":"string","description":"Type of quote funding source","enum":["ACCOUNT"],"example":"ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.source.oneOf.0.sourceType","typeLabel":"enum\u003cstring>"},"accountId":{"type":"string","description":"Source account identifier","example":"InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.source.oneOf.0.accountId","typeLabel":"string"},"customerId":{"type":"string","description":"The customer on whose behalf the transaction is being initiated. Required when funding from a `BULK_SETTLEMENT` account. The customer is never the account owner, because the platform owns the account. When funding from an FBO account, this field is optional. If you omit it, the transaction is initiated on behalf of the platform. For any other account, it defaults to the account owner's customerId.","example":"Customer:019542f5-b3e7-1d02-0000-000000000001","uniqueKey":"data.items.[INDEX].previousQuote.source.oneOf.0.customerId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.source.oneOf.0","typeLabel":"Account · object"},{"type":"object","title":"Real-time Funding","description":"Fund the quote using a real-time funding source (RTP, SEPA Instant, Spark, Stables, etc.). This will require manual just-in-time funding using `paymentInstructions` in the response. Because quotes expire quickly, this option is only valid for instant payment methods. Do not try to fund a quote with a non-instant payment method (ACH, etc.).","required":["currency","sourceType"],"properties":{"sourceType":{"type":"string","description":"Type of quote funding source","enum":["REALTIME_FUNDING"],"example":"ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.source.oneOf.1.sourceType","typeLabel":"enum\u003cstring>"},"currency":{"type":"string","description":"Currency code for the funding source. See [Supported Currencies](https://docs.lightspark.com/platform-overview/core-concepts/currencies-and-rails) for the full list of supported fiat and crypto currencies.","example":"USD","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.source.oneOf.1.currency","typeLabel":"string"},"customerId":{"type":"string","description":"Source customer ID. If this transaction is being initiated on behalf of a customer, this is required. If customerId is not provided, the quote will be created on behalf of the platform itself.","example":"Customer:019542f5-b3e7-1d02-0000-000000000009","uniqueKey":"data.items.[INDEX].previousQuote.source.oneOf.1.customerId","typeLabel":"string"},"cryptoNetwork":{"type":"string","description":"The crypto network to use for the funding source. Required when `currency` is a stablecoin (e.g. USDC, USDT). Specifies which network the customer will deposit on, so the correct deposit address can be generated. Example values: `SOLANA`, `ETHEREUM`, `BASE`, `POLYGON`, `TRON`, `PLASMA`, `ARBITRUM`, `SPARK`, `LIGHTNING`, `BITCOIN`.","example":"SOLANA","uniqueKey":"data.items.[INDEX].previousQuote.source.oneOf.1.cryptoNetwork","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.source.oneOf.1","typeLabel":"Real-time Funding · object"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.source","typeLabel":"Account · object | Real-time Funding · object"},"destination":{"oneOf":[{"type":"object","title":"Account","description":"Destination account details","required":["accountId","destinationType"],"properties":{"destinationType":{"type":"string","description":"Type of payment destination","enum":["ACCOUNT"],"example":"ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.destination.oneOf.0.destinationType","typeLabel":"enum\u003cstring>"},"accountId":{"type":"string","description":"Destination account identifier","example":"ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.destination.oneOf.0.accountId","typeLabel":"string"},"paymentRail":{"type":"string","description":"The payment rail to use for the transfer. Must be one of the rails supported by the destination account. If not specified, the system will select a default rail.","enum":["ACH","ACH_COLOMBIA","ACH_SAME_DAY","BANK_TRANSFER","BRE_B","CIPS","FAST","FASTER_PAYMENTS","FEDNOW","INSTAPAY","MOBILE_MONEY","NEFT","PAYNOW","PESONET","PIX","RTGS","RTP","SEPA","SEPA_INSTANT","SPEI","SWIFT","UNIONPAY","UPI","WIRE"],"example":"ACH","uniqueKey":"data.items.[INDEX].previousQuote.destination.oneOf.0.paymentRail","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.destination.oneOf.0","typeLabel":"Account · object"},{"type":"object","title":"UMA Address","description":"UMA address destination details","required":["umaAddress","destinationType","currency"],"properties":{"destinationType":{"type":"string","description":"Type of payment destination","enum":["UMA_ADDRESS"],"example":"ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.destination.oneOf.1.destinationType","typeLabel":"enum\u003cstring>"},"umaAddress":{"type":"string","maxLength":200,"description":"UMA address of the recipient","example":"$receiver@uma.domain.com","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.destination.oneOf.1.umaAddress","typeLabel":"string"},"currency":{"type":"string","description":"Currency code for the destination. See [Supported Currencies](https://docs.lightspark.com/platform-overview/core-concepts/currencies-and-rails) for the full list of supported fiat and crypto currencies.","example":"EUR","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.destination.oneOf.1.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.destination.oneOf.1","typeLabel":"UMA Address · object"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.destination","typeLabel":"Account · object | UMA Address · object"},"sendingCurrency":{"type":"object","properties":{"code":{"type":"string","description":"Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. \"BTC\" for Bitcoin, \"USDC\" for USDC, etc.)","example":"USD","uniqueKey":"data.items.[INDEX].previousQuote.sendingCurrency.code","typeLabel":"string"},"name":{"type":"string","description":"Full name of the currency","example":"United States Dollar","uniqueKey":"data.items.[INDEX].previousQuote.sendingCurrency.name","typeLabel":"string"},"symbol":{"type":"string","description":"Symbol of the currency","example":"$","uniqueKey":"data.items.[INDEX].previousQuote.sendingCurrency.symbol","typeLabel":"string"},"decimals":{"type":"integer","description":"Number of decimal places for the currency","minimum":0,"example":2,"uniqueKey":"data.items.[INDEX].previousQuote.sendingCurrency.decimals","typeLabel":"integer"}},"description":"Currency for the sending amount","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.sendingCurrency","typeLabel":"object"},"receivingCurrency":{"type":"object","properties":{"code":{"type":"string","description":"Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. \"BTC\" for Bitcoin, \"USDC\" for USDC, etc.)","example":"USD","uniqueKey":"data.items.[INDEX].previousQuote.receivingCurrency.code","typeLabel":"string"},"name":{"type":"string","description":"Full name of the currency","example":"United States Dollar","uniqueKey":"data.items.[INDEX].previousQuote.receivingCurrency.name","typeLabel":"string"},"symbol":{"type":"string","description":"Symbol of the currency","example":"$","uniqueKey":"data.items.[INDEX].previousQuote.receivingCurrency.symbol","typeLabel":"string"},"decimals":{"type":"integer","description":"Number of decimal places for the currency","minimum":0,"example":2,"uniqueKey":"data.items.[INDEX].previousQuote.receivingCurrency.decimals","typeLabel":"integer"}},"description":"Currency for the receiving amount","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.receivingCurrency","typeLabel":"object"},"totalSendingAmount":{"type":"integer","format":"int64","description":"The total amount that will be sent in the smallest unit of the sending currency (eg. cents).","exclusiveMinimum":0,"example":123010,"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.totalSendingAmount","typeLabel":"integer\u003cint64>"},"totalReceivingAmount":{"type":"integer","format":"int64","description":"The total amount that will be received in the smallest unit of the receiving currency (eg. cents).","exclusiveMinimum":0,"example":1000,"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.totalReceivingAmount","typeLabel":"integer\u003cint64>"},"exchangeRate":{"type":"number","description":"Number of sending currency units per receiving currency unit. The rate is fee-exclusive: Grid deducts `feesIncluded` from `totalSendingAmount` first, then converts the remainder at this rate to reach `totalReceivingAmount`.","exclusiveMinimum":0,"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.exchangeRate","typeLabel":"number"},"feesIncluded":{"type":"integer","format":"int64","description":"The fees associated with the quote in the smallest unit of the sending currency (eg. cents). Note: this value may fluctuate between quotes — some underlying fee components are defined in the receiving currency, so their equivalent in the sending currency moves with the FX rate. The fees shown here are locked only for the lifetime of this quote.","minimum":0,"example":10,"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.feesIncluded","typeLabel":"integer\u003cint64>"},"transactionId":{"type":"string","description":"The ID of the transaction created from this quote.","example":"Transaction:019542f5-b3e7-1d02-0000-000000000005","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.transactionId","typeLabel":"string"},"platformFeesIncluded":{"type":"integer","format":"int64","description":"The portion of `feesIncluded` collected by the platform (platform-configured transaction fees), in the smallest unit of the sending currency. 0 when the platform has no applicable fee configured. Already included in `feesIncluded`. May be omitted from payloads produced before platform fees existed.","minimum":0,"example":5,"uniqueKey":"data.items.[INDEX].previousQuote.platformFeesIncluded","typeLabel":"integer\u003cint64>"},"paymentInstructions":{"type":"array","description":"Payment instructions for executing the payment. This is not required when using an internal account source.","items":{"type":"object","required":["accountOrWalletInfo"],"properties":{"accountOrWalletInfo":{"oneOf":[{"type":"object","title":"USD Bank Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["reference","paymentRails","accountType","accountNumber","routingNumber"],"example":{"accountType":"USD_ACCOUNT","accountNumber":"1234567890","routingNumber":"021000021","bankName":"Chase Bank","intermediaryBankName":"JPMorgan Chase Bank","intermediaryRoutingNumber":"021000021","fiToFiInformation":"/BNF/Invoice 4471","bankAccountType":"CHECKING"},"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["USD_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.accountType","typeLabel":"enum\u003cstring>"},"accountNumber":{"type":"string","description":"The account number of the bank","minLength":1,"maxLength":34,"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.accountNumber","typeLabel":"string"},"routingNumber":{"type":"string","description":"The ABA routing number","example":"021000021","minLength":9,"maxLength":9,"pattern":"^[0-9]{9}$","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.routingNumber","typeLabel":"string"},"paymentRails":{"type":"array","items":{"type":"string","enum":["ACH","ACH_SAME_DAY","WIRE","RTP","FEDNOW"],"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.paymentRails.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.paymentRails","typeLabel":"enum\u003cstring>[]"},"reference":{"type":"string","description":"Reference code for the payment. On a quote's `paymentInstructions`, include it with the payment, in the memo or remittance information, so Grid can match the payment to the quote. On an internal account's `fundingPaymentInstructions`, the account number is unique to that account and deposits are credited by account number, so the payer doesn't need to include the reference.","example":"UMA-Q12345-REF","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.reference","typeLabel":"string"},"bankName":{"type":"string","description":"The name of the financial institution holding the account. Optional on every rail, and recommended for wires, where it identifies the beneficiary's institution on the payment message. Not checked against `GET /discoveries`.","minLength":1,"maxLength":140,"example":"Chase Bank","uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.bankName","typeLabel":"string"},"intermediaryBankName":{"type":"string","description":"The name of the intermediary financial institution, for accounts reachable only through a correspondent bank. Used on the WIRE rail; ignored on ACH, RTP and FEDNOW.","example":"JPMorgan Chase Bank","minLength":1,"maxLength":140,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.intermediaryBankName","typeLabel":"string"},"intermediaryRoutingNumber":{"type":"string","description":"The ABA routing number of the intermediary financial institution. Used on the WIRE rail; ignored on ACH, RTP and FEDNOW.","example":"021000021","minLength":9,"maxLength":9,"pattern":"^[0-9]{9}$","uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.intermediaryRoutingNumber","typeLabel":"string"},"fiToFiInformation":{"type":"string","description":"Bank-to-bank instructions carried alongside the payment. Used on the WIRE rail; ignored on ACH, RTP and FEDNOW.","example":"/BNF/Invoice 4471","maxLength":210,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.fiToFiInformation","typeLabel":"string"},"bankAccountType":{"type":"string","description":"Whether the account is a checking or a savings account. Grid uses this to set the ACH transaction code, so a value that does not match the account causes the receiving bank to return a notification of change.","enum":["CHECKING","SAVINGS"],"example":"CHECKING","uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.bankAccountType","typeLabel":"enum\u003cstring>"},"bankAddress":{"type":"string","description":"The postal address of the financial institution holding the account, on a single line. Optional on every rail, and recommended for wires, where some originating banks require the beneficiary institution's address before they will send.","example":"885 Teaneck Road, Teaneck, NJ 07666","minLength":1,"maxLength":255,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.bankAddress","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0","typeLabel":"USD Bank Account · object"},{"type":"object","title":"EUR Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["reference","paymentRails","accountType","iban"],"example":{"accountType":"EUR_ACCOUNT","iban":"DE89370400440532013000","swiftCode":"DEUTDEFF"},"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["EUR_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1.accountType","typeLabel":"enum\u003cstring>"},"iban":{"type":"string","description":"The IBAN of the bank account","example":"DE89370400440532013000","minLength":15,"maxLength":34,"pattern":"^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1.iban","typeLabel":"string"},"paymentRails":{"type":"array","items":{"type":"string","enum":["SEPA","SEPA_INSTANT"],"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1.paymentRails.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1.paymentRails","typeLabel":"enum\u003cstring>[]"},"reference":{"type":"string","description":"Unique reference code that must be included with the payment to properly credit it","example":"UMA-Q12345-REF","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1.reference","typeLabel":"string"},"swiftCode":{"type":"string","description":"The SWIFT/BIC code of the bank. When omitted, Grid derives it from the IBAN when possible. Provide it when automatic derivation is unavailable.","example":"DEUTDEFF","minLength":8,"maxLength":11,"pattern":"^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$","uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1.swiftCode","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1","typeLabel":"EUR Account · object"},{"type":"object","title":"SWIFT Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["accountHolderName","paymentRails","accountType","swiftCode","bankName","country"],"example":{"accountType":"SWIFT_ACCOUNT","country":"NG","swiftCode":"DEUTDEFF","bankName":"Deutsche Bank","accountNumber":"1234567890"},"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["SWIFT_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.accountType","typeLabel":"enum\u003cstring>"},"country":{"type":"string","description":"The ISO 3166-1 alpha-2 country code of the bank account","example":"NG","minLength":2,"maxLength":2,"pattern":"^[A-Z]{2}$","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.country","typeLabel":"string"},"swiftCode":{"type":"string","description":"The SWIFT/BIC code of the bank","example":"DEUTDEFF","minLength":8,"maxLength":11,"pattern":"^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.swiftCode","typeLabel":"string"},"bankName":{"type":"string","description":"The name of the bank","example":"Deutsche Bank","minLength":1,"maxLength":255,"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.bankName","typeLabel":"string"},"paymentRails":{"type":"array","items":{"type":"string","enum":["SWIFT"],"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.paymentRails.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.paymentRails","typeLabel":"enum\u003cstring>[]"},"accountHolderName":{"type":"string","description":"The name of the account holder as it must appear on the wire. Remitting banks match this against the beneficiary name field, so payers should copy it exactly.","example":"Acme Exports Pte Ltd","minLength":1,"maxLength":255,"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.accountHolderName","typeLabel":"string"},"accountNumber":{"type":"string","description":"The bank account number. Required for most corridors. Use iban instead for IBAN-only corridors (e.g. BR, GB).","example":"1234567890","minLength":1,"maxLength":34,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.accountNumber","typeLabel":"string"},"iban":{"type":"string","description":"The IBAN of the bank account. Required for IBAN-only corridors (e.g. BR, GB). Use accountNumber for all other corridors.","example":"GB29NWBK60161331926819","minLength":15,"maxLength":34,"pattern":"^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$","uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.iban","typeLabel":"string"},"bankAddress":{"type":"string","description":"The address of the bank holding the account, when known.","example":"12 Marina Boulevard, Singapore 018982","minLength":1,"maxLength":1024,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.bankAddress","typeLabel":"string"},"reference":{"type":"string","description":"Reference code to include with the payment when present. SWIFT payments are attributed by the destination account number/IBAN, so this account type typically requires no reference.","example":"UMA-Q12345-REF","uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.reference","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2","typeLabel":"SWIFT Account · object"},{"type":"object","title":"MXN Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["reference","paymentRails","accountType","clabeNumber"],"example":{"accountType":"MXN_ACCOUNT","clabeNumber":"123456789012345678"},"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["MXN_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.3.accountType","typeLabel":"enum\u003cstring>"},"clabeNumber":{"type":"string","description":"The CLABE number of the bank","example":"123456789012345678","minLength":18,"maxLength":18,"pattern":"^[0-9]{18}$","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.3.clabeNumber","typeLabel":"string"},"paymentRails":{"type":"array","items":{"type":"string","enum":["SPEI"],"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.3.paymentRails.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.3.paymentRails","typeLabel":"enum\u003cstring>[]"},"reference":{"type":"string","description":"Unique reference code that must be included with the payment to properly credit it","example":"UMA-Q12345-REF","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.3.reference","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.3","typeLabel":"MXN Account · object"},{"type":"object","title":"BRL Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["qrCode","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["BRL_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.4.accountType","typeLabel":"enum\u003cstring>"},"qrCode":{"type":"string","description":"A PIX QR code payload that can be used to fund the transaction. This can be rendered as a QR code image or pasted into a PIX-compatible banking app.","minLength":1,"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.4.qrCode","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.4","typeLabel":"BRL Account · object"},{"type":"object","title":"COP Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["paymentUrl","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["COP_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.5.accountType","typeLabel":"enum\u003cstring>"},"paymentUrl":{"type":"string","format":"uri","description":"A payment URL where the customer can complete their COP deposit.","example":"https://payments.example.com/t/abc123","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.5.paymentUrl","typeLabel":"string\u003curi>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.5","typeLabel":"COP Account · object"},{"type":"object","title":"ARS Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["accountNumber","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["ARS_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.6.accountType","typeLabel":"enum\u003cstring>"},"accountNumber":{"type":"string","description":"The static CVU (Clave Virtual Uniforme) bank account number to pay to.","minLength":22,"maxLength":22,"pattern":"^\\d{22}$","example":"0000003100074052501434","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.6.accountNumber","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.6","typeLabel":"ARS Account · object"},{"type":"object","title":"Spark Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["assetType","address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["SPARK_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.7.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Spark wallet address","example":"spark1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.7.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset or configured Spark token currency code","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.7.assetType","typeLabel":"string"},"invoice":{"type":"string","description":"Invoice for the payment","example":"sparkrt1pgss8ter0fhc4c220f3zftmpz49h8wqte8eg3m5zkrraplgc048jucgszg3ssqgjzqqekv73mmh842yj7drsjwh7t7tz5zt8wf5kghm5v4ehggszppjp5s80cg3qjdzc55g2567tn3lj705hdsr577tg8ah795mlnt6807y657qhkmgfkf9w75p4wz3l8vhua85zdn6ryj32zuj0p00pv2l5z4u47mw6h4s","uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.7.invoice","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.7","typeLabel":"Spark Wallet · object"},{"type":"object","title":"Lightning Invoice","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["invoice","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["LIGHTNING"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.8.accountType","typeLabel":"enum\u003cstring>"},"invoice":{"type":"string","description":"Invoice for the payment","example":"lnbc15u1p3xnhl2pp5jptserfk3zk4qy42tlucycrfwxhydvlemu9pqr93tuzlv9cc7g3sdqsvfhkcap3xyhx7un8cqzpgxqzjcsp5f8c52y2stc300gl6s4xswtjpc37hrnnr3c9wvtgjfuvqmpm35evq9qyyssqy4lgd8tj637qcjp05rdpxxykjenthxftej7a2zzmwrmrl70fyj9hvj0rewhzj7jfyuwkwcg9g2jpwtk3wkjtwnkdks84hsnu8xps5vsq4gj5hs","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.8.invoice","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.8","typeLabel":"Lightning Invoice · object"},{"type":"object","title":"Bitcoin L1 Deposit Address","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["BITCOIN_L1"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.9.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"On-chain Bitcoin (L1) deposit address to send funds to","example":"bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.9.address","typeLabel":"string"},"network":{"type":"string","description":"The blockchain network for the deposit address.","enum":["BITCOIN"],"example":"BITCOIN","uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.9.network","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.9","typeLabel":"Bitcoin L1 Deposit Address · object"},{"type":"object","title":"Solana Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["SOLANA_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.10.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Solana wallet address","example":"4Nd1m6Qkq7RfKuE5vQ9qP9Tn6H94Ueqb4xXHzsAbd8Wg","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.10.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDC","USDT"],"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.10.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.10","typeLabel":"Solana Wallet · object"},{"type":"object","title":"Ethereum Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["ETHEREUM_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.11.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Ethereum L1 wallet address","example":"0xAbCDEF1234567890aBCdEf1234567890ABcDef12","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.11.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDC","USDT"],"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.11.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.11","typeLabel":"Ethereum Wallet · object"},{"type":"object","title":"Base Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["BASE_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.12.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Base eth wallet address","example":"0xAbCDEF1234567890aBCdEf1234567890ABcDef12","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.12.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDC"],"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.12.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.12","typeLabel":"Base Wallet · object"},{"type":"object","title":"Polygon Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["POLYGON_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.13.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Polygon eth wallet address","example":"0xAbCDEF1234567890aBCdEf1234567890ABcDef12","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.13.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDC"],"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.13.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.13","typeLabel":"Polygon Wallet · object"},{"type":"object","title":"Arbitrum Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["ARBITRUM_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.14.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Arbitrum wallet address","example":"0xAbCDEF1234567890aBCdEf1234567890ABcDef12","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.14.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDC","USDT"],"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.14.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.14","typeLabel":"Arbitrum Wallet · object"},{"type":"object","title":"Tron Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["TRON_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.15.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Tron wallet address","example":"TNPeeaaFB7K9cmo4uQpcU32zGK8G1NYqeL","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.15.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDT"],"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.15.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.15","typeLabel":"Tron Wallet · object"},{"type":"object","title":"Plasma Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["PLASMA_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.16.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Plasma wallet address","example":"0xAbCDEF1234567890aBCdEf1234567890ABcDef12","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.16.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDT"],"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.16.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.16","typeLabel":"Plasma Wallet · object"},{"type":"object","title":"Embedded Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["accountType","payloadToSign"],"properties":{"accountType":{"type":"string","description":"Discriminator value identifying this as Embedded Wallet payment instructions.","enum":["EMBEDDED_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.17.accountType","typeLabel":"enum\u003cstring>"},"payloadToSign":{"type":"string","description":"JSON-encoded transaction signing payload that must be stamped, as-is (byte-for-byte, without re-serialization), with the session private key of a verified authentication credential on the source Embedded Wallet. The resulting Grid wallet signature is passed as the `Grid-Wallet-Signature` header on `POST /quotes/{quoteId}/execute` to authorize the outbound transfer from the wallet.","example":"{\"type\":\"ACTIVITY_TYPE_SIGN_TRANSACTION_V2\",\"timestampMs\":\"1746736509954\",\"organizationId\":\"org_abc123\",\"parameters\":{\"signWith\":\"wallet_abc123def456\",\"unsignedTransaction\":\"ea69b4bf05f775209f26ff0a34a05569180f7936579d5c4af9377ae550194f72\",\"type\":\"TRANSACTION_TYPE_ETHEREUM\"},\"generateAppProofs\":true}","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.17.payloadToSign","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.17","typeLabel":"Embedded Wallet · object"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].accountOrWalletInfo","typeLabel":"USD Bank Account · object | EUR Account · object | SWIFT Account · object | MXN Account · object | BRL Account · object | COP Account · object | ARS Account · object | Spark Wallet · object | Lightning Invoice · object | Bitcoin L1 Deposit Address · object | Solana Wallet · object | Ethereum Wallet · object | Base Wallet · object | Polygon Wallet · object | Arbitrum Wallet · object | Tron Wallet · object | Plasma Wallet · object | Embedded Wallet · object"},"instructionsNotes":{"type":"string","description":"Additional human-readable instructions for making the payment","example":"Please ensure the reference code is included in the payment memo/description field","uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].instructionsNotes","typeLabel":"string"},"isPlatformAccount":{"type":"boolean","description":"Indicates whether the account is a platform account or a customer account.","example":true,"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX].isPlatformAccount","typeLabel":"boolean"}},"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions.items.[INDEX]","typeLabel":"object"},"example":[{"accountOrWalletInfo":{"accountType":"USD_ACCOUNT","paymentRails":["ACH","WIRE"],"accountNumber":"1234567890","routingNumber":"021000021","bankName":"Chase Bank","reference":"UMA-Q12345-REF"},"instructionsNotes":"Include reference UMA-Q12345-REF in memo"},{"accountOrWalletInfo":{"accountType":"SPARK_WALLET","assetType":"BTC","address":"spark1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu","invoice":"lnbc15u1p3xnhl2pp5jptserfk3zk4qy42tlucycrfwxhydvlemu9pqr93tuzlv9cc7g3sdqsvfhkcap3xyhx7un8cqzpgxqzjcsp5f8c52y2stc300gl6s4xswtjpc37hrnnr3c9wvtgjfuvqmpm35evq9qyyssqy4lgd8tj637qcjp05rdpxxykjenthxftej7a2zzmwrmrl70fyj9hvj0rewhzj7jfyuwkwcg9g2jpwtk3wkjtwnkdks84hsnu8xps5vsq4gj5hs"}}],"uniqueKey":"data.items.[INDEX].previousQuote.paymentInstructions","typeLabel":"object[]"},"counterpartyInformation":{"type":"object","description":"Additional information about the counterparty, if available and required by the platform in their configuration.","additionalProperties":true,"example":{"FULL_NAME":"John Sender","BIRTH_DATE":"1985-06-15","NATIONALITY":"DE"},"uniqueKey":"data.items.[INDEX].previousQuote.counterpartyInformation","typeLabel":"object"},"rateDetails":{"description":"Details about the rate and fees for the transaction.","type":"object","required":["counterpartyMultiplier","counterpartyFixedFee","gridApiMultiplier","gridApiFixedFee","gridApiVariableFeeRate","gridApiVariableFeeAmount"],"properties":{"counterpartyMultiplier":{"type":"number","format":"double","description":"The underlying multiplier from mSATs to the receiving currency as returned by the counterparty institution.","exclusiveMinimum":0,"example":1.08,"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.rateDetails.counterpartyMultiplier","typeLabel":"number\u003cdouble>"},"counterpartyFixedFee":{"type":"integer","format":"int64","description":"The fixed fee charged by the counterparty institution to execute the quote in the smallest unit of the receiving currency (eg. cents).","minimum":0,"example":10,"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.rateDetails.counterpartyFixedFee","typeLabel":"integer\u003cint64>"},"gridApiMultiplier":{"type":"number","format":"double","description":"The underlying multiplier from the sending currency to mSATS, including variable fees.","exclusiveMinimum":0,"example":0.925,"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.rateDetails.gridApiMultiplier","typeLabel":"number\u003cdouble>"},"gridApiFixedFee":{"type":"integer","format":"int64","description":"The fixed fee charged by the Grid product to execute the quote in the smallest unit of the sending currency (eg. cents).","minimum":0,"example":10,"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.rateDetails.gridApiFixedFee","typeLabel":"integer\u003cint64>"},"gridApiVariableFeeRate":{"type":"number","format":"double","description":"The variable fee rate charged by the Grid product to execute the quote as a percentage of the sending currency amount.","minimum":0,"example":0.003,"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.rateDetails.gridApiVariableFeeRate","typeLabel":"number\u003cdouble>"},"gridApiVariableFeeAmount":{"type":"number","format":"int64","description":"The variable fee amount charged by the Grid product to execute the quote in the smallest unit of the sending currency (eg. cents). This is the sending amount times gridApiVariableFeeRate.","minimum":0,"example":30,"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.rateDetails.gridApiVariableFeeAmount","typeLabel":"number\u003cint64>"}},"uniqueKey":"data.items.[INDEX].previousQuote.rateDetails","typeLabel":"object"},"purposeOfPayment":{"type":"string","description":"The purpose of payment the quote was created with. Present only when the quote request set `purposeOfPayment`.","enum":["GIFT","SELF","GOODS_OR_SERVICES","EDUCATION","HEALTH_OR_MEDICAL","REAL_ESTATE_PURCHASE","TAX_PAYMENT","LOAN_PAYMENT","UTILITY_BILL","DONATION","TRAVEL","FAMILY_SUPPORT","SALARY_PAYMENT","EXPORTED_GOODS_PREPAYMENT","EXPORTED_GOODS_POSTPAYMENT","SERVICE_CHARGES","OFFICE_EXPENSES","DELIVERY_FEES","HOTEL_ACCOMMODATION","COMMISSION_ON_GOODS","COMMISSION_ON_SERVICES","ACCOUNTING_SERVICES","EXHIBITION_SERVICES","OTHER"],"uniqueKey":"data.items.[INDEX].previousQuote.purposeOfPayment","typeLabel":"enum\u003cstring>"},"documentIds":{"type":"array","description":"IDs of the supporting documents attached to the payment behind this quote, as passed in `documentIds` on `POST /quotes`. Present only when the quote was created with `documentIds`. Grid returns such a quote only after it has attached every document. Call `GET /payment-documents/{paymentDocumentId}` for each document's details, such as its `documentType` and its `ATTACHED` status.","items":{"type":"string","uniqueKey":"data.items.[INDEX].previousQuote.documentIds.items.[INDEX]","typeLabel":"string"},"example":["PaymentDocument:019542f5-b3e7-1d02-0000-000000000001","PaymentDocument:019542f5-b3e7-1d02-0000-000000000002","PaymentDocument:019542f5-b3e7-1d02-0000-000000000003"],"uniqueKey":"data.items.[INDEX].previousQuote.documentIds","typeLabel":"string[]"},"scaChallenge":{"type":"object","description":"Present only while `status` is `PENDING_AUTHORIZATION`: the Strong Customer Authentication challenge to satisfy before this quote can be executed (or, for realtime-funding sources, before `paymentInstructions` are issued). Omitted for customers outside SCA-regulated regions (non-EU).","required":["id","expiresAt","factor","availableFactors"],"properties":{"id":{"type":"string","description":"Unique identifier for this challenge. The server resolves the active challenge from the quote or transaction being authorized, so this field need not be supplied back; it is informational (e.g. for logging or correlation).","example":"ScaChallenge:019542f5-b3e7-1d02-0000-000000000007","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.scaChallenge.id","typeLabel":"string"},"expiresAt":{"type":"string","format":"date-time","description":"Absolute UTC timestamp after which this challenge can no longer be authorized.","example":"2025-10-03T12:05:00Z","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.scaChallenge.expiresAt","typeLabel":"string\u003cdate-time>"},"factor":{"type":"string","enum":["SMS_OTP","TOTP","PASSKEY"],"description":"The factor this challenge was issued for. Defaults to `SMS_OTP`.","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.scaChallenge.factor","typeLabel":"enum\u003cstring>"},"availableFactors":{"type":"array","description":"The factors the customer may use to satisfy this challenge.","items":{"type":"string","enum":["SMS_OTP","TOTP","PASSKEY"],"description":"A Strong Customer Authentication factor.\n\n| Factor | Description |\n|--------|-------------|\n| `SMS_OTP` | One-time code sent by SMS to the customer's verified phone. Requires no prior enrollment. |\n| `TOTP` | Time-based one-time code from an authenticator app. Requires enrollment. Not valid for per-transaction challenges (cannot carry dynamic linking). |\n| `PASSKEY` | WebAuthn passkey assertion. Requires enrollment. |\n","uniqueKey":"data.items.[INDEX].previousQuote.scaChallenge.availableFactors.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["SMS_OTP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.scaChallenge.availableFactors","typeLabel":"enum\u003cstring>[]"},"purpose":{"oneOf":[{"type":"string","description":"Optional, informational label for what this particular challenge in the sequence authorizes — useful for step UX (e.g. \"Authorize the currency conversion\" vs \"Authorize the payout\"). Known values include `CURRENCY_CONVERSION`, `PAYOUT`, `TRANSFER`, and `STANDING_INSTRUCTION` (authorizing a rule-based account's sweep instruction), but the set is **non-exhaustive and may grow** — treat unrecognized values as a generic authorization step and do not branch program logic on it. Omitted when steps are not distinguished (e.g. a single-authorization flow).","example":"PAYOUT","uniqueKey":"data.items.[INDEX].previousQuote.scaChallenge.purpose.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional, informational label for what this particular challenge in the sequence authorizes — useful for step UX (e.g. \"Authorize the currency conversion\" vs \"Authorize the payout\"). Known values include `CURRENCY_CONVERSION`, `PAYOUT`, `TRANSFER`, and `STANDING_INSTRUCTION` (authorizing a rule-based account's sweep instruction), but the set is **non-exhaustive and may grow** — treat unrecognized values as a generic authorization step and do not branch program logic on it. Omitted when steps are not distinguished (e.g. a single-authorization flow).","example":"PAYOUT","uniqueKey":"data.items.[INDEX].previousQuote.scaChallenge.purpose.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].previousQuote.scaChallenge.purpose","typeLabel":"string | null"},"passkeyAssertionOptions":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Opaque WebAuthn assertion request options (including the relying-party id, challenge, and allowed credentials), present only when `factor` is `PASSKEY`. Pass to the device's WebAuthn API to produce the assertion submitted back in `ScaAuthorization.passkeyAssertion`.","uniqueKey":"data.items.[INDEX].previousQuote.scaChallenge.passkeyAssertionOptions.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"Opaque WebAuthn assertion request options (including the relying-party id, challenge, and allowed credentials), present only when `factor` is `PASSKEY`. Pass to the device's WebAuthn API to produce the assertion submitted back in `ScaAuthorization.passkeyAssertion`.","uniqueKey":"data.items.[INDEX].previousQuote.scaChallenge.passkeyAssertionOptions.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].previousQuote.scaChallenge.passkeyAssertionOptions","typeLabel":"object | null"},"passkeyAllowedOrigins":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"data.items.[INDEX].previousQuote.scaChallenge.passkeyAllowedOrigins.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"The origins the WebAuthn ceremony may run against. Populated for enrollment and login passkey challenges; the origin the assertion is produced against must be one of these and echoed back as `ScaAuthorization.origin`. Per-transaction passkey challenges omit this (they carry `passkeyAssertionOptions` only) — see `ScaAuthorization.origin` for how to source the origin in that case.","example":["https://app.example.com"],"uniqueKey":"data.items.[INDEX].previousQuote.scaChallenge.passkeyAllowedOrigins.oneOf.0","typeLabel":"string[]"},{"type":"null","items":{"type":"string"},"description":"The origins the WebAuthn ceremony may run against. Populated for enrollment and login passkey challenges; the origin the assertion is produced against must be one of these and echoed back as `ScaAuthorization.origin`. Per-transaction passkey challenges omit this (they carry `passkeyAssertionOptions` only) — see `ScaAuthorization.origin` for how to source the origin in that case.","example":["https://app.example.com"],"uniqueKey":"data.items.[INDEX].previousQuote.scaChallenge.passkeyAllowedOrigins.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].previousQuote.scaChallenge.passkeyAllowedOrigins","typeLabel":"string[] | null"}},"uniqueKey":"data.items.[INDEX].previousQuote.scaChallenge","typeLabel":"object"},"minimumReceivingAmount":{"oneOf":[{"type":"integer","format":"int64","description":"Smallest amount the recipient receives, in the smallest unit of `receivingCurrency`, for a quote to a `CHAIN_ADDRESS` destination. Grid pays the chain itself at a locked rate, so this equals `totalReceivingAmount`. Null for a quote whose destination is not `CHAIN_ADDRESS`.","example":1000,"uniqueKey":"data.items.[INDEX].previousQuote.minimumReceivingAmount.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"null","format":"int64","description":"Smallest amount the recipient receives, in the smallest unit of `receivingCurrency`, for a quote to a `CHAIN_ADDRESS` destination. Grid pays the chain itself at a locked rate, so this equals `totalReceivingAmount`. Null for a quote whose destination is not `CHAIN_ADDRESS`.","example":1000,"uniqueKey":"data.items.[INDEX].previousQuote.minimumReceivingAmount.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].previousQuote.minimumReceivingAmount","typeLabel":"integer\u003cint64> | null"},"destinationSparkAddress":{"type":"string","description":"The Spark address this quote pays, when its `destination` is one of the customer's `SPARK_WALLET` external accounts.","example":"spark1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu","uniqueKey":"data.items.[INDEX].previousQuote.destinationSparkAddress","typeLabel":"string"},"destinationChainAddress":{"title":"Chain Address","type":"object","required":["destinationType","network","currency","address"],"properties":{"destinationType":{"type":"string","enum":["CHAIN_ADDRESS"],"description":"Marks a destination on another chain.","example":"CHAIN_ADDRESS","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.destinationChainAddress.destinationType","typeLabel":"enum\u003cstring>"},"network":{"type":"string","enum":["BASE","ETHEREUM","SOLANA","POLYGON","ARBITRUM","TRON"],"description":"Network the recipient receives on.","example":"BASE","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.destinationChainAddress.network","typeLabel":"enum\u003cstring>"},"currency":{"type":"string","enum":["USDC","USDT"],"description":"Asset the recipient receives: `USDC` or `USDT`. `TRON` supports `USDT` only, and `BASE` supports `USDC` only.","example":"USDC","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.destinationChainAddress.currency","typeLabel":"enum\u003cstring>"},"address":{"type":"string","maxLength":128,"description":"Recipient address on `network`.","example":"0x1234567890abcdef1234567890abcdef12345678","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.destinationChainAddress.address","typeLabel":"string"}},"description":"The chain, address and stablecoin this quote pays, when it was created with a `CHAIN_ADDRESS` destination.","uniqueKey":"data.items.[INDEX].previousQuote.destinationChainAddress","typeLabel":"Chain Address · object"},"destinationLightningInvoice":{"title":"Lightning Invoice","type":"object","required":["destinationType","invoice"],"properties":{"destinationType":{"type":"string","enum":["LIGHTNING_INVOICE"],"description":"Marks a BOLT11 Lightning invoice destination.","example":"LIGHTNING_INVOICE","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.destinationLightningInvoice.destinationType","typeLabel":"enum\u003cstring>"},"invoice":{"type":"string","maxLength":4096,"description":"The BOLT11 invoice to pay. It must name an amount in whole satoshis, be for the platform's Bitcoin network, and not expire within the next minute.","example":"lnbc15u1p3xnhl2pp5jptserfk3zk4qy42tlucycrfwxhydvlemu9pqr93tuzlv9cc7g3sdqsvfhkcap3xyhx7un8cqzpgxqzjcsp5f8c52y2stc300gl6s4xswtjpc37hrnnr3c9wvtgjfuvqmpm35evq9qyyssqy4lgd8tj637qcjp05rdpxxykjenthxftej7a2zzmwrmrl70fyj9hvj0rewhzj7jfyuwkwcg9g2jpwtk3wkjtwnkdks84hsnu8xps5vsq4gj5hs","isRequired":true,"uniqueKey":"data.items.[INDEX].previousQuote.destinationLightningInvoice.invoice","typeLabel":"string"}},"description":"The invoice this quote pays, when it was created with a `LIGHTNING_INVOICE` destination.","uniqueKey":"data.items.[INDEX].previousQuote.destinationLightningInvoice","typeLabel":"Lightning Invoice · object"}},"uniqueKey":"data.items.[INDEX].previousQuote","typeLabel":"Agent Quote · object"},"priceTolerance":{"type":"object","description":"Present on a `PENDING_APPROVAL` `EXECUTE_QUOTE` action that Grid quotes again when it is approved after its quote expired: how far the price may move against the customer before they are asked again. Fixed when the action is created. Absent when approval can only execute `quote` as it is.","required":["basisPoints","minimumAmount","currency"],"properties":{"basisPoints":{"type":"integer","minimum":0,"description":"The share of the amount shown, in basis points. 100 is 1%.","example":100,"isRequired":true,"uniqueKey":"data.items.[INDEX].priceTolerance.basisPoints","typeLabel":"integer"},"minimumAmount":{"type":"integer","format":"int64","minimum":0,"description":"The least the price may move by, in the smallest unit of `currency`.","example":100,"isRequired":true,"uniqueKey":"data.items.[INDEX].priceTolerance.minimumAmount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"ISO 4217 code of `minimumAmount`. Known values are `USD`.","example":"USD","isRequired":true,"uniqueKey":"data.items.[INDEX].priceTolerance.currency","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].priceTolerance","typeLabel":"object"},"purchaseCard":{"type":"object","description":"The purchase card the agent asked for, so an approval decision can show its amount, limit, description and funding account. Present for `ISSUE_PURCHASE_CARD`.","required":["amount","spendLimit","currency","fundingSource"],"properties":{"amount":{"type":"integer","format":"int64","minimum":1,"description":"The purchase amount the agent asked for, in the smallest unit of `currency`.","example":4999,"isRequired":true,"uniqueKey":"data.items.[INDEX].purchaseCard.amount","typeLabel":"integer\u003cint64>"},"spendLimit":{"type":"integer","format":"int64","minimum":1,"description":"The most the card can be charged in its one purchase, in the smallest unit of `currency`: `amount` plus an allowance for tax and shipping of 15% of `amount`, at most 1000 (USD 10.00). For a recurring card it is `amount`, and it caps what the card can be charged in any trailing month: from a charge back to the same date a month earlier. The card issuer declines a charge above it, and it is the amount checked against the agent's policy when the card is requested.","example":5749,"isRequired":true,"uniqueKey":"data.items.[INDEX].purchaseCard.spendLimit","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","description":"ISO 4217 code of the purchase currency. Known values: `USD`. Treat an unrecognized value as a currency you cannot display rather than an error.","example":"USD","isRequired":true,"uniqueKey":"data.items.[INDEX].purchaseCard.currency","typeLabel":"string"},"fundingSource":{"type":"string","description":"The customer's Embedded Wallet internal account that pays for the purchase.","example":"InternalAccount:019542f5-b3e7-1d02-0000-000000000002","isRequired":true,"uniqueKey":"data.items.[INDEX].purchaseCard.fundingSource","typeLabel":"string"},"increaseCardId":{"type":"string","description":"The existing card being increased, present only on increase actions.","example":"Card:019542f5-b3e7-1d02-0000-000000000011","uniqueKey":"data.items.[INDEX].purchaseCard.increaseCardId","typeLabel":"string"},"previousAmount":{"type":"integer","format":"int64","minimum":1,"description":"Purchase amount before this increase, in USD cents.","example":4999,"uniqueKey":"data.items.[INDEX].purchaseCard.previousAmount","typeLabel":"integer\u003cint64>"},"previousSpendLimit":{"type":"integer","format":"int64","minimum":1,"description":"Issuer-enforced limit before this increase, in USD cents.","example":5749,"uniqueKey":"data.items.[INDEX].purchaseCard.previousSpendLimit","typeLabel":"integer\u003cint64>"},"description":{"type":"string","maxLength":255,"description":"What the agent said the card is for, such as the merchant and item. On an increase action, the agent's `reason` for the higher amount. Shown to the customer when they approve the card or the increase. Supplied by the agent and not verified by Grid.","example":"Running shoes from example-store.com","uniqueKey":"data.items.[INDEX].purchaseCard.description","typeLabel":"string"},"recurring":{"type":"boolean","description":"Whether the card is a recurring purchase card: locked to the first merchant that charges it and reusable there, up to `spendLimit` each trailing month, until it is closed. Absent or `false` for a single-use card.","example":false,"uniqueKey":"data.items.[INDEX].purchaseCard.recurring","typeLabel":"boolean"},"expiresAt":{"type":"string","format":"date-time","description":"When Grid closes the card if it has not been used. Present once a single-use card is issued; a recurring card has none.","example":"2026-10-26T15:30:00Z","uniqueKey":"data.items.[INDEX].purchaseCard.expiresAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"data.items.[INDEX].purchaseCard","typeLabel":"object"},"claimablePayout":{"type":"object","description":"The claimable payout the agent asked to send, so an approval decision can show its amount and recipient. Present for `CLAIMABLE_PAYOUT`. Approving the action makes the payout `AWAITING_CLAIM`; rejecting it, or letting it expire, ends the payout and releases its hold.","required":["id","agentId","customerId","platformCustomerId","status","sourceAccountId","amount","recipient","expiresAt","createdAt","updatedAt"],"properties":{"id":{"type":"string","description":"System-generated unique identifier.","example":"ClaimablePayout:019542f5-b3e7-1d02-0000-000000000077","isRequired":true,"uniqueKey":"data.items.[INDEX].claimablePayout.id","typeLabel":"string"},"agentId":{"type":"string","description":"The agent that sent the payout.","example":"Agent:019542f5-b3e7-1d02-0000-000000000042","isRequired":true,"uniqueKey":"data.items.[INDEX].claimablePayout.agentId","typeLabel":"string"},"customerId":{"type":"string","description":"The sender, the agent's customer.","example":"Customer:019542f5-b3e7-1d02-0000-000000000010","isRequired":true,"uniqueKey":"data.items.[INDEX].claimablePayout.customerId","typeLabel":"string"},"platformCustomerId":{"type":"string","description":"Platform-specific ID of the sender.","example":"user-a1b2c3","isRequired":true,"uniqueKey":"data.items.[INDEX].claimablePayout.platformCustomerId","typeLabel":"string"},"status":{"type":"string","enum":["PENDING_APPROVAL","AWAITING_CLAIM","CLAIMED","PAID","EXPIRED","CANCELLED","FAILED"],"description":"Status of a claimable payout. Grid holds the amount against the sender's\nEmbedded Wallet balance and the agent's spending limits from creation until\nthe payout is `PAID`, or releases it when the payout ends in any other\nstatus.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING_APPROVAL` | Waiting for the customer to approve the agent's request. No claim token can be issued yet |\n| `AWAITING_CLAIM` | Approved; the recipient can claim it with a claim token until `expiresAt` |\n| `CLAIMED` | The recipient confirmed a locked quote and Grid is paying her |\n| `PAID` | The payout reached the recipient's account |\n| `EXPIRED` | Not claimed by `expiresAt`, or not approved in time. The hold is released |\n| `CANCELLED` | Cancelled by the agent, or rejected by the customer. The hold is released |\n| `FAILED` | The payout could not be made; see `failureReason`. The hold is released |\n","isRequired":true,"uniqueKey":"data.items.[INDEX].claimablePayout.status","typeLabel":"enum\u003cstring>"},"sourceAccountId":{"type":"string","description":"The sender's `EMBEDDED_WALLET` internal account the payout is paid from.","example":"InternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123","isRequired":true,"uniqueKey":"data.items.[INDEX].claimablePayout.sourceAccountId","typeLabel":"string"},"amount":{"type":"object","description":"The amount held and sent, in the source account's currency.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"Amount in the smallest unit of the currency (e.g., cents for USD/EUR, satoshis for BTC)","example":12550,"isRequired":true,"uniqueKey":"data.items.[INDEX].claimablePayout.amount.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"object","properties":{"code":{"type":"string","description":"Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. \"BTC\" for Bitcoin, \"USDC\" for USDC, etc.)","example":"USD","uniqueKey":"data.items.[INDEX].claimablePayout.amount.currency.code","typeLabel":"string"},"name":{"type":"string","description":"Full name of the currency","example":"United States Dollar","uniqueKey":"data.items.[INDEX].claimablePayout.amount.currency.name","typeLabel":"string"},"symbol":{"type":"string","description":"Symbol of the currency","example":"$","uniqueKey":"data.items.[INDEX].claimablePayout.amount.currency.symbol","typeLabel":"string"},"decimals":{"type":"integer","description":"Number of decimal places for the currency","minimum":0,"example":2,"uniqueKey":"data.items.[INDEX].claimablePayout.amount.currency.decimals","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].claimablePayout.amount.currency","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].claimablePayout.amount","typeLabel":"object"},"recipient":{"type":"object","description":"The person a claimable payout is for. Exactly one of `phoneNumber` and `email` is set: the one-time code that proves the recipient holds the link goes there.","required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"What the sender calls the recipient. Shown to the customer when they approve the payout and in the message that carries the link; the recipient gives her legal name with her payout details.","example":"Maria","isRequired":true,"uniqueKey":"data.items.[INDEX].claimablePayout.recipient.name","typeLabel":"string"},"phoneNumber":{"type":"string","description":"The recipient's mobile number in E.164 format.","example":"+639171234567","uniqueKey":"data.items.[INDEX].claimablePayout.recipient.phoneNumber","typeLabel":"string"},"email":{"type":"string","format":"email","maxLength":254,"description":"The recipient's email address.","example":"maria@example.com","uniqueKey":"data.items.[INDEX].claimablePayout.recipient.email","typeLabel":"string\u003cemail>"},"country":{"type":"string","description":"ISO 3166-1 alpha-2 country the recipient is paid in. Defaults to the country of `phoneNumber`'s dialing code; required with `email`. Always present on a payout Grid returns. The recipient can choose another country when she claims.","pattern":"^[A-Z]{2}$","example":"PH","uniqueKey":"data.items.[INDEX].claimablePayout.recipient.country","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].claimablePayout.recipient","typeLabel":"object"},"expiresAt":{"type":"string","format":"date-time","description":"While `PENDING_APPROVAL`, the end of the approval window; from `AWAITING_CLAIM`, when the claim window ends, 7 days after approval. A payout not `PAID` by then, and not being paid, expires and its hold is released.","example":"2025-10-10T15:00:00Z","isRequired":true,"uniqueKey":"data.items.[INDEX].claimablePayout.expiresAt","typeLabel":"string\u003cdate-time>"},"createdAt":{"type":"string","format":"date-time","description":"When the agent sent the payout.","example":"2025-10-03T15:00:00Z","isRequired":true,"uniqueKey":"data.items.[INDEX].claimablePayout.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","description":"When the payout last changed.","example":"2025-10-03T15:02:00Z","isRequired":true,"uniqueKey":"data.items.[INDEX].claimablePayout.updatedAt","typeLabel":"string\u003cdate-time>"},"note":{"type":"string","maxLength":140,"description":"The sender's note to the recipient.","example":"Happy birthday, Mom","uniqueKey":"data.items.[INDEX].claimablePayout.note","typeLabel":"string"},"agentActionId":{"type":"string","description":"The `CLAIMABLE_PAYOUT` agent action the customer approves or rejects.","example":"AgentAction:019542f5-b3e7-1d02-0000-000000000099","uniqueKey":"data.items.[INDEX].claimablePayout.agentActionId","typeLabel":"string"},"externalAccountId":{"type":"string","description":"The external account Grid saved under the sender's customer for the recipient's payout details. Present once the recipient has claimed. An agent can pay it again as a saved recipient.","example":"ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965","uniqueKey":"data.items.[INDEX].claimablePayout.externalAccountId","typeLabel":"string"},"transactionId":{"type":"string","description":"The outgoing transaction that paid the recipient. Present once Grid sends the payout.","example":"Transaction:019542f5-b3e7-1d02-0000-000000000030","uniqueKey":"data.items.[INDEX].claimablePayout.transactionId","typeLabel":"string"},"receivedAmount":{"type":"object","description":"What the recipient receives, in her currency. Present once she has a locked quote.","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"Amount in the smallest unit of the currency (e.g., cents for USD/EUR, satoshis for BTC)","example":12550,"isRequired":true,"uniqueKey":"data.items.[INDEX].claimablePayout.receivedAmount.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"object","properties":{"code":{"type":"string","description":"Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. \"BTC\" for Bitcoin, \"USDC\" for USDC, etc.)","example":"USD","uniqueKey":"data.items.[INDEX].claimablePayout.receivedAmount.currency.code","typeLabel":"string"},"name":{"type":"string","description":"Full name of the currency","example":"United States Dollar","uniqueKey":"data.items.[INDEX].claimablePayout.receivedAmount.currency.name","typeLabel":"string"},"symbol":{"type":"string","description":"Symbol of the currency","example":"$","uniqueKey":"data.items.[INDEX].claimablePayout.receivedAmount.currency.symbol","typeLabel":"string"},"decimals":{"type":"integer","description":"Number of decimal places for the currency","minimum":0,"example":2,"uniqueKey":"data.items.[INDEX].claimablePayout.receivedAmount.currency.decimals","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].claimablePayout.receivedAmount.currency","typeLabel":"object"}},"uniqueKey":"data.items.[INDEX].claimablePayout.receivedAmount","typeLabel":"object"},"paymentRail":{"type":"string","description":"The rail the recipient chose. Present once she has claimed.","enum":["ACH","ACH_COLOMBIA","ACH_SAME_DAY","BANK_TRANSFER","BRE_B","CIPS","FAST","FASTER_PAYMENTS","FEDNOW","INSTAPAY","MOBILE_MONEY","NEFT","PAYNOW","PESONET","PIX","RTGS","RTP","SEPA","SEPA_INSTANT","SPEI","SWIFT","UNIONPAY","UPI","WIRE"],"example":"ACH","uniqueKey":"data.items.[INDEX].claimablePayout.paymentRail","typeLabel":"enum\u003cstring>"},"failureReason":{"type":"string","description":"Present only when `status` is `FAILED`.","enum":["INSUFFICIENT_FUNDS","RECIPIENT_REFUSED","AGENT_INACTIVE","PAYOUT_FAILED"],"uniqueKey":"data.items.[INDEX].claimablePayout.failureReason","typeLabel":"enum\u003cstring>"}},"uniqueKey":"data.items.[INDEX].claimablePayout","typeLabel":"object"},"storedCardUse":{"type":"object","description":"The stored card the agent asked to use, where, and for how much, so an approval decision can show them. Present for `USE_STORED_CARD`. Approving the action lets the agent collect a single-use link with `POST /agents/me/stored-cards/{storedCardId}/reveal` and `actionId`.","required":["storedCardId","card","merchant","amount","currency","purpose","needsCvc","autoApproved"],"properties":{"storedCardId":{"type":"string","maxLength":64,"description":"The stored card.","example":"StoredCard:019542f5-b3e7-1d02-0000-000000000077","isRequired":true,"uniqueKey":"data.items.[INDEX].storedCardUse.storedCardId","typeLabel":"string"},"card":{"type":"object","description":"What can be shown about a stored card. None of it is cardholder data a merchant could charge.","required":["lastFour","brand","funding","expiryMonth","expiryYear"],"properties":{"lastFour":{"type":"string","pattern":"^[0-9]{4}$","minLength":4,"maxLength":4,"description":"Last four digits of the card number.","example":"0005","isRequired":true,"uniqueKey":"data.items.[INDEX].storedCardUse.card.lastFour","typeLabel":"string"},"brand":{"type":"string","maxLength":32,"description":"The card network, from the issuer's BIN data. Known values: `VISA`, `MASTERCARD`, `AMERICAN_EXPRESS`, `DISCOVER`, `DINERS_CLUB`, `JCB`, `UNIONPAY`, `UNKNOWN`. Treat an unrecognized value as `UNKNOWN` rather than an error.","example":"VISA","isRequired":true,"uniqueKey":"data.items.[INDEX].storedCardUse.card.brand","typeLabel":"string"},"funding":{"type":"string","maxLength":32,"description":"How the card is funded, from the issuer's BIN data. Known values: `CREDIT`, `DEBIT`, `PREPAID`, `CHARGE`, `DEFERRED_DEBIT`, `UNKNOWN`. Treat an unrecognized value as `UNKNOWN` rather than an error.","example":"CREDIT","isRequired":true,"uniqueKey":"data.items.[INDEX].storedCardUse.card.funding","typeLabel":"string"},"expiryMonth":{"type":"integer","minimum":1,"maximum":12,"description":"Expiry month, 1 to 12.","example":8,"isRequired":true,"uniqueKey":"data.items.[INDEX].storedCardUse.card.expiryMonth","typeLabel":"integer"},"expiryYear":{"type":"integer","minimum":2000,"maximum":2199,"description":"Four-digit expiry year.","example":2029,"isRequired":true,"uniqueKey":"data.items.[INDEX].storedCardUse.card.expiryYear","typeLabel":"integer"},"issuerCountry":{"type":"string","minLength":2,"maxLength":2,"description":"ISO 3166-1 alpha-2 country of the card's issuer, when the BIN data names one.","example":"US","uniqueKey":"data.items.[INDEX].storedCardUse.card.issuerCountry","typeLabel":"string"},"nickname":{"type":"string","maxLength":64,"description":"The customer's own label for the card.","example":"Personal Visa","uniqueKey":"data.items.[INDEX].storedCardUse.card.nickname","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].storedCardUse.card","typeLabel":"object"},"merchant":{"type":"string","maxLength":255,"description":"Where the agent said the card will be used.","example":"example-store.com","isRequired":true,"uniqueKey":"data.items.[INDEX].storedCardUse.merchant","typeLabel":"string"},"amount":{"type":"integer","format":"int64","minimum":1,"description":"The amount the agent said it expects to be charged, in the smallest unit of `currency`.","example":4999,"isRequired":true,"uniqueKey":"data.items.[INDEX].storedCardUse.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"string","minLength":3,"maxLength":3,"description":"ISO 4217 code of `amount`.","example":"USD","isRequired":true,"uniqueKey":"data.items.[INDEX].storedCardUse.currency","typeLabel":"string"},"purpose":{"type":"string","maxLength":255,"description":"What the agent said the purchase is.","example":"Running shoes, size 10","isRequired":true,"uniqueKey":"data.items.[INDEX].storedCardUse.purpose","typeLabel":"string"},"needsCvc":{"type":"boolean","description":"Whether the agent asked for the security code. Approving such a use needs `storedCardCvc` on `POST /agents/{agentId}/actions/{actionId}/approve`.","example":false,"isRequired":true,"uniqueKey":"data.items.[INDEX].storedCardUse.needsCvc","typeLabel":"boolean"},"autoApproved":{"type":"boolean","description":"Whether Grid approved the use without asking, because the customer had chosen to auto-approve this agent at this merchant up to this amount. Such a use is created `APPROVED` and sent as an `AGENT_ACTION.APPROVED` webhook, so the platform can tell the customer of every use.","example":false,"isRequired":true,"uniqueKey":"data.items.[INDEX].storedCardUse.autoApproved","typeLabel":"boolean"},"linkIssuedAt":{"type":"string","format":"date-time","description":"When Grid issued the agent's single-use link. Absent until then.","example":"2026-11-06T15:00:30Z","uniqueKey":"data.items.[INDEX].storedCardUse.linkIssuedAt","typeLabel":"string\u003cdate-time>"},"revealedAt":{"type":"string","format":"date-time","description":"When the agent opened the link. Absent until then.","example":"2026-11-06T15:00:41Z","uniqueKey":"data.items.[INDEX].storedCardUse.revealedAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"data.items.[INDEX].storedCardUse","typeLabel":"object"},"settlementRule":{"type":"object","required":["id","customerId","name","status","priority","currency","match","splits","holdSeconds","achHoldSeconds","limits","createdAt","updatedAt"],"properties":{"id":{"type":"string","description":"System-generated unique settlement rule identifier","example":"SettlementRule:019542f5-b3e7-1d02-0000-000000000001","isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.id","typeLabel":"string"},"customerId":{"type":"string","example":"Customer:019542f5-b3e7-1d02-0000-000000000001","isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.customerId","typeLabel":"string"},"name":{"type":"string","example":"Glossier deal","isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.name","typeLabel":"string"},"status":{"type":"string","enum":["PENDING_APPROVAL","ACTIVE","PAUSED","DELETED"],"description":"Status of a settlement rule.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING_APPROVAL` | Proposed by an agent beyond its policy, waiting for the customer's approval. It fires on nothing. |\n| `ACTIVE` | Fires on the payments it matches. |\n| `PAUSED` | Fires on nothing. A payment it would have matched is tried against the customer's next rule. |\n| `DELETED` | Deleted. It fires on nothing and cannot be changed. |\n","isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.status","typeLabel":"enum\u003cstring>"},"priority":{"type":"integer","format":"int32","example":1,"isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.priority","typeLabel":"integer\u003cint32>"},"currency":{"type":"string","example":"USD","isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.currency","typeLabel":"string"},"match":{"type":"array","items":{"type":"object","description":"Conditions a payment must all meet. A selector with no conditions matches every payment in the rule's currency.","properties":{"creditedAccountId":{"type":"string","description":"The customer's internal account the payment credited.","example":"InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965","uniqueKey":"data.items.[INDEX].settlementRule.match.items.[INDEX].creditedAccountId","typeLabel":"string"},"ruleBasedAccountId":{"type":"string","description":"The rule-based account the payment arrived through.","example":"InternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d001","uniqueKey":"data.items.[INDEX].settlementRule.match.items.[INDEX].ruleBasedAccountId","typeLabel":"string"},"counterpartyName":{"type":"object","description":"A pattern for the sender name Grid records on a bank deposit (the\n`accountHolderName` of the deposit's bank account). Set exactly one of\n`prefix` and `contains`. The comparison trims both names and ignores\ncase, as the transaction list groups senders. A bank often truncates\nthe name. A payment with no recorded sender name never matches.\n","properties":{"prefix":{"type":"string","minLength":1,"maxLength":140,"description":"The sender name starts with this.","example":"GLOSSIER","uniqueKey":"data.items.[INDEX].settlementRule.match.items.[INDEX].counterpartyName.prefix","typeLabel":"string"},"contains":{"type":"string","minLength":1,"maxLength":140,"description":"The sender name contains this.","example":"glossier inc","uniqueKey":"data.items.[INDEX].settlementRule.match.items.[INDEX].counterpartyName.contains","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].settlementRule.match.items.[INDEX].counterpartyName","typeLabel":"object"},"receivedAtWalletAddress":{"type":"string","description":"The deposit address the payment was sent to.","example":"spark1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu","uniqueKey":"data.items.[INDEX].settlementRule.match.items.[INDEX].receivedAtWalletAddress","typeLabel":"string"},"rail":{"type":"string","enum":["ACH","ACH_COLOMBIA","ACH_SAME_DAY","BANK_TRANSFER","BRE_B","CIPS","FAST","FASTER_PAYMENTS","FEDNOW","INSTAPAY","MOBILE_MONEY","NEFT","PAYNOW","PESONET","PIX","RTGS","RTP","SEPA","SEPA_INSTANT","SPEI","SWIFT","UNIONPAY","UPI","WIRE"],"description":"The payment rail used for the transfer. Payment rails represent the underlying payment network or system used to move funds between accounts.\n\n`ACH_SAME_DAY` requests same-business-day settlement for a USD payout and is priced separately. It is subject to the NACHA per-entry same-day limit, which the network applies to every originator: $1,000,000 per entry, rising to $10,000,000 on 2027-09-17. A payout above that limit is rejected rather than slowed — check the amount before requesting this rail, or send it over `ACH`, which settles on the standard schedule and has no such limit.\n\n`ACH` will settle on the standard next-business-day schedule. Until a date we announce in advance, `ACH` continues to settle same-business-day on production platforms; it already settles next-business-day on sandbox platforms. To guarantee same-day settlement after that date, request `ACH_SAME_DAY`.","example":"ACH","uniqueKey":"data.items.[INDEX].settlementRule.match.items.[INDEX].rail","typeLabel":"enum\u003cstring>"}},"uniqueKey":"data.items.[INDEX].settlementRule.match.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.match","typeLabel":"object[]"},"splits":{"type":"array","items":{"type":"object","required":["position","share","destination"],"properties":{"share":{"type":"object","description":"How much of a payment a row pays. Set `basisPoints` for a `PERCENT` share, `amount` for a `FIXED` share, and neither for a `REMAINDER` share.","required":["type"],"properties":{"type":{"type":"string","enum":["PERCENT","FIXED","REMAINDER"],"description":"How a share is sized.\n\n| Type | Share |\n|------|-------|\n| `PERCENT` | `basisPoints` of the payment, rounded down to the smallest unit. |\n| `FIXED` | `amount`, in the smallest unit of the rule's currency. |\n| `REMAINDER` | What every other share leaves, in any row. At most one. |\n","isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.splits.items.[INDEX].share.type","typeLabel":"enum\u003cstring>"},"basisPoints":{"type":"integer","minimum":1,"maximum":10000,"description":"The share in basis points of the payment. Set for `PERCENT` shares only.","example":4000,"uniqueKey":"data.items.[INDEX].settlementRule.splits.items.[INDEX].share.basisPoints","typeLabel":"integer"},"amount":{"type":"integer","format":"int64","minimum":1,"maximum":9000000000000000,"description":"The share in the smallest unit of the rule's currency. Set for `FIXED` shares only.","example":50000,"uniqueKey":"data.items.[INDEX].settlementRule.splits.items.[INDEX].share.amount","typeLabel":"integer\u003cint64>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.splits.items.[INDEX].share","typeLabel":"object"},"destination":{"oneOf":[{"type":"object","title":"External Account","required":["destinationType","externalAccountId"],"properties":{"destinationType":{"type":"string","enum":["EXTERNAL_ACCOUNT"],"isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.splits.items.[INDEX].destination.oneOf.0.destinationType","typeLabel":"enum\u003cstring>"},"externalAccountId":{"type":"string","description":"An `ACTIVE` external account of the platform or of one of its customers.","example":"ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123","isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.splits.items.[INDEX].destination.oneOf.0.externalAccountId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.splits.items.[INDEX].destination.oneOf.0","typeLabel":"External Account · object"},{"type":"object","title":"Contact","description":"A person addressed by phone number or email, with the same fields as a claimable payout's recipient. Exactly one of `phoneNumber` and `email` is set.","required":["destinationType","name"],"properties":{"destinationType":{"type":"string","enum":["CONTACT"],"isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.splits.items.[INDEX].destination.oneOf.1.destinationType","typeLabel":"enum\u003cstring>"},"name":{"type":"string","minLength":1,"maxLength":100,"description":"What the platform calls the recipient.","example":"Maria","isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.splits.items.[INDEX].destination.oneOf.1.name","typeLabel":"string"},"phoneNumber":{"type":"string","description":"The recipient's mobile number in E.164 format.","example":"+639171234567","uniqueKey":"data.items.[INDEX].settlementRule.splits.items.[INDEX].destination.oneOf.1.phoneNumber","typeLabel":"string"},"email":{"type":"string","format":"email","maxLength":254,"description":"The recipient's email address.","example":"maria@example.com","uniqueKey":"data.items.[INDEX].settlementRule.splits.items.[INDEX].destination.oneOf.1.email","typeLabel":"string\u003cemail>"},"country":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country the recipient is paid in. Defaults to the country of `phoneNumber`'s dialing code; required with `email`.","example":"PH","uniqueKey":"data.items.[INDEX].settlementRule.splits.items.[INDEX].destination.oneOf.1.country","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.splits.items.[INDEX].destination.oneOf.1","typeLabel":"Contact · object"},{"type":"object","title":"Grid Customer","description":"An internal account on the platform, typically another customer's. The row is paid as a transfer between internal accounts and is held to the same rules as a quote between them.","required":["destinationType","accountId"],"properties":{"destinationType":{"type":"string","enum":["GRID_CUSTOMER"],"isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.splits.items.[INDEX].destination.oneOf.2.destinationType","typeLabel":"enum\u003cstring>"},"accountId":{"type":"string","description":"An internal account of the platform or of one of its customers.","example":"InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965","isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.splits.items.[INDEX].destination.oneOf.2.accountId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.splits.items.[INDEX].destination.oneOf.2","typeLabel":"Grid Customer · object"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.splits.items.[INDEX].destination","typeLabel":"External Account · object | Contact · object | Grid Customer · object"},"position":{"type":"integer","description":"The share's zero-based position in the rule. Shares are paid in this order.","example":0,"isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.splits.items.[INDEX].position","typeLabel":"integer"}},"uniqueKey":"data.items.[INDEX].settlementRule.splits.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.splits","typeLabel":"object[]"},"holdSeconds":{"type":"integer","example":0,"isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.holdSeconds","typeLabel":"integer"},"achHoldSeconds":{"type":"integer","example":86400,"isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.achHoldSeconds","typeLabel":"integer"},"limits":{"type":"object","description":"Caps on what the rule pays, in the smallest unit of its currency. An execution that would go over a cap is skipped with `LIMIT_EXCEEDED`, and the customer keeps the payment.","properties":{"maxAmountPerExecution":{"type":"integer","format":"int64","minimum":1,"maximum":9000000000000000,"description":"The most the shares of one payment may add up to.","example":1000000,"uniqueKey":"data.items.[INDEX].settlementRule.limits.maxAmountPerExecution","typeLabel":"integer\u003cint64>"},"maxAmountPerDay":{"type":"integer","format":"int64","minimum":1,"maximum":9000000000000000,"description":"The most the rule may pay out for the payments that completed in one UTC day.","example":5000000,"uniqueKey":"data.items.[INDEX].settlementRule.limits.maxAmountPerDay","typeLabel":"integer\u003cint64>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.limits","typeLabel":"object"},"createdAt":{"type":"string","format":"date-time","example":"2026-11-06T18:00:00Z","isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","example":"2026-11-06T18:00:00Z","isRequired":true,"uniqueKey":"data.items.[INDEX].settlementRule.updatedAt","typeLabel":"string\u003cdate-time>"},"agentId":{"type":"string","description":"The agent that created the rule through the agent API. Absent for a rule created with an API token.","example":"Agent:019542f5-b3e7-1d02-0000-000000000042","uniqueKey":"data.items.[INDEX].settlementRule.agentId","typeLabel":"string"},"agentActionId":{"type":"string","description":"The `CREATE_SETTLEMENT_RULE` agent action awaiting the customer's approval of the rule. Present while the rule is `PENDING_APPROVAL`.","example":"AgentAction:019542f5-b3e7-1d02-0000-000000000099","uniqueKey":"data.items.[INDEX].settlementRule.agentActionId","typeLabel":"string"},"pendingChangeActionId":{"type":"string","description":"The `UPDATE_SETTLEMENT_RULE` agent action holding a change to the rule's match, shares or limits until the customer approves it. Present while the change waits; the rule keeps its current terms until then.","example":"AgentAction:019542f5-b3e7-1d02-0000-000000000098","uniqueKey":"data.items.[INDEX].settlementRule.pendingChangeActionId","typeLabel":"string"}},"description":"The settlement rule the agent proposed, so an approval decision can show what it matches, who it pays and its limits. Present for `CREATE_SETTLEMENT_RULE` and `UPDATE_SETTLEMENT_RULE`. For `CREATE_SETTLEMENT_RULE`, approving the action makes the rule `ACTIVE`; rejecting it, or letting it expire, deletes it. For `UPDATE_SETTLEMENT_RULE`, it is the rule as the change would make it, with the rule's `id`; approving the action applies the change, and rejecting it, or letting it expire, drops it while the rule keeps its terms. Approving a rule does not approve its payments in advance. Each share is still checked against the agent's policy when it is sent.","uniqueKey":"data.items.[INDEX].settlementRule","typeLabel":"object"},"payoutRun":{"type":"object","description":"The payout run the agent created, so an approval decision can show every row. Present for `PAYOUT_RUN`. Approving the action starts the run; rejecting it, or letting it expire, cancels the run and skips every row. The approval covers each row's own approval, so no row waits for another.","required":["id","status","sourceAccountId","total","rowCount","rows"],"properties":{"id":{"type":"string","example":"PayoutRun:019542f5-b3e7-1d02-0000-000000000001","isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.id","typeLabel":"string"},"status":{"type":"string","enum":["VALIDATING","PENDING_APPROVAL","SCHEDULED","PROCESSING","COMPLETED","PARTIALLY_FAILED","FAILED","CANCELLED"],"description":"Status of a payout run.\n\n| Status | Description |\n|--------|-------------|\n| `VALIDATING` | Grid is validating the rows. No row is paid yet. |\n| `PENDING_APPROVAL` | An agent's run waiting for the customer to approve its `PAYOUT_RUN` action. No row is paid yet. Approving it makes the run `PROCESSING`; rejecting it, or letting it expire, makes it `CANCELLED`. |\n| `SCHEDULED` | Accepted, waiting for `scheduledAt`. |\n| `PROCESSING` | Rows are being paid. |\n| `COMPLETED` | Every accepted row completed or is held for a claim, and none failed. |\n| `PARTIALLY_FAILED` | At least one row completed or is held for a claim, and at least one failed. |\n| `FAILED` | No row completed or is held for a claim. |\n| `CANCELLED` | Cancelled. Rows that had not started are `SKIPPED`. |\n","isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.status","typeLabel":"enum\u003cstring>"},"sourceAccountId":{"type":"string","example":"InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965","isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.sourceAccountId","typeLabel":"string"},"total":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"Amount in the smallest unit of the currency (e.g., cents for USD/EUR, satoshis for BTC)","example":12550,"isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.total.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"object","properties":{"code":{"type":"string","description":"Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. \"BTC\" for Bitcoin, \"USDC\" for USDC, etc.)","example":"USD","uniqueKey":"data.items.[INDEX].payoutRun.total.currency.code","typeLabel":"string"},"name":{"type":"string","description":"Full name of the currency","example":"United States Dollar","uniqueKey":"data.items.[INDEX].payoutRun.total.currency.name","typeLabel":"string"},"symbol":{"type":"string","description":"Symbol of the currency","example":"$","uniqueKey":"data.items.[INDEX].payoutRun.total.currency.symbol","typeLabel":"string"},"decimals":{"type":"integer","description":"Number of decimal places for the currency","minimum":0,"example":2,"uniqueKey":"data.items.[INDEX].payoutRun.total.currency.decimals","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.total.currency","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.total","typeLabel":"object"},"rowCount":{"type":"integer","example":12,"isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.rowCount","typeLabel":"integer"},"rows":{"type":"array","items":{"type":"object","required":["clientRowId","amount","destination"],"properties":{"clientRowId":{"type":"string","example":"contractor-0042","isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.rows.items.[INDEX].clientRowId","typeLabel":"string"},"amount":{"type":"integer","format":"int64","description":"What leaves the wallet for this row, in the smallest unit of the run's currency.","example":25000000,"isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.rows.items.[INDEX].amount","typeLabel":"integer\u003cint64>"},"destination":{"oneOf":[{"type":"object","title":"External Account","required":["destinationType","externalAccountId"],"properties":{"destinationType":{"type":"string","enum":["EXTERNAL_ACCOUNT"],"isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.rows.items.[INDEX].destination.oneOf.0.destinationType","typeLabel":"enum\u003cstring>"},"externalAccountId":{"type":"string","description":"An `ACTIVE` external account of the platform or of one of its customers.","example":"ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123","isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.rows.items.[INDEX].destination.oneOf.0.externalAccountId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.rows.items.[INDEX].destination.oneOf.0","typeLabel":"External Account · object"},{"type":"object","title":"Contact","description":"A person addressed by phone number or email, with the same fields as a claimable payout's recipient. Exactly one of `phoneNumber` and `email` is set.","required":["destinationType","name"],"properties":{"destinationType":{"type":"string","enum":["CONTACT"],"isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.rows.items.[INDEX].destination.oneOf.1.destinationType","typeLabel":"enum\u003cstring>"},"name":{"type":"string","minLength":1,"maxLength":100,"description":"What the platform calls the recipient.","example":"Maria","isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.rows.items.[INDEX].destination.oneOf.1.name","typeLabel":"string"},"phoneNumber":{"type":"string","description":"The recipient's mobile number in E.164 format.","example":"+639171234567","uniqueKey":"data.items.[INDEX].payoutRun.rows.items.[INDEX].destination.oneOf.1.phoneNumber","typeLabel":"string"},"email":{"type":"string","format":"email","maxLength":254,"description":"The recipient's email address.","example":"maria@example.com","uniqueKey":"data.items.[INDEX].payoutRun.rows.items.[INDEX].destination.oneOf.1.email","typeLabel":"string\u003cemail>"},"country":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country the recipient is paid in. Defaults to the country of `phoneNumber`'s dialing code; required with `email`.","example":"PH","uniqueKey":"data.items.[INDEX].payoutRun.rows.items.[INDEX].destination.oneOf.1.country","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.rows.items.[INDEX].destination.oneOf.1","typeLabel":"Contact · object"},{"type":"object","title":"Grid Customer","description":"An internal account on the platform, typically another customer's. The row is paid as a transfer between internal accounts and is held to the same rules as a quote between them.","required":["destinationType","accountId"],"properties":{"destinationType":{"type":"string","enum":["GRID_CUSTOMER"],"isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.rows.items.[INDEX].destination.oneOf.2.destinationType","typeLabel":"enum\u003cstring>"},"accountId":{"type":"string","description":"An internal account of the platform or of one of its customers.","example":"InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965","isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.rows.items.[INDEX].destination.oneOf.2.accountId","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.rows.items.[INDEX].destination.oneOf.2","typeLabel":"Grid Customer · object"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.rows.items.[INDEX].destination","typeLabel":"External Account · object | Contact · object | Grid Customer · object"},"description":{"type":"string","example":"October invoice","uniqueKey":"data.items.[INDEX].payoutRun.rows.items.[INDEX].description","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].payoutRun.rows.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.items.[INDEX].payoutRun.rows","typeLabel":"object[]"}},"uniqueKey":"data.items.[INDEX].payoutRun","typeLabel":"object"},"cardId":{"type":"string","description":"The purchase card the action issued, or for an increase the card whose amount it raised. Present for an `ISSUE_PURCHASE_CARD` action once it is `APPROVED` and the card is issued or increased; read it with `GET /agents/me/cards/{cardId}`.","example":"Card:019542f5-b3e7-1d02-0000-000000000011","uniqueKey":"data.items.[INDEX].cardId","typeLabel":"string"},"transaction":{"oneOf":[{"type":"object","title":"Incoming Transaction","description":"The resulting transaction, populated once the action has been approved and execution has begun. Absent while the action is `PENDING_APPROVAL` or `REJECTED`.","required":["type","id","status","direction","destination","customerId","platformCustomerId"],"properties":{"id":{"type":"string","description":"Unique identifier for the transaction","example":"Transaction:019542f5-b3e7-1d02-0000-000000000004","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.id","typeLabel":"string"},"status":{"type":"string","enum":["CREATED","PENDING","PENDING_AUTHORIZATION","PROCESSING","COMPLETED","REJECTED","FAILED","REFUNDED","EXPIRED"],"description":"Status of a payment transaction.\n\n| Status | Description |\n|--------|-------------|\n| `CREATED` | Initial lookup has been created |\n| `PENDING` | Quote has been created |\n| `PENDING_AUTHORIZATION` | Awaiting Strong Customer Authentication. Only occurs for customers in a region where SCA is required (e.g. EU). The challenge is carried by the quote, not the transaction — fetch `GET /quotes/{quoteId}` using the transaction's `quoteId`, then authorize its `scaChallenge` via `POST /quotes/{quoteId}/authorize`. |\n| `PROCESSING` | Funding has been received and payment initiated |\n| `COMPLETED` | The funds are where settlement put them. A return that takes them back moves the transaction to `FAILED`, and the returned side's `railDetails` shows `RETURNED`. A transaction stays `COMPLETED` through a return only when a later step that can't be undone already used the funds |\n| `REJECTED` | Receiving institution or wallet rejected payment, payment has been refunded |\n| `FAILED` | The payment did not reach its destination, or the funds were sent back after it did. Not terminal for an incoming payment: a dishonored return restores the credit and moves it to `COMPLETED`. A returned payout stays `FAILED`, since it has already been refunded. Each step shows on the returned side's `railDetails` |\n| `REFUNDED` | Deprecated. A refund is reported on the transaction's `refund` object, and the status stays `FAILED` |\n| `EXPIRED` | Quote has expired. Terminal |\n","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.status","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"Type of transaction","enum":["INCOMING"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.type","typeLabel":"enum\u003cstring>"},"direction":{"type":"string","enum":["CREDIT","DEBIT"],"description":"Whether this transaction credits or debits the customer's account.","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.direction","typeLabel":"enum\u003cstring>"},"destination":{"oneOf":[{"type":"object","title":"Account Destination","description":"Destination account details","required":["accountId","destinationType"],"properties":{"destinationType":{"type":"string","description":"Type of transaction destination","enum":["ACCOUNT"],"example":"ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.destinationType","typeLabel":"enum\u003cstring>"},"accountId":{"type":"string","description":"Destination account identifier","example":"ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.accountId","typeLabel":"string"},"currency":{"type":"string","description":"Currency code for the destination","example":"EUR","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.currency","typeLabel":"string"},"railDetails":{"oneOf":[{"type":"object","title":"On-Chain Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","transactionHash","network"],"properties":{"paymentRail":{"type":"string","enum":["ONCHAIN"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.0.paymentRail","typeLabel":"enum\u003cstring>"},"transactionHash":{"type":"string","description":"On-chain transaction hash of the crypto transfer for this leg of the transaction.","example":"h82pJGF9p7kpzb6eU326EFZf2cDnimbTFVeJtx1qtBmUNJAEqN76R7PwPfHt3oWb8R6cKvhgyxQdDn53jFrK6wFx","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.0.transactionHash","typeLabel":"string"},"network":{"type":"string","enum":["BITCOIN","ETHEREUM","SOLANA","BASE","POLYGON","TRON","PLASMA","ARBITRUM","SPARK"],"description":"Blockchain network the transaction settled on (mainnet vs test network is determined by your platform environment).","example":"SOLANA","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.0.network","typeLabel":"enum\u003cstring>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.0","typeLabel":"On-Chain Transfer · object"},{"type":"object","title":"ACH Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["ACH","ACH_SAME_DAY"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.1.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","RETURNED","RETURN_DISHONORED","RETURN_CONTESTED","REVERSED","FAILED"],"description":"Status of the entry on the ACH network.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted to the ACH network and not yet settled. |\n| `SETTLED` | The entry settled. |\n| `RETURNED` | The receiving bank returned the entry, before or after it settled. |\n| `RETURN_DISHONORED` | The originating bank dishonored the return, so the returned funds came back. |\n| `RETURN_CONTESTED` | The receiving bank contested the dishonor, so the funds went back again. |\n| `REVERSED` | The originator reversed the entry after it settled. |\n| `FAILED` | The entry was rejected before submission and no funds moved. |\n\nA return, dishonor or contest can arrive days after the step before it. This status\nreports the ACH entry; the transaction's top-level `status` reports where the funds\nare now. A return moves the transaction to `FAILED`. On an incoming payment, a\ndishonor brings the credit back and moves it to `COMPLETED`, and a contest moves it\nto `FAILED` again. A returned payout stays `FAILED` through a dishonor, since it has\nalready been refunded; the rail status still records the dishonor.","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.1.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"title":"US Bank Account Details","type":"object","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.1.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.1.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.1.bankAccount.accountNumber","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.1.bankAccount","typeLabel":"US Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.1.settledAt","typeLabel":"string\u003cdate-time>"},"traceNumber":{"type":"string","description":"15-digit ACH trace number of the entry.","example":"021000020123456","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.1.traceNumber","typeLabel":"string"},"statementDescriptor":{"type":"string","maxLength":10,"description":"The entry's Company Entry Description, which the receiving bank shows on the account holder's statement. On payments you originate, this is the quote's `statementDescriptor`, or Grid's default.","example":"PAYROLL","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.1.statementDescriptor","typeLabel":"string"},"addenda":{"type":"string","description":"Payment-related text carried in the entry's addenda record. On payments you originate, this is the `remittanceInformation` you provided.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.1.addenda","typeLabel":"string"},"returnedAt":{"type":"string","format":"date-time","description":"When the receiving bank returned the entry. Present once the entry has been returned, including after a later dishonor or contest.","example":"2026-10-01T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.1.returnedAt","typeLabel":"string\u003cdate-time>"},"returnCode":{"type":"string","pattern":"^R[0-9]{2}$","description":"The NACHA return reason code the receiving bank returned the entry under, such as `R01` (insufficient funds) or `R10` (customer advises unauthorized). Present whenever `returnedAt` is. Group returns by this code to track your return rate for each reason, or by `returnCategory` for Nacha's threshold categories. NACHA may add codes, so accept any value matching the pattern.","example":"R01","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.1.returnCode","typeLabel":"string"},"returnCategory":{"type":"string","enum":["ADMINISTRATIVE","UNAUTHORIZED"],"description":"The Nacha return-rate category `returnCode` counts toward. Present only when the code is in one, so a return such as `R01` has `returnCode` but no `returnCategory`.","example":"UNAUTHORIZED","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.1.returnCategory","typeLabel":"enum\u003cstring>"},"dishonoredAt":{"type":"string","format":"date-time","description":"When the originating bank dishonored the return. Present once `status` has reached `RETURN_DISHONORED`.","example":"2026-10-04T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.1.dishonoredAt","typeLabel":"string\u003cdate-time>"},"contestedAt":{"type":"string","format":"date-time","description":"When the receiving bank contested the dishonor. Present when `status` is `RETURN_CONTESTED`.","example":"2026-10-07T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.1.contestedAt","typeLabel":"string\u003cdate-time>"},"reversedAt":{"type":"string","format":"date-time","description":"When the originator reversed the entry. Present when `status` is `REVERSED`.","example":"2026-10-01T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.1.reversedAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.1","typeLabel":"ACH Transfer · object"},{"type":"object","title":"Wire Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["WIRE"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.2.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","FAILED"],"description":"Status of the wire on Fedwire.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted to Fedwire and not yet delivered. |\n| `SETTLED` | Fedwire delivered the wire. |\n| `FAILED` | Fedwire or the receiving bank rejected the wire and no funds moved. |","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.2.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"type":"object","title":"Wire Bank Account Details","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.2.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.2.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.2.bankAccount.accountNumber","typeLabel":"string"},"bankName":{"type":"string","description":"Name of the account's bank.","example":"Chase Bank","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.2.bankAccount.bankName","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.2.bankAccount","typeLabel":"Wire Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.2.settledAt","typeLabel":"string\u003cdate-time>"},"imad":{"type":"string","description":"Fedwire Input Message Accountability Data assigned when the wire was sent.","example":"20260929MMQFMP9C000123","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.2.imad","typeLabel":"string"},"originatorToBeneficiaryInformation":{"type":"string","description":"Free-form originator-to-beneficiary information (OBI) sent with the wire.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.2.originatorToBeneficiaryInformation","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.2","typeLabel":"Wire Transfer · object"},{"type":"object","title":"FedNow Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["FEDNOW"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.3.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","FAILED"],"description":"Status of the payment on FedNow.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted and awaiting the receiving bank's response. |\n| `SETTLED` | The receiving bank accepted the payment and the funds settled. |\n| `FAILED` | The receiving bank or the network rejected the payment and no funds moved. |","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.3.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"title":"US Bank Account Details","type":"object","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.3.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.3.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.3.bankAccount.accountNumber","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.3.bankAccount","typeLabel":"US Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.3.settledAt","typeLabel":"string\u003cdate-time>"},"endToEndId":{"type":"string","description":"The originator's end-to-end reference for the payment.","example":"E2E-9f2c6b6f","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.3.endToEndId","typeLabel":"string"},"remittanceInformation":{"type":"string","description":"Unstructured remittance information sent with the payment.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.3.remittanceInformation","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.3","typeLabel":"FedNow Transfer · object"},{"type":"object","title":"RTP Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["RTP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.4.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","FAILED"],"description":"Status of the payment on the RTP network.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted and awaiting the receiving bank's response. |\n| `SETTLED` | The receiving bank accepted the payment and the funds settled. |\n| `FAILED` | The receiving bank or the network rejected the payment and no funds moved. |","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.4.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"title":"US Bank Account Details","type":"object","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.4.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.4.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.4.bankAccount.accountNumber","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.4.bankAccount","typeLabel":"US Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.4.settledAt","typeLabel":"string\u003cdate-time>"},"endToEndId":{"type":"string","description":"The originator's end-to-end reference for the payment.","example":"E2E-9f2c6b6f","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.4.endToEndId","typeLabel":"string"},"remittanceInformation":{"type":"string","description":"Unstructured remittance information sent with the payment.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.4.remittanceInformation","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.4","typeLabel":"RTP Transfer · object"},{"type":"object","title":"SWIFT Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail"],"properties":{"paymentRail":{"type":"string","enum":["SWIFT"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.5.paymentRail","typeLabel":"enum\u003cstring>"},"uetr":{"type":"string","format":"uuid","description":"Unique End-to-end Transaction Reference of the wire. Give it to the beneficiary's bank to trace the payment.","example":"f47bbdd1-3d90-44c4-998d-a02bd814d5d3","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.5.uetr","typeLabel":"string\u003cuuid>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails.oneOf.5","typeLabel":"SWIFT Transfer · object"}],"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.railDetails","typeLabel":"On-Chain Transfer · object | ACH Transfer · object | Wire Transfer · object | FedNow Transfer · object | RTP Transfer · object | SWIFT Transfer · object"},"onChainTransaction":{"type":"object","required":["transactionHash","network"],"properties":{"transactionHash":{"type":"string","description":"On-chain transaction hash of the crypto transfer for this leg of the transaction.","example":"h82pJGF9p7kpzb6eU326EFZf2cDnimbTFVeJtx1qtBmUNJAEqN76R7PwPfHt3oWb8R6cKvhgyxQdDn53jFrK6wFx","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.onChainTransaction.transactionHash","typeLabel":"string"},"network":{"type":"string","enum":["BITCOIN","ETHEREUM","SOLANA","BASE","POLYGON","TRON","PLASMA","ARBITRUM","SPARK"],"description":"Blockchain network the transaction settled on (mainnet vs test network is determined by your platform environment).","example":"SOLANA","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.onChainTransaction.network","typeLabel":"enum\u003cstring>"}},"deprecated":true,"description":"Deprecated. Use `railDetails`, which carries the same hash and network when `paymentRail` is `ONCHAIN`.","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0.onChainTransaction","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.0","typeLabel":"Account Destination · object"},{"type":"object","title":"UMA Address Destination","description":"UMA address destination details","required":["umaAddress","destinationType"],"properties":{"destinationType":{"type":"string","description":"Type of transaction destination","enum":["UMA_ADDRESS"],"example":"ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.1.destinationType","typeLabel":"enum\u003cstring>"},"umaAddress":{"type":"string","description":"UMA address of the recipient","example":"$receiver@uma.domain.com","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.1.umaAddress","typeLabel":"string"},"currency":{"type":"string","description":"Currency code for the destination","example":"EUR","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.1.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination.oneOf.1","typeLabel":"UMA Address Destination · object"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.destination","typeLabel":"Account Destination · object | UMA Address Destination · object"},"customerId":{"type":"string","description":"System ID of the customer this transaction belongs to","example":"Customer:019542f5-b3e7-1d02-0000-000000000001","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.customerId","typeLabel":"string"},"platformCustomerId":{"type":"string","description":"Platform-specific ID of the customer this transaction belongs to","example":"18d3e5f7b4a9c2","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.platformCustomerId","typeLabel":"string"},"pendingReason":{"type":"string","enum":["COUNTERPARTY_DECLARATION_REQUIRED","WALLET_VERIFICATION_REQUIRED","COUNTERPARTY_INFORMATION_REQUIRED","COMPLIANCE_REVIEW"],"description":"Present when compliance review or required customer action is delaying settlement.","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.pendingReason","typeLabel":"enum\u003cstring>"},"ruleBasedAccountId":{"type":"string","description":"The `RULE_BASED` internal account whose deposit this transaction sweeps. Present only on sweep transactions. For these, `source` describes the party that made the deposit when it is known, and is this account otherwise.","example":"InternalAccount:019542f5-b3e7-1d02-0000-000000000011","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.ruleBasedAccountId","typeLabel":"string"},"settledAt":{"type":"string","format":"date-time","description":"When the payment was or will be settled","example":"2025-08-15T14:30:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.settledAt","typeLabel":"string\u003cdate-time>"},"createdAt":{"type":"string","format":"date-time","description":"When the transaction was created","example":"2025-08-15T14:25:18Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","description":"When the transaction was last updated","example":"2025-08-15T14:30:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.updatedAt","typeLabel":"string\u003cdate-time>"},"receiptDeliveryConfirmedAt":{"type":"string","format":"date-time","description":"The time at which the platform confirmed delivery of the receipt to their customer.","example":"2025-08-15T14:31:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.receiptDeliveryConfirmedAt","typeLabel":"string\u003cdate-time>"},"agentId":{"type":"string","description":"If this transaction was initiated by an agent, the system-generated ID of that agent. Absent for platform-initiated transactions.","example":"Agent:019542f5-b3e7-1d02-0000-000000000042","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.agentId","typeLabel":"string"},"description":{"type":"string","description":"Optional memo or description for the payment","example":"Payment for invoice #1234","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.description","typeLabel":"string"},"sentAmount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"Amount in the smallest unit of the currency (e.g., cents for USD/EUR, satoshis for BTC)","example":12550,"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.sentAmount.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"object","properties":{"code":{"type":"string","description":"Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. \"BTC\" for Bitcoin, \"USDC\" for USDC, etc.)","example":"USD","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.sentAmount.currency.code","typeLabel":"string"},"name":{"type":"string","description":"Full name of the currency","example":"United States Dollar","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.sentAmount.currency.name","typeLabel":"string"},"symbol":{"type":"string","description":"Symbol of the currency","example":"$","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.sentAmount.currency.symbol","typeLabel":"string"},"decimals":{"type":"integer","description":"Number of decimal places for the currency","minimum":0,"example":2,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.sentAmount.currency.decimals","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.sentAmount.currency","typeLabel":"object"}},"description":"Amount sent in the sender's currency","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.sentAmount","typeLabel":"object"},"exchangeRate":{"type":"number","description":"Number of sending currency units per receiving currency unit. The rate is fee-exclusive: Grid deducts fees from the sending amount before converting at this rate.","exclusiveMinimum":0,"example":1.08,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.exchangeRate","typeLabel":"number"},"quoteId":{"type":"string","description":"The ID of the quote that was used to trigger this payment","example":"Quote:019542f5-b3e7-1d02-0000-000000000006","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.quoteId","typeLabel":"string"},"refund":{"type":"object","required":["reference","initiatedAt","status"],"properties":{"reference":{"type":"string","description":"The unique reference ID of the refund","example":"UMA-Q12345-REFUND","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.refund.reference","typeLabel":"string"},"initiatedAt":{"type":"string","format":"date-time","description":"When the refund was initiated","example":"2025-08-15T14:30:00Z","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.refund.initiatedAt","typeLabel":"string\u003cdate-time>"},"status":{"type":"string","enum":["PENDING","COMPLETED","FAILED"],"description":"Current status of the refund","example":"COMPLETED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.refund.status","typeLabel":"enum\u003cstring>"},"settledAt":{"type":"string","format":"date-time","description":"When the refund was settled","example":"2025-08-15T14:35:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.refund.settledAt","typeLabel":"string\u003cdate-time>"},"reason":{"type":"string","enum":["TRANSACTION_FAILED","USER_CANCELLATION","TIMEOUT"],"description":"Reason for the refund","example":"TRANSACTION_FAILED","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.refund.reason","typeLabel":"enum\u003cstring>"}},"description":"The refund if transaction was refunded.","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.refund","typeLabel":"object"},"counterpartyInformation":{"type":"object","description":"Additional information about the counterparty, if available and relevant to the transaction and platform.","additionalProperties":true,"example":{"FULL_NAME":"John Sender","BIRTH_DATE":"1985-06-15","NATIONALITY":"DE"},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.counterpartyInformation","typeLabel":"object"},"source":{"oneOf":[{"type":"object","title":"Account Source","description":"Source account details","required":["accountId","sourceType"],"properties":{"sourceType":{"type":"string","description":"Type of transaction source","enum":["ACCOUNT"],"example":"ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.sourceType","typeLabel":"enum\u003cstring>"},"accountId":{"type":"string","description":"Source account identifier","example":"InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.accountId","typeLabel":"string"},"currency":{"type":"string","description":"Currency code for the source","example":"USD","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.currency","typeLabel":"string"},"railDetails":{"oneOf":[{"type":"object","title":"On-Chain Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","transactionHash","network"],"properties":{"paymentRail":{"type":"string","enum":["ONCHAIN"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.0.paymentRail","typeLabel":"enum\u003cstring>"},"transactionHash":{"type":"string","description":"On-chain transaction hash of the crypto transfer for this leg of the transaction.","example":"h82pJGF9p7kpzb6eU326EFZf2cDnimbTFVeJtx1qtBmUNJAEqN76R7PwPfHt3oWb8R6cKvhgyxQdDn53jFrK6wFx","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.0.transactionHash","typeLabel":"string"},"network":{"type":"string","enum":["BITCOIN","ETHEREUM","SOLANA","BASE","POLYGON","TRON","PLASMA","ARBITRUM","SPARK"],"description":"Blockchain network the transaction settled on (mainnet vs test network is determined by your platform environment).","example":"SOLANA","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.0.network","typeLabel":"enum\u003cstring>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.0","typeLabel":"On-Chain Transfer · object"},{"type":"object","title":"ACH Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["ACH","ACH_SAME_DAY"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.1.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","RETURNED","RETURN_DISHONORED","RETURN_CONTESTED","REVERSED","FAILED"],"description":"Status of the entry on the ACH network.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted to the ACH network and not yet settled. |\n| `SETTLED` | The entry settled. |\n| `RETURNED` | The receiving bank returned the entry, before or after it settled. |\n| `RETURN_DISHONORED` | The originating bank dishonored the return, so the returned funds came back. |\n| `RETURN_CONTESTED` | The receiving bank contested the dishonor, so the funds went back again. |\n| `REVERSED` | The originator reversed the entry after it settled. |\n| `FAILED` | The entry was rejected before submission and no funds moved. |\n\nA return, dishonor or contest can arrive days after the step before it. This status\nreports the ACH entry; the transaction's top-level `status` reports where the funds\nare now. A return moves the transaction to `FAILED`. On an incoming payment, a\ndishonor brings the credit back and moves it to `COMPLETED`, and a contest moves it\nto `FAILED` again. A returned payout stays `FAILED` through a dishonor, since it has\nalready been refunded; the rail status still records the dishonor.","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.1.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"title":"US Bank Account Details","type":"object","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.1.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.1.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.1.bankAccount.accountNumber","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.1.bankAccount","typeLabel":"US Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.1.settledAt","typeLabel":"string\u003cdate-time>"},"traceNumber":{"type":"string","description":"15-digit ACH trace number of the entry.","example":"021000020123456","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.1.traceNumber","typeLabel":"string"},"statementDescriptor":{"type":"string","maxLength":10,"description":"The entry's Company Entry Description, which the receiving bank shows on the account holder's statement. On payments you originate, this is the quote's `statementDescriptor`, or Grid's default.","example":"PAYROLL","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.1.statementDescriptor","typeLabel":"string"},"addenda":{"type":"string","description":"Payment-related text carried in the entry's addenda record. On payments you originate, this is the `remittanceInformation` you provided.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.1.addenda","typeLabel":"string"},"returnedAt":{"type":"string","format":"date-time","description":"When the receiving bank returned the entry. Present once the entry has been returned, including after a later dishonor or contest.","example":"2026-10-01T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.1.returnedAt","typeLabel":"string\u003cdate-time>"},"returnCode":{"type":"string","pattern":"^R[0-9]{2}$","description":"The NACHA return reason code the receiving bank returned the entry under, such as `R01` (insufficient funds) or `R10` (customer advises unauthorized). Present whenever `returnedAt` is. Group returns by this code to track your return rate for each reason, or by `returnCategory` for Nacha's threshold categories. NACHA may add codes, so accept any value matching the pattern.","example":"R01","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.1.returnCode","typeLabel":"string"},"returnCategory":{"type":"string","enum":["ADMINISTRATIVE","UNAUTHORIZED"],"description":"The Nacha return-rate category `returnCode` counts toward. Present only when the code is in one, so a return such as `R01` has `returnCode` but no `returnCategory`.","example":"UNAUTHORIZED","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.1.returnCategory","typeLabel":"enum\u003cstring>"},"dishonoredAt":{"type":"string","format":"date-time","description":"When the originating bank dishonored the return. Present once `status` has reached `RETURN_DISHONORED`.","example":"2026-10-04T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.1.dishonoredAt","typeLabel":"string\u003cdate-time>"},"contestedAt":{"type":"string","format":"date-time","description":"When the receiving bank contested the dishonor. Present when `status` is `RETURN_CONTESTED`.","example":"2026-10-07T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.1.contestedAt","typeLabel":"string\u003cdate-time>"},"reversedAt":{"type":"string","format":"date-time","description":"When the originator reversed the entry. Present when `status` is `REVERSED`.","example":"2026-10-01T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.1.reversedAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.1","typeLabel":"ACH Transfer · object"},{"type":"object","title":"Wire Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["WIRE"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.2.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","FAILED"],"description":"Status of the wire on Fedwire.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted to Fedwire and not yet delivered. |\n| `SETTLED` | Fedwire delivered the wire. |\n| `FAILED` | Fedwire or the receiving bank rejected the wire and no funds moved. |","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.2.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"type":"object","title":"Wire Bank Account Details","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.2.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.2.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.2.bankAccount.accountNumber","typeLabel":"string"},"bankName":{"type":"string","description":"Name of the account's bank.","example":"Chase Bank","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.2.bankAccount.bankName","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.2.bankAccount","typeLabel":"Wire Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.2.settledAt","typeLabel":"string\u003cdate-time>"},"imad":{"type":"string","description":"Fedwire Input Message Accountability Data assigned when the wire was sent.","example":"20260929MMQFMP9C000123","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.2.imad","typeLabel":"string"},"originatorToBeneficiaryInformation":{"type":"string","description":"Free-form originator-to-beneficiary information (OBI) sent with the wire.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.2.originatorToBeneficiaryInformation","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.2","typeLabel":"Wire Transfer · object"},{"type":"object","title":"FedNow Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["FEDNOW"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.3.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","FAILED"],"description":"Status of the payment on FedNow.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted and awaiting the receiving bank's response. |\n| `SETTLED` | The receiving bank accepted the payment and the funds settled. |\n| `FAILED` | The receiving bank or the network rejected the payment and no funds moved. |","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.3.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"title":"US Bank Account Details","type":"object","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.3.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.3.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.3.bankAccount.accountNumber","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.3.bankAccount","typeLabel":"US Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.3.settledAt","typeLabel":"string\u003cdate-time>"},"endToEndId":{"type":"string","description":"The originator's end-to-end reference for the payment.","example":"E2E-9f2c6b6f","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.3.endToEndId","typeLabel":"string"},"remittanceInformation":{"type":"string","description":"Unstructured remittance information sent with the payment.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.3.remittanceInformation","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.3","typeLabel":"FedNow Transfer · object"},{"type":"object","title":"RTP Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["RTP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.4.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","FAILED"],"description":"Status of the payment on the RTP network.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted and awaiting the receiving bank's response. |\n| `SETTLED` | The receiving bank accepted the payment and the funds settled. |\n| `FAILED` | The receiving bank or the network rejected the payment and no funds moved. |","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.4.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"title":"US Bank Account Details","type":"object","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.4.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.4.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.4.bankAccount.accountNumber","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.4.bankAccount","typeLabel":"US Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.4.settledAt","typeLabel":"string\u003cdate-time>"},"endToEndId":{"type":"string","description":"The originator's end-to-end reference for the payment.","example":"E2E-9f2c6b6f","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.4.endToEndId","typeLabel":"string"},"remittanceInformation":{"type":"string","description":"Unstructured remittance information sent with the payment.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.4.remittanceInformation","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.4","typeLabel":"RTP Transfer · object"},{"type":"object","title":"SWIFT Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail"],"properties":{"paymentRail":{"type":"string","enum":["SWIFT"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.5.paymentRail","typeLabel":"enum\u003cstring>"},"uetr":{"type":"string","format":"uuid","description":"Unique End-to-end Transaction Reference of the wire. Give it to the beneficiary's bank to trace the payment.","example":"f47bbdd1-3d90-44c4-998d-a02bd814d5d3","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.5.uetr","typeLabel":"string\u003cuuid>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails.oneOf.5","typeLabel":"SWIFT Transfer · object"}],"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.railDetails","typeLabel":"On-Chain Transfer · object | ACH Transfer · object | Wire Transfer · object | FedNow Transfer · object | RTP Transfer · object | SWIFT Transfer · object"},"onChainTransaction":{"type":"object","required":["transactionHash","network"],"properties":{"transactionHash":{"type":"string","description":"On-chain transaction hash of the crypto transfer for this leg of the transaction.","example":"h82pJGF9p7kpzb6eU326EFZf2cDnimbTFVeJtx1qtBmUNJAEqN76R7PwPfHt3oWb8R6cKvhgyxQdDn53jFrK6wFx","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.onChainTransaction.transactionHash","typeLabel":"string"},"network":{"type":"string","enum":["BITCOIN","ETHEREUM","SOLANA","BASE","POLYGON","TRON","PLASMA","ARBITRUM","SPARK"],"description":"Blockchain network the transaction settled on (mainnet vs test network is determined by your platform environment).","example":"SOLANA","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.onChainTransaction.network","typeLabel":"enum\u003cstring>"}},"deprecated":true,"description":"Deprecated. Use `railDetails`, which carries the same hash and network when `paymentRail` is `ONCHAIN`.","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0.onChainTransaction","typeLabel":"object"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.0","typeLabel":"Account Source · object"},{"type":"object","title":"UMA Address Source","description":"UMA address source details","required":["umaAddress","sourceType"],"properties":{"sourceType":{"type":"string","description":"Type of transaction source","enum":["UMA_ADDRESS"],"example":"ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.1.sourceType","typeLabel":"enum\u003cstring>"},"umaAddress":{"type":"string","description":"UMA address of the sender","example":"$sender@uma.domain.com","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.1.umaAddress","typeLabel":"string"},"currency":{"type":"string","description":"Currency code for the source","example":"USD","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.1.currency","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.1","typeLabel":"UMA Address Source · object"},{"type":"object","title":"External Funding Source","description":"Transaction was funded using an external funding source. `railDetails` describes the transfer that delivered the funds; its fields are populated on a best-effort basis depending on what the funding source provides. Rails without a `railDetails` variant, such as SWIFT, carry the originator's details in the deprecated flat fields only.","required":["currency","sourceType"],"properties":{"sourceType":{"type":"string","description":"Type of transaction source","enum":["REALTIME_FUNDING"],"example":"ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.sourceType","typeLabel":"enum\u003cstring>"},"currency":{"type":"string","description":"Currency code for the funding source","example":"USDC","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.currency","typeLabel":"string"},"customerId":{"type":"string","description":"The customer on whose behalf the transaction was initiated.","example":"Customer:019542f5-b3e7-1d02-0000-000000000009","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.customerId","typeLabel":"string"},"accountHolderName":{"type":"string","deprecated":true,"description":"Deprecated. Use `railDetails.bankAccount.accountHolderName`. The name of the originator (sender) of the payment. Still populated on rails without a `railDetails` variant, such as SWIFT.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.accountHolderName","typeLabel":"string"},"accountIdentifier":{"type":"string","deprecated":true,"description":"Deprecated. Use `railDetails.bankAccount.accountNumber`. The originator's account number or IBAN. May be masked or partial depending on the rail. Still populated on rails without a `railDetails` variant, such as SWIFT.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.accountIdentifier","typeLabel":"string"},"bankName":{"type":"string","deprecated":true,"description":"Deprecated. Use `railDetails.bankAccount.bankName` on wires. The name of the originating bank. Still populated on rails without a `railDetails` variant, such as SWIFT.","example":"Chase Bank","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.bankName","typeLabel":"string"},"bankIdentifier":{"type":"string","deprecated":true,"description":"Deprecated. Use `railDetails.bankAccount.routingNumber`. The identifier of the originating bank, such as a routing number, BIC, or SWIFT code. Still populated on rails without a `railDetails` variant, such as SWIFT.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.bankIdentifier","typeLabel":"string"},"paymentRail":{"type":"string","description":"Deprecated. Use `railDetails.paymentRail`. The payment rail the funds arrived on. Still populated on rails without a `railDetails` variant, such as SWIFT.","enum":["ACH","ACH_COLOMBIA","ACH_SAME_DAY","BANK_TRANSFER","BRE_B","CIPS","FAST","FASTER_PAYMENTS","FEDNOW","INSTAPAY","MOBILE_MONEY","NEFT","PAYNOW","PESONET","PIX","RTGS","RTP","SEPA","SEPA_INSTANT","SPEI","SWIFT","UNIONPAY","UPI","WIRE"],"deprecated":true,"example":"ACH","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.paymentRail","typeLabel":"enum\u003cstring>"},"remittanceInformation":{"type":"string","deprecated":true,"description":"Deprecated. Use `railDetails.addenda` for ACH, `railDetails.originatorToBeneficiaryInformation` for wires and `railDetails.remittanceInformation` for RTP and FedNow. Free-form information about the payment provided by the originator. Still populated on rails without a `railDetails` variant, such as SWIFT.","example":"12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.remittanceInformation","typeLabel":"string"},"endToEndId":{"type":"string","deprecated":true,"description":"Deprecated. Use `railDetails.endToEndId`. The originator's own end-to-end reference for the payment. Still populated on rails without a `railDetails` variant, such as SWIFT.","example":"E2E-9f2c6b6f","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.endToEndId","typeLabel":"string"},"traceNumber":{"type":"string","deprecated":true,"description":"Deprecated. Use `railDetails.traceNumber` for ACH and `railDetails.imad` for wires. Rail-level tracking identifier for the payment. Still populated on rails without a `railDetails` variant, such as SWIFT.","example":"021000020123456","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.traceNumber","typeLabel":"string"},"railDetails":{"oneOf":[{"type":"object","title":"On-Chain Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","transactionHash","network"],"properties":{"paymentRail":{"type":"string","enum":["ONCHAIN"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.0.paymentRail","typeLabel":"enum\u003cstring>"},"transactionHash":{"type":"string","description":"On-chain transaction hash of the crypto transfer for this leg of the transaction.","example":"h82pJGF9p7kpzb6eU326EFZf2cDnimbTFVeJtx1qtBmUNJAEqN76R7PwPfHt3oWb8R6cKvhgyxQdDn53jFrK6wFx","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.0.transactionHash","typeLabel":"string"},"network":{"type":"string","enum":["BITCOIN","ETHEREUM","SOLANA","BASE","POLYGON","TRON","PLASMA","ARBITRUM","SPARK"],"description":"Blockchain network the transaction settled on (mainnet vs test network is determined by your platform environment).","example":"SOLANA","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.0.network","typeLabel":"enum\u003cstring>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.0","typeLabel":"On-Chain Transfer · object"},{"type":"object","title":"ACH Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["ACH","ACH_SAME_DAY"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.1.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","RETURNED","RETURN_DISHONORED","RETURN_CONTESTED","REVERSED","FAILED"],"description":"Status of the entry on the ACH network.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted to the ACH network and not yet settled. |\n| `SETTLED` | The entry settled. |\n| `RETURNED` | The receiving bank returned the entry, before or after it settled. |\n| `RETURN_DISHONORED` | The originating bank dishonored the return, so the returned funds came back. |\n| `RETURN_CONTESTED` | The receiving bank contested the dishonor, so the funds went back again. |\n| `REVERSED` | The originator reversed the entry after it settled. |\n| `FAILED` | The entry was rejected before submission and no funds moved. |\n\nA return, dishonor or contest can arrive days after the step before it. This status\nreports the ACH entry; the transaction's top-level `status` reports where the funds\nare now. A return moves the transaction to `FAILED`. On an incoming payment, a\ndishonor brings the credit back and moves it to `COMPLETED`, and a contest moves it\nto `FAILED` again. A returned payout stays `FAILED` through a dishonor, since it has\nalready been refunded; the rail status still records the dishonor.","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.1.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"title":"US Bank Account Details","type":"object","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.1.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.1.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.1.bankAccount.accountNumber","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.1.bankAccount","typeLabel":"US Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.1.settledAt","typeLabel":"string\u003cdate-time>"},"traceNumber":{"type":"string","description":"15-digit ACH trace number of the entry.","example":"021000020123456","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.1.traceNumber","typeLabel":"string"},"statementDescriptor":{"type":"string","maxLength":10,"description":"The entry's Company Entry Description, which the receiving bank shows on the account holder's statement. On payments you originate, this is the quote's `statementDescriptor`, or Grid's default.","example":"PAYROLL","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.1.statementDescriptor","typeLabel":"string"},"addenda":{"type":"string","description":"Payment-related text carried in the entry's addenda record. On payments you originate, this is the `remittanceInformation` you provided.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.1.addenda","typeLabel":"string"},"returnedAt":{"type":"string","format":"date-time","description":"When the receiving bank returned the entry. Present once the entry has been returned, including after a later dishonor or contest.","example":"2026-10-01T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.1.returnedAt","typeLabel":"string\u003cdate-time>"},"returnCode":{"type":"string","pattern":"^R[0-9]{2}$","description":"The NACHA return reason code the receiving bank returned the entry under, such as `R01` (insufficient funds) or `R10` (customer advises unauthorized). Present whenever `returnedAt` is. Group returns by this code to track your return rate for each reason, or by `returnCategory` for Nacha's threshold categories. NACHA may add codes, so accept any value matching the pattern.","example":"R01","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.1.returnCode","typeLabel":"string"},"returnCategory":{"type":"string","enum":["ADMINISTRATIVE","UNAUTHORIZED"],"description":"The Nacha return-rate category `returnCode` counts toward. Present only when the code is in one, so a return such as `R01` has `returnCode` but no `returnCategory`.","example":"UNAUTHORIZED","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.1.returnCategory","typeLabel":"enum\u003cstring>"},"dishonoredAt":{"type":"string","format":"date-time","description":"When the originating bank dishonored the return. Present once `status` has reached `RETURN_DISHONORED`.","example":"2026-10-04T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.1.dishonoredAt","typeLabel":"string\u003cdate-time>"},"contestedAt":{"type":"string","format":"date-time","description":"When the receiving bank contested the dishonor. Present when `status` is `RETURN_CONTESTED`.","example":"2026-10-07T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.1.contestedAt","typeLabel":"string\u003cdate-time>"},"reversedAt":{"type":"string","format":"date-time","description":"When the originator reversed the entry. Present when `status` is `REVERSED`.","example":"2026-10-01T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.1.reversedAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.1","typeLabel":"ACH Transfer · object"},{"type":"object","title":"Wire Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["WIRE"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.2.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","FAILED"],"description":"Status of the wire on Fedwire.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted to Fedwire and not yet delivered. |\n| `SETTLED` | Fedwire delivered the wire. |\n| `FAILED` | Fedwire or the receiving bank rejected the wire and no funds moved. |","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.2.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"type":"object","title":"Wire Bank Account Details","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.2.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.2.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.2.bankAccount.accountNumber","typeLabel":"string"},"bankName":{"type":"string","description":"Name of the account's bank.","example":"Chase Bank","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.2.bankAccount.bankName","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.2.bankAccount","typeLabel":"Wire Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.2.settledAt","typeLabel":"string\u003cdate-time>"},"imad":{"type":"string","description":"Fedwire Input Message Accountability Data assigned when the wire was sent.","example":"20260929MMQFMP9C000123","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.2.imad","typeLabel":"string"},"originatorToBeneficiaryInformation":{"type":"string","description":"Free-form originator-to-beneficiary information (OBI) sent with the wire.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.2.originatorToBeneficiaryInformation","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.2","typeLabel":"Wire Transfer · object"},{"type":"object","title":"FedNow Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["FEDNOW"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.3.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","FAILED"],"description":"Status of the payment on FedNow.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted and awaiting the receiving bank's response. |\n| `SETTLED` | The receiving bank accepted the payment and the funds settled. |\n| `FAILED` | The receiving bank or the network rejected the payment and no funds moved. |","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.3.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"title":"US Bank Account Details","type":"object","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.3.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.3.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.3.bankAccount.accountNumber","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.3.bankAccount","typeLabel":"US Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.3.settledAt","typeLabel":"string\u003cdate-time>"},"endToEndId":{"type":"string","description":"The originator's end-to-end reference for the payment.","example":"E2E-9f2c6b6f","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.3.endToEndId","typeLabel":"string"},"remittanceInformation":{"type":"string","description":"Unstructured remittance information sent with the payment.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.3.remittanceInformation","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.3","typeLabel":"FedNow Transfer · object"},{"type":"object","title":"RTP Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["RTP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.4.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","FAILED"],"description":"Status of the payment on the RTP network.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted and awaiting the receiving bank's response. |\n| `SETTLED` | The receiving bank accepted the payment and the funds settled. |\n| `FAILED` | The receiving bank or the network rejected the payment and no funds moved. |","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.4.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"title":"US Bank Account Details","type":"object","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.4.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.4.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.4.bankAccount.accountNumber","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.4.bankAccount","typeLabel":"US Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.4.settledAt","typeLabel":"string\u003cdate-time>"},"endToEndId":{"type":"string","description":"The originator's end-to-end reference for the payment.","example":"E2E-9f2c6b6f","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.4.endToEndId","typeLabel":"string"},"remittanceInformation":{"type":"string","description":"Unstructured remittance information sent with the payment.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.4.remittanceInformation","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.4","typeLabel":"RTP Transfer · object"},{"type":"object","title":"SWIFT Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail"],"properties":{"paymentRail":{"type":"string","enum":["SWIFT"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.5.paymentRail","typeLabel":"enum\u003cstring>"},"uetr":{"type":"string","format":"uuid","description":"Unique End-to-end Transaction Reference of the wire. Give it to the beneficiary's bank to trace the payment.","example":"f47bbdd1-3d90-44c4-998d-a02bd814d5d3","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.5.uetr","typeLabel":"string\u003cuuid>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails.oneOf.5","typeLabel":"SWIFT Transfer · object"}],"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.railDetails","typeLabel":"On-Chain Transfer · object | ACH Transfer · object | Wire Transfer · object | FedNow Transfer · object | RTP Transfer · object | SWIFT Transfer · object"},"onChainTransaction":{"type":"object","required":["transactionHash","network"],"properties":{"transactionHash":{"type":"string","description":"On-chain transaction hash of the crypto transfer for this leg of the transaction.","example":"h82pJGF9p7kpzb6eU326EFZf2cDnimbTFVeJtx1qtBmUNJAEqN76R7PwPfHt3oWb8R6cKvhgyxQdDn53jFrK6wFx","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.onChainTransaction.transactionHash","typeLabel":"string"},"network":{"type":"string","enum":["BITCOIN","ETHEREUM","SOLANA","BASE","POLYGON","TRON","PLASMA","ARBITRUM","SPARK"],"description":"Blockchain network the transaction settled on (mainnet vs test network is determined by your platform environment).","example":"SOLANA","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.onChainTransaction.network","typeLabel":"enum\u003cstring>"}},"deprecated":true,"description":"Deprecated. Use `railDetails`, which carries the same hash and network when `paymentRail` is `ONCHAIN`.","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2.onChainTransaction","typeLabel":"object"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source.oneOf.2","typeLabel":"External Funding Source · object"}],"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.source","typeLabel":"Account Source · object | UMA Address Source · object | External Funding Source · object"},"receivedAmount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"Amount in the smallest unit of the currency (e.g., cents for USD/EUR, satoshis for BTC)","example":12550,"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.receivedAmount.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"object","properties":{"code":{"type":"string","description":"Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. \"BTC\" for Bitcoin, \"USDC\" for USDC, etc.)","example":"USD","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.receivedAmount.currency.code","typeLabel":"string"},"name":{"type":"string","description":"Full name of the currency","example":"United States Dollar","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.receivedAmount.currency.name","typeLabel":"string"},"symbol":{"type":"string","description":"Symbol of the currency","example":"$","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.receivedAmount.currency.symbol","typeLabel":"string"},"decimals":{"type":"integer","description":"Number of decimal places for the currency","minimum":0,"example":2,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.receivedAmount.currency.decimals","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.receivedAmount.currency","typeLabel":"object"}},"description":"Amount received in the recipient's currency. This is only absent for rule-based account sweeps if the sweep couldn't be quoted. It's always present otherwise.","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.receivedAmount","typeLabel":"object"},"fees":{"type":"integer","format":"int64","description":"The total fees available from the receive quote in the smallest unit of the sending currency (eg. cents).","minimum":0,"example":10,"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.fees","typeLabel":"integer\u003cint64>"},"reconciliationInstructions":{"type":"object","minProperties":1,"description":"Included for all transactions except those with \"CREATED\" status","properties":{"reference":{"type":"string","description":"Unique reference code to include with the payment to match it with the correct incoming transaction, when available.","example":"UMA-Q12345-REF","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.reconciliationInstructions.reference","typeLabel":"string"},"transactionHash":{"deprecated":true,"type":"string","description":"Transaction hash of the settlement transfer, when available. This field reports two different transfers, and only one of them has a replacement today:\n\nFor a crypto transfer to or from a customer's own external wallet, use the `railDetails` on the relevant source or destination instead — it names the network alongside the hash. That is the transfer this field is deprecated for.\n\nFor the inter-VASP settlement leg of a UMA payment (e.g. USDC on Solana to the receiving partner), this field remains the only place the hash is reported: a UMA address is not a wallet you hold, so its source and destination carry no `railDetails`. The field will not be removed before that leg has a replacement.","example":"0x9f2c6b6f4b6c8f2a8d9e0b1c2d3e4f5061728394a5b6c7d8e9f00112233445566","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.reconciliationInstructions.transactionHash","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0.reconciliationInstructions","typeLabel":"object"},"failureReason":{"type":"string","enum":["LNURLP_FAILED","PAY_REQUEST_FAILED","PAYMENT_APPROVAL_WEBHOOK_ERROR","PAYMENT_APPROVAL_TIMED_OUT","OFFRAMP_FAILED","MISSING_MANDATORY_PAYEE_DATA","QUOTE_EXPIRED","QUOTE_EXECUTION_FAILED","COMPLIANCE_REJECTED","COLLECTION_FAILED","SWEEP_AMOUNT_OUT_OF_RANGE","SWEEP_QUOTE_FAILED"],"description":"If the transaction failed, this field provides the reason for failure.","uniqueKey":"data.items.[INDEX].transaction.oneOf.0.failureReason","typeLabel":"enum\u003cstring>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.0","typeLabel":"Incoming Transaction · object"},{"type":"object","title":"Outgoing Transaction","description":"The resulting transaction, populated once the action has been approved and execution has begun. Absent while the action is `PENDING_APPROVAL` or `REJECTED`.","required":["type","sentAmount","source","id","status","direction","destination","customerId","platformCustomerId"],"properties":{"id":{"type":"string","description":"Unique identifier for the transaction","example":"Transaction:019542f5-b3e7-1d02-0000-000000000004","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.id","typeLabel":"string"},"status":{"type":"string","description":"Status of an outgoing payment transaction.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Quote is pending confirmation |\n| `PENDING_AUTHORIZATION` | Awaiting Strong Customer Authentication. Only occurs for customers in a region where SCA is required (e.g. EU). The challenge is carried by the quote, not the transaction — fetch `GET /quotes/{quoteId}` using the transaction's `quoteId`, then authorize its `scaChallenge` via `POST /quotes/{quoteId}/authorize`. |\n| `EXPIRED` | Quote wasn't executed before expiry window. Terminal |\n| `PROCESSING` | Executing the quote after receiving funds |\n| `COMPLETED` | The funds are at the destination. A bank return moves the payout to `FAILED` |\n| `FAILED` | The payout did not reach the destination, or was returned after it did — accompanied by a `failureReason`, and refunded to the source. A returned payout stays `FAILED` even if the return is later dishonored, since the refund has already been posted; the dishonor shows on `destination.railDetails` |\n","enum":["PENDING","PENDING_AUTHORIZATION","EXPIRED","PROCESSING","COMPLETED","FAILED"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.status","typeLabel":"enum\u003cstring>"},"type":{"type":"string","description":"Type of transaction","enum":["OUTGOING"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.type","typeLabel":"enum\u003cstring>"},"direction":{"type":"string","enum":["CREDIT","DEBIT"],"description":"Whether this transaction credits or debits the customer's account.","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.direction","typeLabel":"enum\u003cstring>"},"destination":{"oneOf":[{"type":"object","title":"Account Destination","description":"Destination account details","required":["accountId","destinationType"],"properties":{"destinationType":{"type":"string","description":"Type of transaction destination","enum":["ACCOUNT"],"example":"ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.destinationType","typeLabel":"enum\u003cstring>"},"accountId":{"type":"string","description":"Destination account identifier","example":"ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.accountId","typeLabel":"string"},"currency":{"type":"string","description":"Currency code for the destination","example":"EUR","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.currency","typeLabel":"string"},"railDetails":{"oneOf":[{"type":"object","title":"On-Chain Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","transactionHash","network"],"properties":{"paymentRail":{"type":"string","enum":["ONCHAIN"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.0.paymentRail","typeLabel":"enum\u003cstring>"},"transactionHash":{"type":"string","description":"On-chain transaction hash of the crypto transfer for this leg of the transaction.","example":"h82pJGF9p7kpzb6eU326EFZf2cDnimbTFVeJtx1qtBmUNJAEqN76R7PwPfHt3oWb8R6cKvhgyxQdDn53jFrK6wFx","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.0.transactionHash","typeLabel":"string"},"network":{"type":"string","enum":["BITCOIN","ETHEREUM","SOLANA","BASE","POLYGON","TRON","PLASMA","ARBITRUM","SPARK"],"description":"Blockchain network the transaction settled on (mainnet vs test network is determined by your platform environment).","example":"SOLANA","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.0.network","typeLabel":"enum\u003cstring>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.0","typeLabel":"On-Chain Transfer · object"},{"type":"object","title":"ACH Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["ACH","ACH_SAME_DAY"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.1.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","RETURNED","RETURN_DISHONORED","RETURN_CONTESTED","REVERSED","FAILED"],"description":"Status of the entry on the ACH network.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted to the ACH network and not yet settled. |\n| `SETTLED` | The entry settled. |\n| `RETURNED` | The receiving bank returned the entry, before or after it settled. |\n| `RETURN_DISHONORED` | The originating bank dishonored the return, so the returned funds came back. |\n| `RETURN_CONTESTED` | The receiving bank contested the dishonor, so the funds went back again. |\n| `REVERSED` | The originator reversed the entry after it settled. |\n| `FAILED` | The entry was rejected before submission and no funds moved. |\n\nA return, dishonor or contest can arrive days after the step before it. This status\nreports the ACH entry; the transaction's top-level `status` reports where the funds\nare now. A return moves the transaction to `FAILED`. On an incoming payment, a\ndishonor brings the credit back and moves it to `COMPLETED`, and a contest moves it\nto `FAILED` again. A returned payout stays `FAILED` through a dishonor, since it has\nalready been refunded; the rail status still records the dishonor.","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.1.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"title":"US Bank Account Details","type":"object","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.1.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.1.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.1.bankAccount.accountNumber","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.1.bankAccount","typeLabel":"US Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.1.settledAt","typeLabel":"string\u003cdate-time>"},"traceNumber":{"type":"string","description":"15-digit ACH trace number of the entry.","example":"021000020123456","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.1.traceNumber","typeLabel":"string"},"statementDescriptor":{"type":"string","maxLength":10,"description":"The entry's Company Entry Description, which the receiving bank shows on the account holder's statement. On payments you originate, this is the quote's `statementDescriptor`, or Grid's default.","example":"PAYROLL","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.1.statementDescriptor","typeLabel":"string"},"addenda":{"type":"string","description":"Payment-related text carried in the entry's addenda record. On payments you originate, this is the `remittanceInformation` you provided.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.1.addenda","typeLabel":"string"},"returnedAt":{"type":"string","format":"date-time","description":"When the receiving bank returned the entry. Present once the entry has been returned, including after a later dishonor or contest.","example":"2026-10-01T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.1.returnedAt","typeLabel":"string\u003cdate-time>"},"returnCode":{"type":"string","pattern":"^R[0-9]{2}$","description":"The NACHA return reason code the receiving bank returned the entry under, such as `R01` (insufficient funds) or `R10` (customer advises unauthorized). Present whenever `returnedAt` is. Group returns by this code to track your return rate for each reason, or by `returnCategory` for Nacha's threshold categories. NACHA may add codes, so accept any value matching the pattern.","example":"R01","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.1.returnCode","typeLabel":"string"},"returnCategory":{"type":"string","enum":["ADMINISTRATIVE","UNAUTHORIZED"],"description":"The Nacha return-rate category `returnCode` counts toward. Present only when the code is in one, so a return such as `R01` has `returnCode` but no `returnCategory`.","example":"UNAUTHORIZED","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.1.returnCategory","typeLabel":"enum\u003cstring>"},"dishonoredAt":{"type":"string","format":"date-time","description":"When the originating bank dishonored the return. Present once `status` has reached `RETURN_DISHONORED`.","example":"2026-10-04T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.1.dishonoredAt","typeLabel":"string\u003cdate-time>"},"contestedAt":{"type":"string","format":"date-time","description":"When the receiving bank contested the dishonor. Present when `status` is `RETURN_CONTESTED`.","example":"2026-10-07T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.1.contestedAt","typeLabel":"string\u003cdate-time>"},"reversedAt":{"type":"string","format":"date-time","description":"When the originator reversed the entry. Present when `status` is `REVERSED`.","example":"2026-10-01T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.1.reversedAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.1","typeLabel":"ACH Transfer · object"},{"type":"object","title":"Wire Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["WIRE"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.2.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","FAILED"],"description":"Status of the wire on Fedwire.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted to Fedwire and not yet delivered. |\n| `SETTLED` | Fedwire delivered the wire. |\n| `FAILED` | Fedwire or the receiving bank rejected the wire and no funds moved. |","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.2.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"type":"object","title":"Wire Bank Account Details","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.2.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.2.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.2.bankAccount.accountNumber","typeLabel":"string"},"bankName":{"type":"string","description":"Name of the account's bank.","example":"Chase Bank","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.2.bankAccount.bankName","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.2.bankAccount","typeLabel":"Wire Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.2.settledAt","typeLabel":"string\u003cdate-time>"},"imad":{"type":"string","description":"Fedwire Input Message Accountability Data assigned when the wire was sent.","example":"20260929MMQFMP9C000123","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.2.imad","typeLabel":"string"},"originatorToBeneficiaryInformation":{"type":"string","description":"Free-form originator-to-beneficiary information (OBI) sent with the wire.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.2.originatorToBeneficiaryInformation","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.2","typeLabel":"Wire Transfer · object"},{"type":"object","title":"FedNow Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["FEDNOW"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.3.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","FAILED"],"description":"Status of the payment on FedNow.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted and awaiting the receiving bank's response. |\n| `SETTLED` | The receiving bank accepted the payment and the funds settled. |\n| `FAILED` | The receiving bank or the network rejected the payment and no funds moved. |","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.3.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"title":"US Bank Account Details","type":"object","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.3.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.3.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.3.bankAccount.accountNumber","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.3.bankAccount","typeLabel":"US Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.3.settledAt","typeLabel":"string\u003cdate-time>"},"endToEndId":{"type":"string","description":"The originator's end-to-end reference for the payment.","example":"E2E-9f2c6b6f","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.3.endToEndId","typeLabel":"string"},"remittanceInformation":{"type":"string","description":"Unstructured remittance information sent with the payment.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.3.remittanceInformation","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.3","typeLabel":"FedNow Transfer · object"},{"type":"object","title":"RTP Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["RTP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.4.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","FAILED"],"description":"Status of the payment on the RTP network.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted and awaiting the receiving bank's response. |\n| `SETTLED` | The receiving bank accepted the payment and the funds settled. |\n| `FAILED` | The receiving bank or the network rejected the payment and no funds moved. |","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.4.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"title":"US Bank Account Details","type":"object","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.4.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.4.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.4.bankAccount.accountNumber","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.4.bankAccount","typeLabel":"US Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.4.settledAt","typeLabel":"string\u003cdate-time>"},"endToEndId":{"type":"string","description":"The originator's end-to-end reference for the payment.","example":"E2E-9f2c6b6f","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.4.endToEndId","typeLabel":"string"},"remittanceInformation":{"type":"string","description":"Unstructured remittance information sent with the payment.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.4.remittanceInformation","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.4","typeLabel":"RTP Transfer · object"},{"type":"object","title":"SWIFT Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail"],"properties":{"paymentRail":{"type":"string","enum":["SWIFT"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.5.paymentRail","typeLabel":"enum\u003cstring>"},"uetr":{"type":"string","format":"uuid","description":"Unique End-to-end Transaction Reference of the wire. Give it to the beneficiary's bank to trace the payment.","example":"f47bbdd1-3d90-44c4-998d-a02bd814d5d3","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.5.uetr","typeLabel":"string\u003cuuid>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails.oneOf.5","typeLabel":"SWIFT Transfer · object"}],"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.railDetails","typeLabel":"On-Chain Transfer · object | ACH Transfer · object | Wire Transfer · object | FedNow Transfer · object | RTP Transfer · object | SWIFT Transfer · object"},"onChainTransaction":{"type":"object","required":["transactionHash","network"],"properties":{"transactionHash":{"type":"string","description":"On-chain transaction hash of the crypto transfer for this leg of the transaction.","example":"h82pJGF9p7kpzb6eU326EFZf2cDnimbTFVeJtx1qtBmUNJAEqN76R7PwPfHt3oWb8R6cKvhgyxQdDn53jFrK6wFx","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.onChainTransaction.transactionHash","typeLabel":"string"},"network":{"type":"string","enum":["BITCOIN","ETHEREUM","SOLANA","BASE","POLYGON","TRON","PLASMA","ARBITRUM","SPARK"],"description":"Blockchain network the transaction settled on (mainnet vs test network is determined by your platform environment).","example":"SOLANA","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.onChainTransaction.network","typeLabel":"enum\u003cstring>"}},"deprecated":true,"description":"Deprecated. Use `railDetails`, which carries the same hash and network when `paymentRail` is `ONCHAIN`.","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0.onChainTransaction","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.0","typeLabel":"Account Destination · object"},{"type":"object","title":"UMA Address Destination","description":"UMA address destination details","required":["umaAddress","destinationType"],"properties":{"destinationType":{"type":"string","description":"Type of transaction destination","enum":["UMA_ADDRESS"],"example":"ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.1.destinationType","typeLabel":"enum\u003cstring>"},"umaAddress":{"type":"string","description":"UMA address of the recipient","example":"$receiver@uma.domain.com","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.1.umaAddress","typeLabel":"string"},"currency":{"type":"string","description":"Currency code for the destination","example":"EUR","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.1.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination.oneOf.1","typeLabel":"UMA Address Destination · object"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.destination","typeLabel":"Account Destination · object | UMA Address Destination · object"},"customerId":{"type":"string","description":"System ID of the customer this transaction belongs to","example":"Customer:019542f5-b3e7-1d02-0000-000000000001","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.customerId","typeLabel":"string"},"platformCustomerId":{"type":"string","description":"Platform-specific ID of the customer this transaction belongs to","example":"18d3e5f7b4a9c2","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.platformCustomerId","typeLabel":"string"},"sentAmount":{"type":"object","description":"Amount sent in the sender's currency","required":["amount","currency"],"properties":{"amount":{"type":"integer","description":"Amount in the smallest unit of the currency (e.g., cents for USD/EUR, satoshis for BTC)","format":"int64","example":12550,"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.sentAmount.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"object","properties":{"code":{"type":"string","description":"Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. \"BTC\" for Bitcoin, \"USDC\" for USDC, etc.)","example":"USD","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.sentAmount.currency.code","typeLabel":"string"},"name":{"type":"string","description":"Full name of the currency","example":"United States Dollar","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.sentAmount.currency.name","typeLabel":"string"},"symbol":{"type":"string","description":"Symbol of the currency","example":"$","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.sentAmount.currency.symbol","typeLabel":"string"},"decimals":{"type":"integer","description":"Number of decimal places for the currency","minimum":0,"example":2,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.sentAmount.currency.decimals","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.sentAmount.currency","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.sentAmount","typeLabel":"object"},"source":{"oneOf":[{"type":"object","title":"Account Source","description":"Source account details","required":["accountId","sourceType"],"properties":{"sourceType":{"type":"string","description":"Type of transaction source","enum":["ACCOUNT"],"example":"ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.sourceType","typeLabel":"enum\u003cstring>"},"accountId":{"type":"string","description":"Source account identifier","example":"InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.accountId","typeLabel":"string"},"currency":{"type":"string","description":"Currency code for the source","example":"USD","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.currency","typeLabel":"string"},"railDetails":{"oneOf":[{"type":"object","title":"On-Chain Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","transactionHash","network"],"properties":{"paymentRail":{"type":"string","enum":["ONCHAIN"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.0.paymentRail","typeLabel":"enum\u003cstring>"},"transactionHash":{"type":"string","description":"On-chain transaction hash of the crypto transfer for this leg of the transaction.","example":"h82pJGF9p7kpzb6eU326EFZf2cDnimbTFVeJtx1qtBmUNJAEqN76R7PwPfHt3oWb8R6cKvhgyxQdDn53jFrK6wFx","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.0.transactionHash","typeLabel":"string"},"network":{"type":"string","enum":["BITCOIN","ETHEREUM","SOLANA","BASE","POLYGON","TRON","PLASMA","ARBITRUM","SPARK"],"description":"Blockchain network the transaction settled on (mainnet vs test network is determined by your platform environment).","example":"SOLANA","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.0.network","typeLabel":"enum\u003cstring>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.0","typeLabel":"On-Chain Transfer · object"},{"type":"object","title":"ACH Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["ACH","ACH_SAME_DAY"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.1.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","RETURNED","RETURN_DISHONORED","RETURN_CONTESTED","REVERSED","FAILED"],"description":"Status of the entry on the ACH network.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted to the ACH network and not yet settled. |\n| `SETTLED` | The entry settled. |\n| `RETURNED` | The receiving bank returned the entry, before or after it settled. |\n| `RETURN_DISHONORED` | The originating bank dishonored the return, so the returned funds came back. |\n| `RETURN_CONTESTED` | The receiving bank contested the dishonor, so the funds went back again. |\n| `REVERSED` | The originator reversed the entry after it settled. |\n| `FAILED` | The entry was rejected before submission and no funds moved. |\n\nA return, dishonor or contest can arrive days after the step before it. This status\nreports the ACH entry; the transaction's top-level `status` reports where the funds\nare now. A return moves the transaction to `FAILED`. On an incoming payment, a\ndishonor brings the credit back and moves it to `COMPLETED`, and a contest moves it\nto `FAILED` again. A returned payout stays `FAILED` through a dishonor, since it has\nalready been refunded; the rail status still records the dishonor.","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.1.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"title":"US Bank Account Details","type":"object","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.1.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.1.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.1.bankAccount.accountNumber","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.1.bankAccount","typeLabel":"US Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.1.settledAt","typeLabel":"string\u003cdate-time>"},"traceNumber":{"type":"string","description":"15-digit ACH trace number of the entry.","example":"021000020123456","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.1.traceNumber","typeLabel":"string"},"statementDescriptor":{"type":"string","maxLength":10,"description":"The entry's Company Entry Description, which the receiving bank shows on the account holder's statement. On payments you originate, this is the quote's `statementDescriptor`, or Grid's default.","example":"PAYROLL","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.1.statementDescriptor","typeLabel":"string"},"addenda":{"type":"string","description":"Payment-related text carried in the entry's addenda record. On payments you originate, this is the `remittanceInformation` you provided.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.1.addenda","typeLabel":"string"},"returnedAt":{"type":"string","format":"date-time","description":"When the receiving bank returned the entry. Present once the entry has been returned, including after a later dishonor or contest.","example":"2026-10-01T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.1.returnedAt","typeLabel":"string\u003cdate-time>"},"returnCode":{"type":"string","pattern":"^R[0-9]{2}$","description":"The NACHA return reason code the receiving bank returned the entry under, such as `R01` (insufficient funds) or `R10` (customer advises unauthorized). Present whenever `returnedAt` is. Group returns by this code to track your return rate for each reason, or by `returnCategory` for Nacha's threshold categories. NACHA may add codes, so accept any value matching the pattern.","example":"R01","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.1.returnCode","typeLabel":"string"},"returnCategory":{"type":"string","enum":["ADMINISTRATIVE","UNAUTHORIZED"],"description":"The Nacha return-rate category `returnCode` counts toward. Present only when the code is in one, so a return such as `R01` has `returnCode` but no `returnCategory`.","example":"UNAUTHORIZED","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.1.returnCategory","typeLabel":"enum\u003cstring>"},"dishonoredAt":{"type":"string","format":"date-time","description":"When the originating bank dishonored the return. Present once `status` has reached `RETURN_DISHONORED`.","example":"2026-10-04T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.1.dishonoredAt","typeLabel":"string\u003cdate-time>"},"contestedAt":{"type":"string","format":"date-time","description":"When the receiving bank contested the dishonor. Present when `status` is `RETURN_CONTESTED`.","example":"2026-10-07T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.1.contestedAt","typeLabel":"string\u003cdate-time>"},"reversedAt":{"type":"string","format":"date-time","description":"When the originator reversed the entry. Present when `status` is `REVERSED`.","example":"2026-10-01T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.1.reversedAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.1","typeLabel":"ACH Transfer · object"},{"type":"object","title":"Wire Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["WIRE"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.2.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","FAILED"],"description":"Status of the wire on Fedwire.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted to Fedwire and not yet delivered. |\n| `SETTLED` | Fedwire delivered the wire. |\n| `FAILED` | Fedwire or the receiving bank rejected the wire and no funds moved. |","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.2.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"type":"object","title":"Wire Bank Account Details","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.2.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.2.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.2.bankAccount.accountNumber","typeLabel":"string"},"bankName":{"type":"string","description":"Name of the account's bank.","example":"Chase Bank","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.2.bankAccount.bankName","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.2.bankAccount","typeLabel":"Wire Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.2.settledAt","typeLabel":"string\u003cdate-time>"},"imad":{"type":"string","description":"Fedwire Input Message Accountability Data assigned when the wire was sent.","example":"20260929MMQFMP9C000123","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.2.imad","typeLabel":"string"},"originatorToBeneficiaryInformation":{"type":"string","description":"Free-form originator-to-beneficiary information (OBI) sent with the wire.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.2.originatorToBeneficiaryInformation","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.2","typeLabel":"Wire Transfer · object"},{"type":"object","title":"FedNow Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["FEDNOW"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.3.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","FAILED"],"description":"Status of the payment on FedNow.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted and awaiting the receiving bank's response. |\n| `SETTLED` | The receiving bank accepted the payment and the funds settled. |\n| `FAILED` | The receiving bank or the network rejected the payment and no funds moved. |","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.3.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"title":"US Bank Account Details","type":"object","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.3.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.3.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.3.bankAccount.accountNumber","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.3.bankAccount","typeLabel":"US Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.3.settledAt","typeLabel":"string\u003cdate-time>"},"endToEndId":{"type":"string","description":"The originator's end-to-end reference for the payment.","example":"E2E-9f2c6b6f","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.3.endToEndId","typeLabel":"string"},"remittanceInformation":{"type":"string","description":"Unstructured remittance information sent with the payment.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.3.remittanceInformation","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.3","typeLabel":"FedNow Transfer · object"},{"type":"object","title":"RTP Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["RTP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.4.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","FAILED"],"description":"Status of the payment on the RTP network.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted and awaiting the receiving bank's response. |\n| `SETTLED` | The receiving bank accepted the payment and the funds settled. |\n| `FAILED` | The receiving bank or the network rejected the payment and no funds moved. |","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.4.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"title":"US Bank Account Details","type":"object","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.4.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.4.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.4.bankAccount.accountNumber","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.4.bankAccount","typeLabel":"US Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.4.settledAt","typeLabel":"string\u003cdate-time>"},"endToEndId":{"type":"string","description":"The originator's end-to-end reference for the payment.","example":"E2E-9f2c6b6f","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.4.endToEndId","typeLabel":"string"},"remittanceInformation":{"type":"string","description":"Unstructured remittance information sent with the payment.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.4.remittanceInformation","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.4","typeLabel":"RTP Transfer · object"},{"type":"object","title":"SWIFT Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail"],"properties":{"paymentRail":{"type":"string","enum":["SWIFT"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.5.paymentRail","typeLabel":"enum\u003cstring>"},"uetr":{"type":"string","format":"uuid","description":"Unique End-to-end Transaction Reference of the wire. Give it to the beneficiary's bank to trace the payment.","example":"f47bbdd1-3d90-44c4-998d-a02bd814d5d3","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.5.uetr","typeLabel":"string\u003cuuid>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails.oneOf.5","typeLabel":"SWIFT Transfer · object"}],"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.railDetails","typeLabel":"On-Chain Transfer · object | ACH Transfer · object | Wire Transfer · object | FedNow Transfer · object | RTP Transfer · object | SWIFT Transfer · object"},"onChainTransaction":{"type":"object","required":["transactionHash","network"],"properties":{"transactionHash":{"type":"string","description":"On-chain transaction hash of the crypto transfer for this leg of the transaction.","example":"h82pJGF9p7kpzb6eU326EFZf2cDnimbTFVeJtx1qtBmUNJAEqN76R7PwPfHt3oWb8R6cKvhgyxQdDn53jFrK6wFx","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.onChainTransaction.transactionHash","typeLabel":"string"},"network":{"type":"string","enum":["BITCOIN","ETHEREUM","SOLANA","BASE","POLYGON","TRON","PLASMA","ARBITRUM","SPARK"],"description":"Blockchain network the transaction settled on (mainnet vs test network is determined by your platform environment).","example":"SOLANA","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.onChainTransaction.network","typeLabel":"enum\u003cstring>"}},"deprecated":true,"description":"Deprecated. Use `railDetails`, which carries the same hash and network when `paymentRail` is `ONCHAIN`.","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0.onChainTransaction","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.0","typeLabel":"Account Source · object"},{"type":"object","title":"UMA Address Source","description":"UMA address source details","required":["umaAddress","sourceType"],"properties":{"sourceType":{"type":"string","description":"Type of transaction source","enum":["UMA_ADDRESS"],"example":"ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.1.sourceType","typeLabel":"enum\u003cstring>"},"umaAddress":{"type":"string","description":"UMA address of the sender","example":"$sender@uma.domain.com","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.1.umaAddress","typeLabel":"string"},"currency":{"type":"string","description":"Currency code for the source","example":"USD","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.1.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.1","typeLabel":"UMA Address Source · object"},{"type":"object","title":"External Funding Source","description":"Transaction was funded using an external funding source. `railDetails` describes the transfer that delivered the funds; its fields are populated on a best-effort basis depending on what the funding source provides. Rails without a `railDetails` variant, such as SWIFT, carry the originator's details in the deprecated flat fields only.","required":["currency","sourceType"],"properties":{"sourceType":{"type":"string","description":"Type of transaction source","enum":["REALTIME_FUNDING"],"example":"ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.sourceType","typeLabel":"enum\u003cstring>"},"currency":{"type":"string","description":"Currency code for the funding source","example":"USDC","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.currency","typeLabel":"string"},"customerId":{"type":"string","description":"The customer on whose behalf the transaction was initiated.","example":"Customer:019542f5-b3e7-1d02-0000-000000000009","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.customerId","typeLabel":"string"},"accountHolderName":{"type":"string","deprecated":true,"description":"Deprecated. Use `railDetails.bankAccount.accountHolderName`. The name of the originator (sender) of the payment. Still populated on rails without a `railDetails` variant, such as SWIFT.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.accountHolderName","typeLabel":"string"},"accountIdentifier":{"type":"string","deprecated":true,"description":"Deprecated. Use `railDetails.bankAccount.accountNumber`. The originator's account number or IBAN. May be masked or partial depending on the rail. Still populated on rails without a `railDetails` variant, such as SWIFT.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.accountIdentifier","typeLabel":"string"},"bankName":{"type":"string","deprecated":true,"description":"Deprecated. Use `railDetails.bankAccount.bankName` on wires. The name of the originating bank. Still populated on rails without a `railDetails` variant, such as SWIFT.","example":"Chase Bank","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.bankName","typeLabel":"string"},"bankIdentifier":{"type":"string","deprecated":true,"description":"Deprecated. Use `railDetails.bankAccount.routingNumber`. The identifier of the originating bank, such as a routing number, BIC, or SWIFT code. Still populated on rails without a `railDetails` variant, such as SWIFT.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.bankIdentifier","typeLabel":"string"},"paymentRail":{"type":"string","description":"Deprecated. Use `railDetails.paymentRail`. The payment rail the funds arrived on. Still populated on rails without a `railDetails` variant, such as SWIFT.","enum":["ACH","ACH_COLOMBIA","ACH_SAME_DAY","BANK_TRANSFER","BRE_B","CIPS","FAST","FASTER_PAYMENTS","FEDNOW","INSTAPAY","MOBILE_MONEY","NEFT","PAYNOW","PESONET","PIX","RTGS","RTP","SEPA","SEPA_INSTANT","SPEI","SWIFT","UNIONPAY","UPI","WIRE"],"deprecated":true,"example":"ACH","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.paymentRail","typeLabel":"enum\u003cstring>"},"remittanceInformation":{"type":"string","deprecated":true,"description":"Deprecated. Use `railDetails.addenda` for ACH, `railDetails.originatorToBeneficiaryInformation` for wires and `railDetails.remittanceInformation` for RTP and FedNow. Free-form information about the payment provided by the originator. Still populated on rails without a `railDetails` variant, such as SWIFT.","example":"12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.remittanceInformation","typeLabel":"string"},"endToEndId":{"type":"string","deprecated":true,"description":"Deprecated. Use `railDetails.endToEndId`. The originator's own end-to-end reference for the payment. Still populated on rails without a `railDetails` variant, such as SWIFT.","example":"E2E-9f2c6b6f","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.endToEndId","typeLabel":"string"},"traceNumber":{"type":"string","deprecated":true,"description":"Deprecated. Use `railDetails.traceNumber` for ACH and `railDetails.imad` for wires. Rail-level tracking identifier for the payment. Still populated on rails without a `railDetails` variant, such as SWIFT.","example":"021000020123456","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.traceNumber","typeLabel":"string"},"railDetails":{"oneOf":[{"type":"object","title":"On-Chain Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","transactionHash","network"],"properties":{"paymentRail":{"type":"string","enum":["ONCHAIN"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.0.paymentRail","typeLabel":"enum\u003cstring>"},"transactionHash":{"type":"string","description":"On-chain transaction hash of the crypto transfer for this leg of the transaction.","example":"h82pJGF9p7kpzb6eU326EFZf2cDnimbTFVeJtx1qtBmUNJAEqN76R7PwPfHt3oWb8R6cKvhgyxQdDn53jFrK6wFx","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.0.transactionHash","typeLabel":"string"},"network":{"type":"string","enum":["BITCOIN","ETHEREUM","SOLANA","BASE","POLYGON","TRON","PLASMA","ARBITRUM","SPARK"],"description":"Blockchain network the transaction settled on (mainnet vs test network is determined by your platform environment).","example":"SOLANA","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.0.network","typeLabel":"enum\u003cstring>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.0","typeLabel":"On-Chain Transfer · object"},{"type":"object","title":"ACH Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["ACH","ACH_SAME_DAY"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.1.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","RETURNED","RETURN_DISHONORED","RETURN_CONTESTED","REVERSED","FAILED"],"description":"Status of the entry on the ACH network.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted to the ACH network and not yet settled. |\n| `SETTLED` | The entry settled. |\n| `RETURNED` | The receiving bank returned the entry, before or after it settled. |\n| `RETURN_DISHONORED` | The originating bank dishonored the return, so the returned funds came back. |\n| `RETURN_CONTESTED` | The receiving bank contested the dishonor, so the funds went back again. |\n| `REVERSED` | The originator reversed the entry after it settled. |\n| `FAILED` | The entry was rejected before submission and no funds moved. |\n\nA return, dishonor or contest can arrive days after the step before it. This status\nreports the ACH entry; the transaction's top-level `status` reports where the funds\nare now. A return moves the transaction to `FAILED`. On an incoming payment, a\ndishonor brings the credit back and moves it to `COMPLETED`, and a contest moves it\nto `FAILED` again. A returned payout stays `FAILED` through a dishonor, since it has\nalready been refunded; the rail status still records the dishonor.","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.1.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"title":"US Bank Account Details","type":"object","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.1.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.1.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.1.bankAccount.accountNumber","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.1.bankAccount","typeLabel":"US Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.1.settledAt","typeLabel":"string\u003cdate-time>"},"traceNumber":{"type":"string","description":"15-digit ACH trace number of the entry.","example":"021000020123456","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.1.traceNumber","typeLabel":"string"},"statementDescriptor":{"type":"string","maxLength":10,"description":"The entry's Company Entry Description, which the receiving bank shows on the account holder's statement. On payments you originate, this is the quote's `statementDescriptor`, or Grid's default.","example":"PAYROLL","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.1.statementDescriptor","typeLabel":"string"},"addenda":{"type":"string","description":"Payment-related text carried in the entry's addenda record. On payments you originate, this is the `remittanceInformation` you provided.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.1.addenda","typeLabel":"string"},"returnedAt":{"type":"string","format":"date-time","description":"When the receiving bank returned the entry. Present once the entry has been returned, including after a later dishonor or contest.","example":"2026-10-01T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.1.returnedAt","typeLabel":"string\u003cdate-time>"},"returnCode":{"type":"string","pattern":"^R[0-9]{2}$","description":"The NACHA return reason code the receiving bank returned the entry under, such as `R01` (insufficient funds) or `R10` (customer advises unauthorized). Present whenever `returnedAt` is. Group returns by this code to track your return rate for each reason, or by `returnCategory` for Nacha's threshold categories. NACHA may add codes, so accept any value matching the pattern.","example":"R01","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.1.returnCode","typeLabel":"string"},"returnCategory":{"type":"string","enum":["ADMINISTRATIVE","UNAUTHORIZED"],"description":"The Nacha return-rate category `returnCode` counts toward. Present only when the code is in one, so a return such as `R01` has `returnCode` but no `returnCategory`.","example":"UNAUTHORIZED","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.1.returnCategory","typeLabel":"enum\u003cstring>"},"dishonoredAt":{"type":"string","format":"date-time","description":"When the originating bank dishonored the return. Present once `status` has reached `RETURN_DISHONORED`.","example":"2026-10-04T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.1.dishonoredAt","typeLabel":"string\u003cdate-time>"},"contestedAt":{"type":"string","format":"date-time","description":"When the receiving bank contested the dishonor. Present when `status` is `RETURN_CONTESTED`.","example":"2026-10-07T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.1.contestedAt","typeLabel":"string\u003cdate-time>"},"reversedAt":{"type":"string","format":"date-time","description":"When the originator reversed the entry. Present when `status` is `REVERSED`.","example":"2026-10-01T14:00:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.1.reversedAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.1","typeLabel":"ACH Transfer · object"},{"type":"object","title":"Wire Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["WIRE"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.2.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","FAILED"],"description":"Status of the wire on Fedwire.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted to Fedwire and not yet delivered. |\n| `SETTLED` | Fedwire delivered the wire. |\n| `FAILED` | Fedwire or the receiving bank rejected the wire and no funds moved. |","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.2.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"type":"object","title":"Wire Bank Account Details","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.2.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.2.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.2.bankAccount.accountNumber","typeLabel":"string"},"bankName":{"type":"string","description":"Name of the account's bank.","example":"Chase Bank","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.2.bankAccount.bankName","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.2.bankAccount","typeLabel":"Wire Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.2.settledAt","typeLabel":"string\u003cdate-time>"},"imad":{"type":"string","description":"Fedwire Input Message Accountability Data assigned when the wire was sent.","example":"20260929MMQFMP9C000123","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.2.imad","typeLabel":"string"},"originatorToBeneficiaryInformation":{"type":"string","description":"Free-form originator-to-beneficiary information (OBI) sent with the wire.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.2.originatorToBeneficiaryInformation","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.2","typeLabel":"Wire Transfer · object"},{"type":"object","title":"FedNow Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["FEDNOW"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.3.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","FAILED"],"description":"Status of the payment on FedNow.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted and awaiting the receiving bank's response. |\n| `SETTLED` | The receiving bank accepted the payment and the funds settled. |\n| `FAILED` | The receiving bank or the network rejected the payment and no funds moved. |","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.3.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"title":"US Bank Account Details","type":"object","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.3.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.3.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.3.bankAccount.accountNumber","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.3.bankAccount","typeLabel":"US Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.3.settledAt","typeLabel":"string\u003cdate-time>"},"endToEndId":{"type":"string","description":"The originator's end-to-end reference for the payment.","example":"E2E-9f2c6b6f","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.3.endToEndId","typeLabel":"string"},"remittanceInformation":{"type":"string","description":"Unstructured remittance information sent with the payment.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.3.remittanceInformation","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.3","typeLabel":"FedNow Transfer · object"},{"type":"object","title":"RTP Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail","status"],"properties":{"paymentRail":{"type":"string","enum":["RTP"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.4.paymentRail","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["PENDING","SETTLED","FAILED"],"description":"Status of the payment on the RTP network.\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted and awaiting the receiving bank's response. |\n| `SETTLED` | The receiving bank accepted the payment and the funds settled. |\n| `FAILED` | The receiving bank or the network rejected the payment and no funds moved. |","example":"SETTLED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.4.status","typeLabel":"enum\u003cstring>"},"bankAccount":{"title":"US Bank Account Details","type":"object","description":"The account on the other end of the transfer: the sender's account on a source, the recipient's account on a destination.","properties":{"accountHolderName":{"type":"string","description":"Name of the account holder.","example":"John Sender","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.4.bankAccount.accountHolderName","typeLabel":"string"},"routingNumber":{"type":"string","description":"9-digit ABA routing number of the account's bank.","example":"021000021","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.4.bankAccount.routingNumber","typeLabel":"string"},"accountNumber":{"type":"string","description":"Account number, masked to its last four digits.","example":"****6789","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.4.bankAccount.accountNumber","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.4.bankAccount","typeLabel":"US Bank Account Details · object"},"settledAt":{"type":"string","format":"date-time","description":"When the transfer settled.","example":"2026-09-29T15:04:12Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.4.settledAt","typeLabel":"string\u003cdate-time>"},"endToEndId":{"type":"string","description":"The originator's end-to-end reference for the payment.","example":"E2E-9f2c6b6f","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.4.endToEndId","typeLabel":"string"},"remittanceInformation":{"type":"string","description":"Unstructured remittance information sent with the payment.","example":"INV-12345","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.4.remittanceInformation","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.4","typeLabel":"RTP Transfer · object"},{"type":"object","title":"SWIFT Transfer","description":"The rail transfer that moved funds for this side of the transaction. `paymentRail` determines the shape: each rail carries its own identifiers. Absent until a rail transfer exists for this side, and on sides whose funds move within Grid.","required":["paymentRail"],"properties":{"paymentRail":{"type":"string","enum":["SWIFT"],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.5.paymentRail","typeLabel":"enum\u003cstring>"},"uetr":{"type":"string","format":"uuid","description":"Unique End-to-end Transaction Reference of the wire. Give it to the beneficiary's bank to trace the payment.","example":"f47bbdd1-3d90-44c4-998d-a02bd814d5d3","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.5.uetr","typeLabel":"string\u003cuuid>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails.oneOf.5","typeLabel":"SWIFT Transfer · object"}],"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.railDetails","typeLabel":"On-Chain Transfer · object | ACH Transfer · object | Wire Transfer · object | FedNow Transfer · object | RTP Transfer · object | SWIFT Transfer · object"},"onChainTransaction":{"type":"object","required":["transactionHash","network"],"properties":{"transactionHash":{"type":"string","description":"On-chain transaction hash of the crypto transfer for this leg of the transaction.","example":"h82pJGF9p7kpzb6eU326EFZf2cDnimbTFVeJtx1qtBmUNJAEqN76R7PwPfHt3oWb8R6cKvhgyxQdDn53jFrK6wFx","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.onChainTransaction.transactionHash","typeLabel":"string"},"network":{"type":"string","enum":["BITCOIN","ETHEREUM","SOLANA","BASE","POLYGON","TRON","PLASMA","ARBITRUM","SPARK"],"description":"Blockchain network the transaction settled on (mainnet vs test network is determined by your platform environment).","example":"SOLANA","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.onChainTransaction.network","typeLabel":"enum\u003cstring>"}},"deprecated":true,"description":"Deprecated. Use `railDetails`, which carries the same hash and network when `paymentRail` is `ONCHAIN`.","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2.onChainTransaction","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source.oneOf.2","typeLabel":"External Funding Source · object"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.source","typeLabel":"Account Source · object | UMA Address Source · object | External Funding Source · object"},"pendingReason":{"type":"string","enum":["COUNTERPARTY_DECLARATION_REQUIRED","WALLET_VERIFICATION_REQUIRED","COUNTERPARTY_INFORMATION_REQUIRED","COMPLIANCE_REVIEW"],"description":"Present when compliance review or required customer action is delaying settlement.","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.pendingReason","typeLabel":"enum\u003cstring>"},"ruleBasedAccountId":{"type":"string","description":"The `RULE_BASED` internal account whose deposit this transaction sweeps. Present only on sweep transactions. For these, `source` describes the party that made the deposit when it is known, and is this account otherwise.","example":"InternalAccount:019542f5-b3e7-1d02-0000-000000000011","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.ruleBasedAccountId","typeLabel":"string"},"settledAt":{"type":"string","format":"date-time","description":"When the payment was or will be settled","example":"2025-08-15T14:30:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.settledAt","typeLabel":"string\u003cdate-time>"},"createdAt":{"type":"string","format":"date-time","description":"When the transaction was created","example":"2025-08-15T14:25:18Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","description":"When the transaction was last updated","example":"2025-08-15T14:30:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.updatedAt","typeLabel":"string\u003cdate-time>"},"receiptDeliveryConfirmedAt":{"type":"string","format":"date-time","description":"The time at which the platform confirmed delivery of the receipt to their customer.","example":"2025-08-15T14:31:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.receiptDeliveryConfirmedAt","typeLabel":"string\u003cdate-time>"},"agentId":{"type":"string","description":"If this transaction was initiated by an agent, the system-generated ID of that agent. Absent for platform-initiated transactions.","example":"Agent:019542f5-b3e7-1d02-0000-000000000042","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.agentId","typeLabel":"string"},"description":{"type":"string","description":"Optional memo or description for the payment","example":"Payment for invoice #1234","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.description","typeLabel":"string"},"exchangeRate":{"type":"number","description":"Number of sending currency units per receiving currency unit. The rate is fee-exclusive: Grid deducts fees from the sending amount before converting at this rate.","exclusiveMinimum":0,"example":1.08,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.exchangeRate","typeLabel":"number"},"quoteId":{"type":"string","description":"The ID of the quote that was used to trigger this payment","example":"Quote:019542f5-b3e7-1d02-0000-000000000006","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.quoteId","typeLabel":"string"},"refund":{"type":"object","required":["reference","initiatedAt","status"],"properties":{"reference":{"type":"string","description":"The unique reference ID of the refund","example":"UMA-Q12345-REFUND","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.refund.reference","typeLabel":"string"},"initiatedAt":{"type":"string","format":"date-time","description":"When the refund was initiated","example":"2025-08-15T14:30:00Z","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.refund.initiatedAt","typeLabel":"string\u003cdate-time>"},"status":{"type":"string","enum":["PENDING","COMPLETED","FAILED"],"description":"Current status of the refund","example":"COMPLETED","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.refund.status","typeLabel":"enum\u003cstring>"},"settledAt":{"type":"string","format":"date-time","description":"When the refund was settled","example":"2025-08-15T14:35:00Z","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.refund.settledAt","typeLabel":"string\u003cdate-time>"},"reason":{"type":"string","enum":["TRANSACTION_FAILED","USER_CANCELLATION","TIMEOUT"],"description":"Reason for the refund","example":"TRANSACTION_FAILED","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.refund.reason","typeLabel":"enum\u003cstring>"}},"description":"The refund if transaction was refunded.","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.refund","typeLabel":"object"},"counterpartyInformation":{"type":"object","description":"Additional information about the counterparty, if available and relevant to the transaction and platform.","additionalProperties":true,"example":{"FULL_NAME":"John Sender","BIRTH_DATE":"1985-06-15","NATIONALITY":"DE"},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.counterpartyInformation","typeLabel":"object"},"receivedAmount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"Amount in the smallest unit of the currency (e.g., cents for USD/EUR, satoshis for BTC)","example":12550,"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.receivedAmount.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"object","properties":{"code":{"type":"string","description":"Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. \"BTC\" for Bitcoin, \"USDC\" for USDC, etc.)","example":"USD","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.receivedAmount.currency.code","typeLabel":"string"},"name":{"type":"string","description":"Full name of the currency","example":"United States Dollar","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.receivedAmount.currency.name","typeLabel":"string"},"symbol":{"type":"string","description":"Symbol of the currency","example":"$","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.receivedAmount.currency.symbol","typeLabel":"string"},"decimals":{"type":"integer","description":"Number of decimal places for the currency","minimum":0,"example":2,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.receivedAmount.currency.decimals","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.receivedAmount.currency","typeLabel":"object"}},"description":"Amount to be received by recipient in the recipient's currency","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.receivedAmount","typeLabel":"object"},"fees":{"type":"integer","format":"int64","description":"The fees associated with the quote in the smallest unit of the sending currency (eg. cents).","minimum":0,"example":10,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.fees","typeLabel":"integer\u003cint64>"},"platformFees":{"type":"integer","format":"int64","description":"The portion of `fees` collected by the platform (platform-configured transaction fees), in the smallest unit of the sending currency. 0 when the platform has no applicable fee configured. Already included in `fees`.","minimum":0,"example":5,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.platformFees","typeLabel":"integer\u003cint64>"},"reconciliationInstructions":{"type":"object","minProperties":1,"description":"Reconciliation details for this transaction. For the on-chain hash of a crypto payout to an external wallet, see the destination's `railDetails` instead.","properties":{"reference":{"type":"string","description":"Unique reference code to include with the payment to match it with the correct incoming transaction, when available.","example":"UMA-Q12345-REF","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.reconciliationInstructions.reference","typeLabel":"string"},"transactionHash":{"deprecated":true,"type":"string","description":"Transaction hash of the settlement transfer, when available. This field reports two different transfers, and only one of them has a replacement today:\n\nFor a crypto transfer to or from a customer's own external wallet, use the `railDetails` on the relevant source or destination instead — it names the network alongside the hash. That is the transfer this field is deprecated for.\n\nFor the inter-VASP settlement leg of a UMA payment (e.g. USDC on Solana to the receiving partner), this field remains the only place the hash is reported: a UMA address is not a wallet you hold, so its source and destination carry no `railDetails`. The field will not be removed before that leg has a replacement.","example":"0x9f2c6b6f4b6c8f2a8d9e0b1c2d3e4f5061728394a5b6c7d8e9f00112233445566","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.reconciliationInstructions.transactionHash","typeLabel":"string"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.reconciliationInstructions","typeLabel":"object"},"paymentInstructions":{"type":"array","description":"Payment instructions for executing the payment.","items":{"type":"object","required":["accountOrWalletInfo"],"properties":{"accountOrWalletInfo":{"oneOf":[{"type":"object","title":"USD Bank Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["reference","paymentRails","accountType","accountNumber","routingNumber"],"example":{"accountType":"USD_ACCOUNT","accountNumber":"1234567890","routingNumber":"021000021","bankName":"Chase Bank","intermediaryBankName":"JPMorgan Chase Bank","intermediaryRoutingNumber":"021000021","fiToFiInformation":"/BNF/Invoice 4471","bankAccountType":"CHECKING"},"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["USD_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.accountType","typeLabel":"enum\u003cstring>"},"accountNumber":{"type":"string","description":"The account number of the bank","minLength":1,"maxLength":34,"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.accountNumber","typeLabel":"string"},"routingNumber":{"type":"string","description":"The ABA routing number","example":"021000021","minLength":9,"maxLength":9,"pattern":"^[0-9]{9}$","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.routingNumber","typeLabel":"string"},"paymentRails":{"type":"array","items":{"type":"string","enum":["ACH","ACH_SAME_DAY","WIRE","RTP","FEDNOW"],"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.paymentRails.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.paymentRails","typeLabel":"enum\u003cstring>[]"},"reference":{"type":"string","description":"Reference code for the payment. On a quote's `paymentInstructions`, include it with the payment, in the memo or remittance information, so Grid can match the payment to the quote. On an internal account's `fundingPaymentInstructions`, the account number is unique to that account and deposits are credited by account number, so the payer doesn't need to include the reference.","example":"UMA-Q12345-REF","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.reference","typeLabel":"string"},"bankName":{"type":"string","description":"The name of the financial institution holding the account. Optional on every rail, and recommended for wires, where it identifies the beneficiary's institution on the payment message. Not checked against `GET /discoveries`.","minLength":1,"maxLength":140,"example":"Chase Bank","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.bankName","typeLabel":"string"},"intermediaryBankName":{"type":"string","description":"The name of the intermediary financial institution, for accounts reachable only through a correspondent bank. Used on the WIRE rail; ignored on ACH, RTP and FEDNOW.","example":"JPMorgan Chase Bank","minLength":1,"maxLength":140,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.intermediaryBankName","typeLabel":"string"},"intermediaryRoutingNumber":{"type":"string","description":"The ABA routing number of the intermediary financial institution. Used on the WIRE rail; ignored on ACH, RTP and FEDNOW.","example":"021000021","minLength":9,"maxLength":9,"pattern":"^[0-9]{9}$","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.intermediaryRoutingNumber","typeLabel":"string"},"fiToFiInformation":{"type":"string","description":"Bank-to-bank instructions carried alongside the payment. Used on the WIRE rail; ignored on ACH, RTP and FEDNOW.","example":"/BNF/Invoice 4471","maxLength":210,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.fiToFiInformation","typeLabel":"string"},"bankAccountType":{"type":"string","description":"Whether the account is a checking or a savings account. Grid uses this to set the ACH transaction code, so a value that does not match the account causes the receiving bank to return a notification of change.","enum":["CHECKING","SAVINGS"],"example":"CHECKING","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.bankAccountType","typeLabel":"enum\u003cstring>"},"bankAddress":{"type":"string","description":"The postal address of the financial institution holding the account, on a single line. Optional on every rail, and recommended for wires, where some originating banks require the beneficiary institution's address before they will send.","example":"885 Teaneck Road, Teaneck, NJ 07666","minLength":1,"maxLength":255,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0.bankAddress","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.0","typeLabel":"USD Bank Account · object"},{"type":"object","title":"EUR Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["reference","paymentRails","accountType","iban"],"example":{"accountType":"EUR_ACCOUNT","iban":"DE89370400440532013000","swiftCode":"DEUTDEFF"},"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["EUR_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1.accountType","typeLabel":"enum\u003cstring>"},"iban":{"type":"string","description":"The IBAN of the bank account","example":"DE89370400440532013000","minLength":15,"maxLength":34,"pattern":"^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1.iban","typeLabel":"string"},"paymentRails":{"type":"array","items":{"type":"string","enum":["SEPA","SEPA_INSTANT"],"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1.paymentRails.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1.paymentRails","typeLabel":"enum\u003cstring>[]"},"reference":{"type":"string","description":"Unique reference code that must be included with the payment to properly credit it","example":"UMA-Q12345-REF","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1.reference","typeLabel":"string"},"swiftCode":{"type":"string","description":"The SWIFT/BIC code of the bank. When omitted, Grid derives it from the IBAN when possible. Provide it when automatic derivation is unavailable.","example":"DEUTDEFF","minLength":8,"maxLength":11,"pattern":"^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1.swiftCode","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.1","typeLabel":"EUR Account · object"},{"type":"object","title":"SWIFT Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["accountHolderName","paymentRails","accountType","swiftCode","bankName","country"],"example":{"accountType":"SWIFT_ACCOUNT","country":"NG","swiftCode":"DEUTDEFF","bankName":"Deutsche Bank","accountNumber":"1234567890"},"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["SWIFT_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.accountType","typeLabel":"enum\u003cstring>"},"country":{"type":"string","description":"The ISO 3166-1 alpha-2 country code of the bank account","example":"NG","minLength":2,"maxLength":2,"pattern":"^[A-Z]{2}$","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.country","typeLabel":"string"},"swiftCode":{"type":"string","description":"The SWIFT/BIC code of the bank","example":"DEUTDEFF","minLength":8,"maxLength":11,"pattern":"^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.swiftCode","typeLabel":"string"},"bankName":{"type":"string","description":"The name of the bank","example":"Deutsche Bank","minLength":1,"maxLength":255,"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.bankName","typeLabel":"string"},"paymentRails":{"type":"array","items":{"type":"string","enum":["SWIFT"],"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.paymentRails.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.paymentRails","typeLabel":"enum\u003cstring>[]"},"accountHolderName":{"type":"string","description":"The name of the account holder as it must appear on the wire. Remitting banks match this against the beneficiary name field, so payers should copy it exactly.","example":"Acme Exports Pte Ltd","minLength":1,"maxLength":255,"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.accountHolderName","typeLabel":"string"},"accountNumber":{"type":"string","description":"The bank account number. Required for most corridors. Use iban instead for IBAN-only corridors (e.g. BR, GB).","example":"1234567890","minLength":1,"maxLength":34,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.accountNumber","typeLabel":"string"},"iban":{"type":"string","description":"The IBAN of the bank account. Required for IBAN-only corridors (e.g. BR, GB). Use accountNumber for all other corridors.","example":"GB29NWBK60161331926819","minLength":15,"maxLength":34,"pattern":"^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.iban","typeLabel":"string"},"bankAddress":{"type":"string","description":"The address of the bank holding the account, when known.","example":"12 Marina Boulevard, Singapore 018982","minLength":1,"maxLength":1024,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.bankAddress","typeLabel":"string"},"reference":{"type":"string","description":"Reference code to include with the payment when present. SWIFT payments are attributed by the destination account number/IBAN, so this account type typically requires no reference.","example":"UMA-Q12345-REF","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2.reference","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.2","typeLabel":"SWIFT Account · object"},{"type":"object","title":"MXN Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["reference","paymentRails","accountType","clabeNumber"],"example":{"accountType":"MXN_ACCOUNT","clabeNumber":"123456789012345678"},"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["MXN_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.3.accountType","typeLabel":"enum\u003cstring>"},"clabeNumber":{"type":"string","description":"The CLABE number of the bank","example":"123456789012345678","minLength":18,"maxLength":18,"pattern":"^[0-9]{18}$","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.3.clabeNumber","typeLabel":"string"},"paymentRails":{"type":"array","items":{"type":"string","enum":["SPEI"],"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.3.paymentRails.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.3.paymentRails","typeLabel":"enum\u003cstring>[]"},"reference":{"type":"string","description":"Unique reference code that must be included with the payment to properly credit it","example":"UMA-Q12345-REF","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.3.reference","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.3","typeLabel":"MXN Account · object"},{"type":"object","title":"BRL Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["qrCode","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["BRL_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.4.accountType","typeLabel":"enum\u003cstring>"},"qrCode":{"type":"string","description":"A PIX QR code payload that can be used to fund the transaction. This can be rendered as a QR code image or pasted into a PIX-compatible banking app.","minLength":1,"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.4.qrCode","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.4","typeLabel":"BRL Account · object"},{"type":"object","title":"COP Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["paymentUrl","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["COP_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.5.accountType","typeLabel":"enum\u003cstring>"},"paymentUrl":{"type":"string","format":"uri","description":"A payment URL where the customer can complete their COP deposit.","example":"https://payments.example.com/t/abc123","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.5.paymentUrl","typeLabel":"string\u003curi>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.5","typeLabel":"COP Account · object"},{"type":"object","title":"ARS Account","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["accountNumber","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["ARS_ACCOUNT"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.6.accountType","typeLabel":"enum\u003cstring>"},"accountNumber":{"type":"string","description":"The static CVU (Clave Virtual Uniforme) bank account number to pay to.","minLength":22,"maxLength":22,"pattern":"^\\d{22}$","example":"0000003100074052501434","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.6.accountNumber","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.6","typeLabel":"ARS Account · object"},{"type":"object","title":"Spark Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["assetType","address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["SPARK_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.7.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Spark wallet address","example":"spark1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.7.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset or configured Spark token currency code","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.7.assetType","typeLabel":"string"},"invoice":{"type":"string","description":"Invoice for the payment","example":"sparkrt1pgss8ter0fhc4c220f3zftmpz49h8wqte8eg3m5zkrraplgc048jucgszg3ssqgjzqqekv73mmh842yj7drsjwh7t7tz5zt8wf5kghm5v4ehggszppjp5s80cg3qjdzc55g2567tn3lj705hdsr577tg8ah795mlnt6807y657qhkmgfkf9w75p4wz3l8vhua85zdn6ryj32zuj0p00pv2l5z4u47mw6h4s","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.7.invoice","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.7","typeLabel":"Spark Wallet · object"},{"type":"object","title":"Lightning Invoice","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["invoice","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["LIGHTNING"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.8.accountType","typeLabel":"enum\u003cstring>"},"invoice":{"type":"string","description":"Invoice for the payment","example":"lnbc15u1p3xnhl2pp5jptserfk3zk4qy42tlucycrfwxhydvlemu9pqr93tuzlv9cc7g3sdqsvfhkcap3xyhx7un8cqzpgxqzjcsp5f8c52y2stc300gl6s4xswtjpc37hrnnr3c9wvtgjfuvqmpm35evq9qyyssqy4lgd8tj637qcjp05rdpxxykjenthxftej7a2zzmwrmrl70fyj9hvj0rewhzj7jfyuwkwcg9g2jpwtk3wkjtwnkdks84hsnu8xps5vsq4gj5hs","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.8.invoice","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.8","typeLabel":"Lightning Invoice · object"},{"type":"object","title":"Bitcoin L1 Deposit Address","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["BITCOIN_L1"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.9.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"On-chain Bitcoin (L1) deposit address to send funds to","example":"bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.9.address","typeLabel":"string"},"network":{"type":"string","description":"The blockchain network for the deposit address.","enum":["BITCOIN"],"example":"BITCOIN","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.9.network","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.9","typeLabel":"Bitcoin L1 Deposit Address · object"},{"type":"object","title":"Solana Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["SOLANA_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.10.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Solana wallet address","example":"4Nd1m6Qkq7RfKuE5vQ9qP9Tn6H94Ueqb4xXHzsAbd8Wg","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.10.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDC","USDT"],"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.10.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.10","typeLabel":"Solana Wallet · object"},{"type":"object","title":"Ethereum Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["ETHEREUM_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.11.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Ethereum L1 wallet address","example":"0xAbCDEF1234567890aBCdEf1234567890ABcDef12","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.11.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDC","USDT"],"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.11.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.11","typeLabel":"Ethereum Wallet · object"},{"type":"object","title":"Base Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["BASE_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.12.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Base eth wallet address","example":"0xAbCDEF1234567890aBCdEf1234567890ABcDef12","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.12.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDC"],"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.12.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.12","typeLabel":"Base Wallet · object"},{"type":"object","title":"Polygon Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["POLYGON_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.13.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Polygon eth wallet address","example":"0xAbCDEF1234567890aBCdEf1234567890ABcDef12","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.13.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDC"],"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.13.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.13","typeLabel":"Polygon Wallet · object"},{"type":"object","title":"Arbitrum Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["ARBITRUM_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.14.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Arbitrum wallet address","example":"0xAbCDEF1234567890aBCdEf1234567890ABcDef12","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.14.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDC","USDT"],"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.14.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.14","typeLabel":"Arbitrum Wallet · object"},{"type":"object","title":"Tron Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["TRON_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.15.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Tron wallet address","example":"TNPeeaaFB7K9cmo4uQpcU32zGK8G1NYqeL","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.15.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDT"],"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.15.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.15","typeLabel":"Tron Wallet · object"},{"type":"object","title":"Plasma Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["address","accountType"],"properties":{"accountType":{"type":"string","description":"Type of payment account or wallet","enum":["PLASMA_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.16.accountType","typeLabel":"enum\u003cstring>"},"address":{"type":"string","description":"Plasma wallet address","example":"0xAbCDEF1234567890aBCdEf1234567890ABcDef12","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.16.address","typeLabel":"string"},"assetType":{"type":"string","description":"Type of asset","enum":["USDT"],"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.16.assetType","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.16","typeLabel":"Plasma Wallet · object"},{"type":"object","title":"Embedded Wallet","description":"Where to send the funds. Quotes can carry any of these types. Internal accounts return only `USD_ACCOUNT`, `EUR_ACCOUNT`, `SWIFT_ACCOUNT`, and the network wallet types; MXN, BRL, COP, ARS, Lightning, and Bitcoin L1 instructions appear only on real-time funded quotes.","required":["accountType","payloadToSign"],"properties":{"accountType":{"type":"string","description":"Discriminator value identifying this as Embedded Wallet payment instructions.","enum":["EMBEDDED_WALLET"],"example":"USD_ACCOUNT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.17.accountType","typeLabel":"enum\u003cstring>"},"payloadToSign":{"type":"string","description":"JSON-encoded transaction signing payload that must be stamped, as-is (byte-for-byte, without re-serialization), with the session private key of a verified authentication credential on the source Embedded Wallet. The resulting Grid wallet signature is passed as the `Grid-Wallet-Signature` header on `POST /quotes/{quoteId}/execute` to authorize the outbound transfer from the wallet.","example":"{\"type\":\"ACTIVITY_TYPE_SIGN_TRANSACTION_V2\",\"timestampMs\":\"1746736509954\",\"organizationId\":\"org_abc123\",\"parameters\":{\"signWith\":\"wallet_abc123def456\",\"unsignedTransaction\":\"ea69b4bf05f775209f26ff0a34a05569180f7936579d5c4af9377ae550194f72\",\"type\":\"TRANSACTION_TYPE_ETHEREUM\"},\"generateAppProofs\":true}","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.17.payloadToSign","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo.oneOf.17","typeLabel":"Embedded Wallet · object"}],"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].accountOrWalletInfo","typeLabel":"USD Bank Account · object | EUR Account · object | SWIFT Account · object | MXN Account · object | BRL Account · object | COP Account · object | ARS Account · object | Spark Wallet · object | Lightning Invoice · object | Bitcoin L1 Deposit Address · object | Solana Wallet · object | Ethereum Wallet · object | Base Wallet · object | Polygon Wallet · object | Arbitrum Wallet · object | Tron Wallet · object | Plasma Wallet · object | Embedded Wallet · object"},"instructionsNotes":{"type":"string","description":"Additional human-readable instructions for making the payment","example":"Please ensure the reference code is included in the payment memo/description field","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].instructionsNotes","typeLabel":"string"},"isPlatformAccount":{"type":"boolean","description":"Indicates whether the account is a platform account or a customer account.","example":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX].isPlatformAccount","typeLabel":"boolean"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions.items.[INDEX]","typeLabel":"object"},"example":[{"accountOrWalletInfo":{"accountType":"USD_ACCOUNT","paymentRails":["ACH","WIRE"],"accountNumber":"1234567890","routingNumber":"021000021","bankName":"Chase Bank","reference":"UMA-Q12345-REF"},"instructionsNotes":"Include reference UMA-Q12345-REF in memo"},{"accountOrWalletInfo":{"accountType":"SPARK_WALLET","assetType":"BTC","address":"spark1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu","invoice":"lnbc15u1p3xnhl2pp5jptserfk3zk4qy42tlucycrfwxhydvlemu9pqr93tuzlv9cc7g3sdqsvfhkcap3xyhx7un8cqzpgxqzjcsp5f8c52y2stc300gl6s4xswtjpc37hrnnr3c9wvtgjfuvqmpm35evq9qyyssqy4lgd8tj637qcjp05rdpxxykjenthxftej7a2zzmwrmrl70fyj9hvj0rewhzj7jfyuwkwcg9g2jpwtk3wkjtwnkdks84hsnu8xps5vsq4gj5hs"}}],"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentInstructions","typeLabel":"object[]"},"rateDetails":{"description":"Details about the rate and fees for the transaction.","type":"object","required":["counterpartyMultiplier","counterpartyFixedFee","gridApiMultiplier","gridApiFixedFee","gridApiVariableFeeRate","gridApiVariableFeeAmount"],"properties":{"counterpartyMultiplier":{"type":"number","format":"double","description":"The underlying multiplier from mSATs to the receiving currency as returned by the counterparty institution.","exclusiveMinimum":0,"example":1.08,"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.rateDetails.counterpartyMultiplier","typeLabel":"number\u003cdouble>"},"counterpartyFixedFee":{"type":"integer","format":"int64","description":"The fixed fee charged by the counterparty institution to execute the quote in the smallest unit of the receiving currency (eg. cents).","minimum":0,"example":10,"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.rateDetails.counterpartyFixedFee","typeLabel":"integer\u003cint64>"},"gridApiMultiplier":{"type":"number","format":"double","description":"The underlying multiplier from the sending currency to mSATS, including variable fees.","exclusiveMinimum":0,"example":0.925,"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.rateDetails.gridApiMultiplier","typeLabel":"number\u003cdouble>"},"gridApiFixedFee":{"type":"integer","format":"int64","description":"The fixed fee charged by the Grid product to execute the quote in the smallest unit of the sending currency (eg. cents).","minimum":0,"example":10,"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.rateDetails.gridApiFixedFee","typeLabel":"integer\u003cint64>"},"gridApiVariableFeeRate":{"type":"number","format":"double","description":"The variable fee rate charged by the Grid product to execute the quote as a percentage of the sending currency amount.","minimum":0,"example":0.003,"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.rateDetails.gridApiVariableFeeRate","typeLabel":"number\u003cdouble>"},"gridApiVariableFeeAmount":{"type":"number","format":"int64","description":"The variable fee amount charged by the Grid product to execute the quote in the smallest unit of the sending currency (eg. cents). This is the sending amount times gridApiVariableFeeRate.","minimum":0,"example":30,"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.rateDetails.gridApiVariableFeeAmount","typeLabel":"number\u003cint64>"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.rateDetails","typeLabel":"object"},"failureReason":{"type":"string","enum":["QUOTE_EXPIRED","QUOTE_RATE_UNAVAILABLE","QUOTE_EXECUTION_FAILED","FUNDING_AMOUNT_MISMATCH","SCA_NOT_COMPLETED","PAYOUT_RETURNED","LIMIT_EXCEEDED","ACCOUNT_CANNOT_RECEIVE","ACCOUNT_INVALID","COMPLIANCE_REJECTED","LIGHTNING_PAYMENT_FAILED","COUNTERPARTY_POST_TX_FAILED","SWEEP_AMOUNT_OUT_OF_RANGE","SWEEP_QUOTE_FAILED"],"description":"If the transaction failed, this field provides the reason for failure.","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.failureReason","typeLabel":"enum\u003cstring>"},"paymentRail":{"oneOf":[{"type":"string","description":"The payment rail used to settle this transaction (e.g. ACH, WIRE, NEFT, FASTER_PAYMENTS). Uses the same values as the PaymentRail sent on quote requests. Null when no external rail is used (e.g. instant or intra-network transfers, or non-direct-destination transactions) or before a rail is resolved.","enum":["ACH","ACH_COLOMBIA","ACH_SAME_DAY","BANK_TRANSFER","BRE_B","CIPS","FAST","FASTER_PAYMENTS","FEDNOW","INSTAPAY","MOBILE_MONEY","NEFT","PAYNOW","PESONET","PIX","RTGS","RTP","SEPA","SEPA_INSTANT","SPEI","SWIFT","UNIONPAY","UPI","WIRE"],"example":"ACH","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentRail.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The payment rail used to settle this transaction (e.g. ACH, WIRE, NEFT, FASTER_PAYMENTS). Uses the same values as the PaymentRail sent on quote requests. Null when no external rail is used (e.g. instant or intra-network transfers, or non-direct-destination transactions) or before a rail is resolved.","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentRail.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.paymentRail","typeLabel":"enum\u003cstring> | null"},"railSelectionMode":{"type":"string","enum":["AUTO","MANUAL"],"description":"How the rail was chosen — MANUAL when the platform specified a paymentRail on the destination, AUTO when Lightspark selects it.","example":"AUTO","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.railSelectionMode","typeLabel":"enum\u003cstring>"},"expectedSettlementAt":{"oneOf":[{"type":"string","format":"date-time","description":"Expected settlement time at the beneficiary. Null for instant rails (settlement is immediate) and before a rail with deferred settlement is resolved.","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.expectedSettlementAt.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"Expected settlement time at the beneficiary. Null for instant rails (settlement is immediate) and before a rail with deferred settlement is resolved.","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.expectedSettlementAt.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.expectedSettlementAt","typeLabel":"string\u003cdate-time> | null"},"settlementTimelineSeconds":{"oneOf":[{"type":"integer","description":"Expected number of seconds from quote creation to settlement. Null when not yet known.","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.settlementTimelineSeconds.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Expected number of seconds from quote creation to settlement. Null when not yet known.","uniqueKey":"data.items.[INDEX].transaction.oneOf.1.settlementTimelineSeconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.items.[INDEX].transaction.oneOf.1.settlementTimelineSeconds","typeLabel":"integer | null"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.1","typeLabel":"Outgoing Transaction · object"},{"type":"object","title":"Card Transaction","description":"The resulting transaction, populated once the action has been approved and execution has begun. Absent while the action is `PENDING_APPROVAL` or `REJECTED`.","required":["type","id","status","direction","merchant","authorizedAmount","accountId","customerId","platformCustomerId","authorizedAt","createdAt","updatedAt"],"properties":{"type":{"type":"string","enum":["CARD"],"description":"Discriminator identifying this transaction as a card transaction in the `Transaction` list.","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.type","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"System-generated unique card transaction identifier","example":"Transaction:019542f5-b3e7-1d02-0000-000000000100","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.id","typeLabel":"string"},"customerId":{"type":"string","description":"System ID of the customer (cardholder) this transaction belongs to.","example":"Customer:019542f5-b3e7-1d02-0000-000000000001","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.customerId","typeLabel":"string"},"platformCustomerId":{"type":"string","description":"Platform-specific ID of the customer (cardholder) this transaction belongs to.","example":"18d3e5f7b4a9c2","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.platformCustomerId","typeLabel":"string"},"status":{"type":"string","enum":["AUTHORIZED","PARTIALLY_SETTLED","SETTLED","DECLINED","VOIDED","EXCEPTION"],"description":"Lifecycle status of a card transaction. The status tracks the authorization\noutcome and settlement — a return against a purchase is its own dated\n`CREDIT` row linked to the purchase via `originalTransactionId`, not a\nstatus of its own.\n\n| Status | Description |\n|--------|-------------|\n| `AUTHORIZED` | The auth has been approved and a hold placed on the funding source; no clearing has arrived yet. |\n| `PARTIALLY_SETTLED` | At least one clearing has arrived and posted, but more clearings are still expected (split shipments, tips, multi-leg trips). |\n| `SETTLED` | All clearings for the auth have posted and the transaction is closed against the funding source. A `RETURN` received afterwards keeps the purchase `SETTLED`; the return appears as its own `CREDIT` transaction. |\n| `DECLINED` | The authorization was declined before any money moved. Declines carry no settlement and must be excluded from cardholder statements. |\n| `VOIDED` | The authorization was fully reversed or expired before any clearing posted, so the hold closed without moving money. `authorizedAmount` reports what is still held, normally 0, and `settledAmount` is absent. |\n| `EXCEPTION` | The transaction settled to the card network but the corresponding pull from the funding source failed (e.g. balance no longer covers the post-hoc clearing). Surfaces high-urgency alerts and is the dashboard query for stuck reconciliations. |\n","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.status","typeLabel":"enum\u003cstring>"},"direction":{"type":"string","enum":["CREDIT","DEBIT"],"description":"A purchase is a `DEBIT`. A merchant refund is a `CREDIT` with the credited value in `settledAmount`; when the refund returns against a known purchase, `originalTransactionId` identifies it.","example":"DEBIT","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.direction","typeLabel":"enum\u003cstring>"},"merchant":{"type":"object","required":["descriptor"],"properties":{"descriptor":{"type":"string","description":"Merchant descriptor string captured from the card network at authorization time. On the sandbox simulate endpoints, where this is supplied rather than reported, it must be 1–25 characters — the width of the card network's acceptor-name field.","example":"BLUE BOTTLE COFFEE SF","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.merchant.descriptor","typeLabel":"string"},"mcc":{"type":"string","description":"Merchant Category Code (ISO 18245) — four-digit numeric string.","example":"5814","uniqueKey":"data.items.[INDEX].transaction.oneOf.2.merchant.mcc","typeLabel":"string"},"city":{"type":"string","description":"Merchant city as reported by the card network, when present.","example":"San Francisco","uniqueKey":"data.items.[INDEX].transaction.oneOf.2.merchant.city","typeLabel":"string"},"state":{"type":"string","description":"Merchant state or region as reported by the card network, when present.","example":"CA","uniqueKey":"data.items.[INDEX].transaction.oneOf.2.merchant.state","typeLabel":"string"},"country":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code of the merchant.","example":"US","uniqueKey":"data.items.[INDEX].transaction.oneOf.2.merchant.country","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.merchant","typeLabel":"object"},"authorizedAmount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"Amount in the smallest unit of the currency (e.g., cents for USD/EUR, satoshis for BTC)","example":12550,"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.authorizedAmount.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"object","properties":{"code":{"type":"string","description":"Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. \"BTC\" for Bitcoin, \"USDC\" for USDC, etc.)","example":"USD","uniqueKey":"data.items.[INDEX].transaction.oneOf.2.authorizedAmount.currency.code","typeLabel":"string"},"name":{"type":"string","description":"Full name of the currency","example":"United States Dollar","uniqueKey":"data.items.[INDEX].transaction.oneOf.2.authorizedAmount.currency.name","typeLabel":"string"},"symbol":{"type":"string","description":"Symbol of the currency","example":"$","uniqueKey":"data.items.[INDEX].transaction.oneOf.2.authorizedAmount.currency.symbol","typeLabel":"string"},"decimals":{"type":"integer","description":"Number of decimal places for the currency","minimum":0,"example":2,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.authorizedAmount.currency.decimals","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.authorizedAmount.currency","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.authorizedAmount","typeLabel":"object"},"accountId":{"type":"string","description":"Internal account id that funded this transaction (the funding source selected by Authorization Decisioning at auth time).","example":"InternalAccount:019542f5-b3e7-1d02-0000-000000000002","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.accountId","typeLabel":"string"},"authorizedAt":{"type":"string","format":"date-time","description":"When the authorization was approved or declined.","example":"2026-05-08T14:30:00Z","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.authorizedAt","typeLabel":"string\u003cdate-time>"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp (same as `authorizedAt` for card transactions).","example":"2026-05-08T14:30:00Z","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","description":"Last update timestamp.","example":"2026-05-08T15:42:11Z","isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.updatedAt","typeLabel":"string\u003cdate-time>"},"cardId":{"type":"string","description":"The id of the `Card` this transaction was made on.","example":"Card:019542f5-b3e7-1d02-0000-000000000010","uniqueKey":"data.items.[INDEX].transaction.oneOf.2.cardId","typeLabel":"string"},"issuerTransactionToken":{"type":"string","description":"Opaque identifier for the transaction on the underlying issuer. Used to cross-reference Grid records against issuer dashboards and webhooks.","example":"lithic_txn_b81c2a4f","uniqueKey":"data.items.[INDEX].transaction.oneOf.2.issuerTransactionToken","typeLabel":"string"},"cardDeclinedReason":{"type":"string","enum":["CARD_NOT_ACTIVE","SPEND_LIMIT_EXCEEDED","INSUFFICIENT_FUNDS","NO_ELIGIBLE_FUNDING_SOURCE","BLOCKED","UNSUPPORTED_NETWORK","INCORRECT_CARD_DETAILS","TEMPORARILY_UNAVAILABLE","PLATFORM_DECLINED","PLATFORM_UNAVAILABLE","OTHER"],"description":"Present only when `status` is `DECLINED`.","example":"INSUFFICIENT_FUNDS","uniqueKey":"data.items.[INDEX].transaction.oneOf.2.cardDeclinedReason","typeLabel":"enum\u003cstring>"},"platformDeclineReason":{"type":"string","enum":["SUSPECTED_FRAUD","UNAUTHORIZED_MERCHANT","VELOCITY_EXCEEDED","INSUFFICIENT_FUNDS","CARD_PAUSED"],"description":"The `declineReason` your platform returned for a `CARD_AUTHORIZATION.REQUEST`. Present only when `cardDeclinedReason` is `PLATFORM_DECLINED` and your endpoint supplied a reason.","example":"UNAUTHORIZED_MERCHANT","uniqueKey":"data.items.[INDEX].transaction.oneOf.2.platformDeclineReason","typeLabel":"enum\u003cstring>"},"originalTransactionId":{"type":"string","description":"On a refund row (`direction: CREDIT`), the id of the purchase this return credits back against. Absent on purchases and on standalone credits with no matching purchase.","example":"Transaction:019542f5-b3e7-1d02-0000-000000000099","uniqueKey":"data.items.[INDEX].transaction.oneOf.2.originalTransactionId","typeLabel":"string"},"description":{"type":"string","description":"The merchant descriptor, repeated from `merchant.descriptor` so a transaction list reads without expanding each card row. Unlike `description` on other transaction types, this is set by Grid from the card network's descriptor, not supplied by the platform.","example":"BLUE BOTTLE COFFEE SF","uniqueKey":"data.items.[INDEX].transaction.oneOf.2.description","typeLabel":"string"},"settledAmount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"Amount in the smallest unit of the currency (e.g., cents for USD/EUR, satoshis for BTC)","example":12550,"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.settledAmount.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"object","properties":{"code":{"type":"string","description":"Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. \"BTC\" for Bitcoin, \"USDC\" for USDC, etc.)","example":"USD","uniqueKey":"data.items.[INDEX].transaction.oneOf.2.settledAmount.currency.code","typeLabel":"string"},"name":{"type":"string","description":"Full name of the currency","example":"United States Dollar","uniqueKey":"data.items.[INDEX].transaction.oneOf.2.settledAmount.currency.name","typeLabel":"string"},"symbol":{"type":"string","description":"Symbol of the currency","example":"$","uniqueKey":"data.items.[INDEX].transaction.oneOf.2.settledAmount.currency.symbol","typeLabel":"string"},"decimals":{"type":"integer","description":"Number of decimal places for the currency","minimum":0,"example":2,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.settledAmount.currency.decimals","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.settledAmount.currency","typeLabel":"object"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.settledAmount","typeLabel":"object"},"refundedAmount":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"integer","format":"int64","description":"Amount in the smallest unit of the currency (e.g., cents for USD/EUR, satoshis for BTC)","example":12550,"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.refundedAmount.amount","typeLabel":"integer\u003cint64>"},"currency":{"type":"object","properties":{"code":{"type":"string","description":"Three-letter currency code (ISO 4217) for fiat currencies. Some cryptocurrencies may use their own ticker symbols (e.g. \"BTC\" for Bitcoin, \"USDC\" for USDC, etc.)","example":"USD","uniqueKey":"data.items.[INDEX].transaction.oneOf.2.refundedAmount.currency.code","typeLabel":"string"},"name":{"type":"string","description":"Full name of the currency","example":"United States Dollar","uniqueKey":"data.items.[INDEX].transaction.oneOf.2.refundedAmount.currency.name","typeLabel":"string"},"symbol":{"type":"string","description":"Symbol of the currency","example":"$","uniqueKey":"data.items.[INDEX].transaction.oneOf.2.refundedAmount.currency.symbol","typeLabel":"string"},"decimals":{"type":"integer","description":"Number of decimal places for the currency","minimum":0,"example":2,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.refundedAmount.currency.decimals","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.refundedAmount.currency","typeLabel":"object"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.2.refundedAmount","typeLabel":"object"}},"uniqueKey":"data.items.[INDEX].transaction.oneOf.2","typeLabel":"Card Transaction · object"}],"uniqueKey":"data.items.[INDEX].transaction","typeLabel":"Incoming Transaction · object | Outgoing Transaction · object | Card Transaction · object"},"rejectionReason":{"type":"string","description":"Human-readable reason provided by the platform when rejecting the action. Only present when status is `REJECTED`.","example":"Transaction amount exceeds customer's current risk limit.","uniqueKey":"data.items.[INDEX].rejectionReason","typeLabel":"string"},"failureReason":{"type":"string","enum":["QUOTE_EXPIRED","POLICY_DENIED","AGENT_INACTIVE","EXECUTION_FAILED","PRICE_MOVED","ADDRESS_REFUSED","APPROVAL_EXPIRED","DELETED_BY_AGENT","AGENT_CANCELLED"],"description":"Machine-readable reason the action failed. Only present when status is `FAILED`; `rejectionReason` is used only for `REJECTED` actions.","uniqueKey":"data.items.[INDEX].failureReason","typeLabel":"enum\u003cstring>"}},"uniqueKey":"data.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data","typeLabel":"object[]"},"hasMore":{"type":"boolean","description":"Indicates if more results are available beyond this page.","isRequired":true,"uniqueKey":"hasMore","typeLabel":"boolean"},"nextCursor":{"type":"string","description":"Cursor to retrieve the next page of results (only present if hasMore is true).","uniqueKey":"nextCursor","typeLabel":"string"},"totalCount":{"type":"integer","description":"Total number of actions matching the criteria (excluding pagination).","uniqueKey":"totalCount","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":[{"id":"AgentAction:019542f5-b3e7-1d02-0000-000000000099","agentId":"Agent:019542f5-b3e7-1d02-0000-000000000042","customerId":"Customer:019542f5-b3e7-1d02-0000-000000000010","platformCustomerId":"user-a1b2c3","status":"PENDING_APPROVAL","type":"EXECUTE_QUOTE","expiresAt":"2025-10-03T15:05:00Z","createdAt":"2025-10-03T15:00:00Z","updatedAt":"2025-10-03T15:02:00Z","quote":{"id":"Quote:019542f5-b3e7-1d02-0000-000000000006","status":"PENDING","createdAt":"2025-10-03T12:00:00Z","expiresAt":"2025-10-03T12:05:00Z","source":{"sourceType":"ACCOUNT","accountId":"InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965","customerId":"Customer:019542f5-b3e7-1d02-0000-000000000001"},"destination":{"destinationType":"ACCOUNT","accountId":"ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123","paymentRail":"ACH"},"sendingCurrency":{"code":"USD","name":"United States Dollar","symbol":"$","decimals":2},"receivingCurrency":{"code":"USD","name":"United States Dollar","symbol":"$","decimals":2},"totalSendingAmount":123010,"totalReceivingAmount":1000,"exchangeRate":123,"feesIncluded":10,"transactionId":"Transaction:019542f5-b3e7-1d02-0000-000000000005","platformFeesIncluded":5,"paymentInstructions":[{"accountOrWalletInfo":{"accountType":"USD_ACCOUNT","paymentRails":["ACH","WIRE"],"accountNumber":"1234567890","routingNumber":"021000021","bankName":"Chase Bank","reference":"UMA-Q12345-REF"},"instructionsNotes":"Include reference UMA-Q12345-REF in memo"},{"accountOrWalletInfo":{"accountType":"SPARK_WALLET","assetType":"BTC","address":"spark1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu","invoice":"lnbc15u1p3xnhl2pp5jptserfk3zk4qy42tlucycrfwxhydvlemu9pqr93tuzlv9cc7g3sdqsvfhkcap3xyhx7un8cqzpgxqzjcsp5f8c52y2stc300gl6s4xswtjpc37hrnnr3c9wvtgjfuvqmpm35evq9qyyssqy4lgd8tj637qcjp05rdpxxykjenthxftej7a2zzmwrmrl70fyj9hvj0rewhzj7jfyuwkwcg9g2jpwtk3wkjtwnkdks84hsnu8xps5vsq4gj5hs"}}],"counterpartyInformation":{"FULL_NAME":"John Sender","BIRTH_DATE":"1985-06-15","NATIONALITY":"DE"},"rateDetails":{"counterpartyMultiplier":1.08,"counterpartyFixedFee":10,"gridApiMultiplier":0.925,"gridApiFixedFee":10,"gridApiVariableFeeRate":0.003,"gridApiVariableFeeAmount":30},"purposeOfPayment":"GIFT","documentIds":["PaymentDocument:019542f5-b3e7-1d02-0000-000000000001","PaymentDocument:019542f5-b3e7-1d02-0000-000000000002","PaymentDocument:019542f5-b3e7-1d02-0000-000000000003"],"scaChallenge":{"id":"ScaChallenge:019542f5-b3e7-1d02-0000-000000000007","expiresAt":"2025-10-03T12:05:00Z","factor":"SMS_OTP","availableFactors":["SMS_OTP"],"purpose":"PAYOUT","passkeyAssertionOptions":{},"passkeyAllowedOrigins":["https://app.example.com"]},"minimumReceivingAmount":1000,"destinationSparkAddress":"spark1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu","destinationChainAddress":{"destinationType":"CHAIN_ADDRESS","network":"BASE","currency":"USDC","address":"0x1234567890abcdef1234567890abcdef12345678"},"destinationLightningInvoice":{"destinationType":"LIGHTNING_INVOICE","invoice":"lnbc15u1p3xnhl2pp5jptserfk3zk4qy42tlucycrfwxhydvlemu9pqr93tuzlv9cc7g3sdqsvfhkcap3xyhx7un8cqzpgxqzjcsp5f8c52y2stc300gl6s4xswtjpc37hrnnr3c9wvtgjfuvqmpm35evq9qyyssqy4lgd8tj637qcjp05rdpxxykjenthxftej7a2zzmwrmrl70fyj9hvj0rewhzj7jfyuwkwcg9g2jpwtk3wkjtwnkdks84hsnu8xps5vsq4gj5hs"}},"previousQuote":{"id":"Quote:019542f5-b3e7-1d02-0000-000000000006","status":"PENDING","createdAt":"2025-10-03T12:00:00Z","expiresAt":"2025-10-03T12:05:00Z","source":{"sourceType":"ACCOUNT","accountId":"InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965","customerId":"Customer:019542f5-b3e7-1d02-0000-000000000001"},"destination":{"destinationType":"ACCOUNT","accountId":"ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123","paymentRail":"ACH"},"sendingCurrency":{"code":"USD","name":"United States Dollar","symbol":"$","decimals":2},"receivingCurrency":{"code":"USD","name":"United States Dollar","symbol":"$","decimals":2},"totalSendingAmount":123010,"totalReceivingAmount":1000,"exchangeRate":123,"feesIncluded":10,"transactionId":"Transaction:019542f5-b3e7-1d02-0000-000000000005","platformFeesIncluded":5,"paymentInstructions":[{"accountOrWalletInfo":{"accountType":"USD_ACCOUNT","paymentRails":["ACH","WIRE"],"accountNumber":"1234567890","routingNumber":"021000021","bankName":"Chase Bank","reference":"UMA-Q12345-REF"},"instructionsNotes":"Include reference UMA-Q12345-REF in memo"},{"accountOrWalletInfo":{"accountType":"SPARK_WALLET","assetType":"BTC","address":"spark1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu","invoice":"lnbc15u1p3xnhl2pp5jptserfk3zk4qy42tlucycrfwxhydvlemu9pqr93tuzlv9cc7g3sdqsvfhkcap3xyhx7un8cqzpgxqzjcsp5f8c52y2stc300gl6s4xswtjpc37hrnnr3c9wvtgjfuvqmpm35evq9qyyssqy4lgd8tj637qcjp05rdpxxykjenthxftej7a2zzmwrmrl70fyj9hvj0rewhzj7jfyuwkwcg9g2jpwtk3wkjtwnkdks84hsnu8xps5vsq4gj5hs"}}],"counterpartyInformation":{"FULL_NAME":"John Sender","BIRTH_DATE":"1985-06-15","NATIONALITY":"DE"},"rateDetails":{"counterpartyMultiplier":1.08,"counterpartyFixedFee":10,"gridApiMultiplier":0.925,"gridApiFixedFee":10,"gridApiVariableFeeRate":0.003,"gridApiVariableFeeAmount":30},"purposeOfPayment":"GIFT","documentIds":["PaymentDocument:019542f5-b3e7-1d02-0000-000000000001","PaymentDocument:019542f5-b3e7-1d02-0000-000000000002","PaymentDocument:019542f5-b3e7-1d02-0000-000000000003"],"scaChallenge":{"id":"ScaChallenge:019542f5-b3e7-1d02-0000-000000000007","expiresAt":"2025-10-03T12:05:00Z","factor":"SMS_OTP","availableFactors":["SMS_OTP"],"purpose":"PAYOUT","passkeyAssertionOptions":{},"passkeyAllowedOrigins":["https://app.example.com"]},"minimumReceivingAmount":1000,"destinationSparkAddress":"spark1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu","destinationChainAddress":{"destinationType":"CHAIN_ADDRESS","network":"BASE","currency":"USDC","address":"0x1234567890abcdef1234567890abcdef12345678"},"destinationLightningInvoice":{"destinationType":"LIGHTNING_INVOICE","invoice":"lnbc15u1p3xnhl2pp5jptserfk3zk4qy42tlucycrfwxhydvlemu9pqr93tuzlv9cc7g3sdqsvfhkcap3xyhx7un8cqzpgxqzjcsp5f8c52y2stc300gl6s4xswtjpc37hrnnr3c9wvtgjfuvqmpm35evq9qyyssqy4lgd8tj637qcjp05rdpxxykjenthxftej7a2zzmwrmrl70fyj9hvj0rewhzj7jfyuwkwcg9g2jpwtk3wkjtwnkdks84hsnu8xps5vsq4gj5hs"}},"priceTolerance":{"basisPoints":100,"minimumAmount":100,"currency":"USD"},"purchaseCard":{"amount":4999,"spendLimit":5749,"currency":"USD","fundingSource":"InternalAccount:019542f5-b3e7-1d02-0000-000000000002","increaseCardId":"Card:019542f5-b3e7-1d02-0000-000000000011","previousAmount":4999,"previousSpendLimit":5749,"description":"Running shoes from example-store.com","recurring":false,"expiresAt":"2026-10-26T15:30:00Z"},"claimablePayout":{"id":"ClaimablePayout:019542f5-b3e7-1d02-0000-000000000077","agentId":"Agent:019542f5-b3e7-1d02-0000-000000000042","customerId":"Customer:019542f5-b3e7-1d02-0000-000000000010","platformCustomerId":"user-a1b2c3","status":"PENDING_APPROVAL","sourceAccountId":"InternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123","amount":{"amount":12550,"currency":{"code":"USD","name":"United States Dollar","symbol":"$","decimals":2}},"recipient":{"name":"Maria","phoneNumber":"+639171234567","email":"maria@example.com","country":"PH"},"expiresAt":"2025-10-10T15:00:00Z","createdAt":"2025-10-03T15:00:00Z","updatedAt":"2025-10-03T15:02:00Z","note":"Happy birthday, Mom","agentActionId":"AgentAction:019542f5-b3e7-1d02-0000-000000000099","externalAccountId":"ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965","transactionId":"Transaction:019542f5-b3e7-1d02-0000-000000000030","receivedAmount":{"amount":12550,"currency":{"code":"USD","name":"United States Dollar","symbol":"$","decimals":2}},"paymentRail":"ACH","failureReason":"INSUFFICIENT_FUNDS"},"storedCardUse":{"storedCardId":"StoredCard:019542f5-b3e7-1d02-0000-000000000077","card":{"lastFour":"0005","brand":"VISA","funding":"CREDIT","expiryMonth":8,"expiryYear":2029,"issuerCountry":"US","nickname":"Personal Visa"},"merchant":"example-store.com","amount":4999,"currency":"USD","purpose":"Running shoes, size 10","needsCvc":false,"autoApproved":false,"linkIssuedAt":"2026-11-06T15:00:30Z","revealedAt":"2026-11-06T15:00:41Z"},"settlementRule":{"id":"SettlementRule:019542f5-b3e7-1d02-0000-000000000001","customerId":"Customer:019542f5-b3e7-1d02-0000-000000000001","name":"Glossier deal","status":"PENDING_APPROVAL","priority":1,"currency":"USD","match":[{"creditedAccountId":"InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965","ruleBasedAccountId":"InternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d001","counterpartyName":{"prefix":"GLOSSIER","contains":"glossier inc"},"receivedAtWalletAddress":"spark1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu","rail":"ACH"}],"splits":[{"share":{"type":"PERCENT","basisPoints":4000,"amount":50000},"destination":{"destinationType":"EXTERNAL_ACCOUNT","externalAccountId":"ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123"},"position":0}],"holdSeconds":0,"achHoldSeconds":86400,"limits":{"maxAmountPerExecution":1000000,"maxAmountPerDay":5000000},"createdAt":"2026-11-06T18:00:00Z","updatedAt":"2026-11-06T18:00:00Z","agentId":"Agent:019542f5-b3e7-1d02-0000-000000000042","agentActionId":"AgentAction:019542f5-b3e7-1d02-0000-000000000099","pendingChangeActionId":"AgentAction:019542f5-b3e7-1d02-0000-000000000098"},"payoutRun":{"id":"PayoutRun:019542f5-b3e7-1d02-0000-000000000001","status":"VALIDATING","sourceAccountId":"InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965","total":{"amount":12550,"currency":{"code":"USD","name":"United States Dollar","symbol":"$","decimals":2}},"rowCount":12,"rows":[{"clientRowId":"contractor-0042","amount":25000000,"destination":{"destinationType":"EXTERNAL_ACCOUNT","externalAccountId":"ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123"},"description":"October invoice"}]},"cardId":"Card:019542f5-b3e7-1d02-0000-000000000011","transaction":{"id":"Transaction:019542f5-b3e7-1d02-0000-000000000004","status":"CREATED","type":"INCOMING","direction":"CREDIT","destination":{"destinationType":"ACCOUNT","accountId":"ExternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123","currency":"EUR","railDetails":{"paymentRail":"ONCHAIN","transactionHash":"h82pJGF9p7kpzb6eU326EFZf2cDnimbTFVeJtx1qtBmUNJAEqN76R7PwPfHt3oWb8R6cKvhgyxQdDn53jFrK6wFx","network":"SOLANA"},"onChainTransaction":{"transactionHash":"h82pJGF9p7kpzb6eU326EFZf2cDnimbTFVeJtx1qtBmUNJAEqN76R7PwPfHt3oWb8R6cKvhgyxQdDn53jFrK6wFx","network":"SOLANA"}},"customerId":"Customer:019542f5-b3e7-1d02-0000-000000000001","platformCustomerId":"18d3e5f7b4a9c2","pendingReason":"COUNTERPARTY_DECLARATION_REQUIRED","ruleBasedAccountId":"InternalAccount:019542f5-b3e7-1d02-0000-000000000011","settledAt":"2025-08-15T14:30:00Z","createdAt":"2025-08-15T14:25:18Z","updatedAt":"2025-08-15T14:30:00Z","receiptDeliveryConfirmedAt":"2025-08-15T14:31:00Z","agentId":"Agent:019542f5-b3e7-1d02-0000-000000000042","description":"Payment for invoice #1234","sentAmount":{"amount":12550,"currency":{"code":"USD","name":"United States Dollar","symbol":"$","decimals":2}},"exchangeRate":1.08,"quoteId":"Quote:019542f5-b3e7-1d02-0000-000000000006","refund":{"reference":"UMA-Q12345-REFUND","initiatedAt":"2025-08-15T14:30:00Z","status":"COMPLETED","settledAt":"2025-08-15T14:35:00Z","reason":"TRANSACTION_FAILED"},"counterpartyInformation":{"FULL_NAME":"John Sender","BIRTH_DATE":"1985-06-15","NATIONALITY":"DE"},"source":{"sourceType":"ACCOUNT","accountId":"InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965","currency":"USD","railDetails":{"paymentRail":"ONCHAIN","transactionHash":"h82pJGF9p7kpzb6eU326EFZf2cDnimbTFVeJtx1qtBmUNJAEqN76R7PwPfHt3oWb8R6cKvhgyxQdDn53jFrK6wFx","network":"SOLANA"},"onChainTransaction":{"transactionHash":"h82pJGF9p7kpzb6eU326EFZf2cDnimbTFVeJtx1qtBmUNJAEqN76R7PwPfHt3oWb8R6cKvhgyxQdDn53jFrK6wFx","network":"SOLANA"}},"receivedAmount":{"amount":12550,"currency":{"code":"USD","name":"United States Dollar","symbol":"$","decimals":2}},"fees":10,"reconciliationInstructions":{"reference":"UMA-Q12345-REF","transactionHash":"0x9f2c6b6f4b6c8f2a8d9e0b1c2d3e4f5061728394a5b6c7d8e9f00112233445566"},"failureReason":"LNURLP_FAILED"},"rejectionReason":"Transaction amount exceeds customer's current risk limit.","failureReason":"QUOTE_EXPIRED"}],"hasMore":true,"nextCursor":"\u003cstring>","totalCount":123}}},"exampleType":"generated"}},"exampleType":"generated"},"32530883-4ea2-4ead-b705-640fc8044c12":{"description":"Bad request - Invalid parameters","content":{"application/json":{"schema":{"type":"object","required":["reason","code"],"properties":{"code":{"type":"string","description":"| Error Code | Description |\n|------------|-------------|\n| INVALID_INPUT | Invalid input provided. When Grid knows the cause, `details.refusalReason` names it. When a card cannot be issued because the customer record lacks fields, it is `CARDHOLDER_INFO_MISSING` and `details.missingFields` lists them |\n| END_USER_TERMS_VERSION_NOT_FOUND | The submitted version is not supported for the agreement it was sent for |\n| MISSING_MANDATORY_USER_INFO | Required customer information is missing |\n| INVITATION_ALREADY_CLAIMED | Invitation has already been claimed |\n| INVITATIONS_NOT_CONFIGURED | Invitations are not configured |\n| INVALID_UMA_ADDRESS | UMA address format is invalid |\n| INVITATION_CANCELLED | Invitation has been cancelled |\n| INVALID_RECEIVER | Receiver is invalid |\n| PARSE_PAYREQ_RESPONSE_ERROR | Error parsing receiver PayReq response |\n| CERT_CHAIN_INVALID | Counterparty certificate chain is invalid |\n| CERT_CHAIN_EXPIRED | Counterparty certificate chain has expired |\n| INVALID_PUBKEY_FORMAT | Counterparty Public key format is invalid |\n| MISSING_REQUIRED_UMA_PARAMETERS | Counterparty required UMA parameters are missing |\n| SENDER_NOT_ACCEPTED | The receiving institution declined this sender. Final; a retry returns the same answer |\n| AMOUNT_OUT_OF_RANGE | Amount is out of range |\n| INVALID_CURRENCY | Currency is invalid |\n| INVALID_TIMESTAMP | Timestamp is invalid |\n| INVALID_NONCE | Nonce is invalid |\n| INVALID_REQUEST_FORMAT | Request format is invalid |\n| INVALID_BANK_ACCOUNT | Bank account is invalid |\n| SELF_PAYMENT | Self payment not allowed |\n| PARSE_LNURLP_RESPONSE_ERROR | Error parsing LNURLP response |\n| INVALID_AMOUNT | Amount is invalid |\n| WEBHOOK_ENDPOINT_NOT_SET | Webhook endpoint is not set |\n| WEBHOOK_DELIVERY_ERROR | Webhook delivery error |\n| LOW_QUALITY | Document quality too low to process |\n| DATA_MISMATCH | Document details don't match provided information |\n| EXPIRED | Document has expired |\n| SUSPECTED_FRAUD | Document suspected of being forged or edited |\n| UNSUITABLE_DOCUMENT | Document type is not accepted or not supported |\n| INCOMPLETE | Document is missing pages or sides |\n| EMAIL_OTP_CREDENTIAL_ALREADY_EXISTS | The account holder already has an EMAIL_OTP credential on the target internal account; the holder may have one. Administrators' credentials, added with `POST /auth/admin-credentials`, are not counted |\n| SMS_OTP_CREDENTIAL_ALREADY_EXISTS | An SMS_OTP credential is already registered on the target internal account; only one SMS OTP credential is supported per internal account at this time |\n| PASSKEY_CREDENTIAL_ALREADY_EXISTS | A PASSKEY credential with the same WebAuthn credentialId is already registered on the target internal account |\n| AUTH_CREDENTIAL_VERIFICATION_REQUIRED | The new email or phone number has no verified replacement credential |\n| AUTH_CREDENTIAL_VERIFICATION_EXPIRED | The replacement credential's verification has expired |\n| STABLECOIN_PROVIDER_ACCOUNT_INVALID | The stablecoin provider account link is not usable |\n| STABLECOIN_PROVIDER_ACCOUNT_REVOKED | The stablecoin provider account link has been revoked |\n| STABLECOIN_PROVIDER_ACCOUNT_SELECTION_REQUIRED | Multiple active provider account links exist; pass `stablecoinProviderAccountId` to select one |\n| STORED_CARD_VERIFICATION_FAILED | The card's issuer did not confirm the card: its security code, billing address or name did not match. Nothing was stored |\n| CARDHOLDER_KYC_NOT_APPROVED | The cardholder's KYC status is not `APPROVED`, so a card cannot be issued |\n| ACCOUNTHOLDER_AGREEMENT_NOT_ACCEPTED | The customer create request omits an accountholder agreement its accounts require |\n| CARDHOLDER_AGREEMENT_NOT_ACCEPTED | The customer has not accepted the cardholder agreement the platform requires before a card is issued |\n| TRANSACTION_SIZE_LIMIT_EXCEEDED | The requested amount exceeds the configured maximum single-transaction amount for this trade corridor or withdrawal currency |\n| EXTERNAL_ACCOUNT_VERIFICATION_REQUIRED | The destination account's ownership must be verified before this transfer can proceed |\n| INSUFFICIENT_FUNDS | Insufficient funds for this operation |\n| QUOTE_EXPIRED | The quote has expired; request a new quote |\n| QUOTE_RATE_UNAVAILABLE | No exchange rate is available for this corridor right now |\n| STABLECOIN_AMOUNT_NOT_REPRESENTABLE | The amount cannot be represented at the token's precision |\n| STABLECOIN_BURN_SOURCE_NOT_SUPPORTED | The burn source account cannot be used for this operation |\n| STABLECOIN_EXTERNAL_ACCOUNT_LINK_FAILED | Linking the external account for stablecoin operations failed |\n| STABLECOIN_EXTERNAL_ACCOUNT_LINK_METHOD_REQUIRED | The external account needs a link method before it can be used |\n| STABLECOIN_EXTERNAL_ACCOUNT_NOT_LINKED | The external account is not linked for stablecoin operations |\n| STABLECOIN_EXTERNAL_ACCOUNT_NOT_SUPPORTED | This external account type is not supported for stablecoin operations |\n| STABLECOIN_EXTERNAL_ACCOUNT_PROVIDER_LINK_FAILED | The provider could not link the external account |\n| STABLECOIN_EXTERNAL_ACCOUNT_PROVIDER_LINK_REQUIRED | The external account must be linked with the provider first |\n| STABLECOIN_GRID_OPERATIONS_NOT_ENABLED | The stablecoin is not enabled for Grid operations |\n| STABLECOIN_NOT_PROVISIONED | The stablecoin is not provisioned for issuer operations |\n| STABLECOIN_OPERATION_NOT_SUPPORTED | The stablecoin does not support this operation |\n| STABLECOIN_PROVIDER_ERROR | The stablecoin provider rejected the operation |\n| STABLECOIN_PROVIDER_SOURCE_NOT_LINKED | The provider source account is not linked |\n| STABLECOIN_VERIFICATION_FAILED | The stablecoin could not be verified with the provider |\n| DOCUMENTS_REQUIRED | The destination requires supporting documents for the quote's `purposeOfPayment` that the request did not supply. `details.missingRequirements` lists the requirement ID of each one |\n| EXACT_AMOUNT_UNAVAILABLE | The quote cannot deliver exactly the requested receiving amount at the current rate; quote again shortly or lock the sending amount |\n","enum":["INVALID_INPUT","END_USER_TERMS_VERSION_NOT_FOUND","MISSING_MANDATORY_USER_INFO","INVITATION_ALREADY_CLAIMED","INVITATIONS_NOT_CONFIGURED","INVALID_UMA_ADDRESS","INVITATION_CANCELLED","INVALID_RECEIVER","PARSE_PAYREQ_RESPONSE_ERROR","CERT_CHAIN_INVALID","CERT_CHAIN_EXPIRED","INVALID_PUBKEY_FORMAT","MISSING_REQUIRED_UMA_PARAMETERS","SENDER_NOT_ACCEPTED","AMOUNT_OUT_OF_RANGE","INVALID_CURRENCY","INVALID_TIMESTAMP","INVALID_NONCE","INVALID_REQUEST_FORMAT","INVALID_BANK_ACCOUNT","SELF_PAYMENT","PARSE_LNURLP_RESPONSE_ERROR","INVALID_AMOUNT","WEBHOOK_ENDPOINT_NOT_SET","WEBHOOK_DELIVERY_ERROR","LOW_QUALITY","DATA_MISMATCH","EXPIRED","SUSPECTED_FRAUD","UNSUITABLE_DOCUMENT","INCOMPLETE","EMAIL_OTP_CREDENTIAL_ALREADY_EXISTS","SMS_OTP_CREDENTIAL_ALREADY_EXISTS","PASSKEY_CREDENTIAL_ALREADY_EXISTS","AUTH_CREDENTIAL_VERIFICATION_REQUIRED","AUTH_CREDENTIAL_VERIFICATION_EXPIRED","STABLECOIN_PROVIDER_ACCOUNT_INVALID","STABLECOIN_PROVIDER_ACCOUNT_REVOKED","STABLECOIN_PROVIDER_ACCOUNT_SELECTION_REQUIRED","STORED_CARD_VERIFICATION_FAILED","CARDHOLDER_KYC_NOT_APPROVED","ACCOUNTHOLDER_AGREEMENT_NOT_ACCEPTED","CARDHOLDER_AGREEMENT_NOT_ACCEPTED","TRANSACTION_SIZE_LIMIT_EXCEEDED","EXTERNAL_ACCOUNT_VERIFICATION_REQUIRED","INSUFFICIENT_FUNDS","QUOTE_EXPIRED","QUOTE_RATE_UNAVAILABLE","STABLECOIN_AMOUNT_NOT_REPRESENTABLE","STABLECOIN_BURN_SOURCE_NOT_SUPPORTED","STABLECOIN_EXTERNAL_ACCOUNT_LINK_FAILED","STABLECOIN_EXTERNAL_ACCOUNT_LINK_METHOD_REQUIRED","STABLECOIN_EXTERNAL_ACCOUNT_NOT_LINKED","STABLECOIN_EXTERNAL_ACCOUNT_NOT_SUPPORTED","STABLECOIN_EXTERNAL_ACCOUNT_PROVIDER_LINK_FAILED","STABLECOIN_EXTERNAL_ACCOUNT_PROVIDER_LINK_REQUIRED","STABLECOIN_GRID_OPERATIONS_NOT_ENABLED","STABLECOIN_NOT_PROVISIONED","STABLECOIN_OPERATION_NOT_SUPPORTED","STABLECOIN_PROVIDER_ERROR","STABLECOIN_PROVIDER_SOURCE_NOT_LINKED","STABLECOIN_VERIFICATION_FAILED","DOCUMENTS_REQUIRED","EXACT_AMOUNT_UNAVAILABLE"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"reason":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"reason","typeLabel":"string"},"details":{"type":"object","description":"Additional error details. Shape varies by `code`. For field-validation errors on submit endpoints (e.g. `POST /customers`, `PATCH /customers/{id}`), `details.errors[]` enumerates every invalid field so platforms can render form-field-level UX for the entire request in a single round-trip.","properties":{"errors":{"type":"array","description":"One entry per invalid field. Present on field-validation errors from submit endpoints.","items":{"type":"object","required":["field"],"description":"One field-level validation failure. Field-validation errors on submit endpoints (e.g. `POST /customers`, `PATCH /customers/{id}`) emit an array of these under `details.errors` so platforms can render form-field-level UX for every failure in a single round-trip.","properties":{"field":{"type":"string","description":"Dot-notation path to the offending field.","example":"identifier","isRequired":true,"uniqueKey":"details.errors.items.[INDEX].field","typeLabel":"string"},"constraint":{"type":"object","description":"Machine-readable validator hint accompanying a 400 `INVALID_INPUT` error. Consumers use it to drive form UI (input types, dropdowns, masking, length limits) and to pre-validate the field client-side before re-submitting. Fields are additive.","properties":{"format":{"type":"string","description":"Named format the value must satisfy — HTML5 input type names (`email`, `tel`, `url`, `date`, ...) or semantic slugs (`iso3166-1-alpha-2`, `bcp47-language-tag`, `us-ssn`, `e.164`).","example":"email","uniqueKey":"details.errors.items.[INDEX].constraint.format","typeLabel":"string"},"pattern":{"type":"string","description":"Regular expression the value must match (JavaScript-flavor).","example":"^\\d{5}(-\\d{4})?$","uniqueKey":"details.errors.items.[INDEX].constraint.pattern","typeLabel":"string"},"enum":{"type":"array","items":{"type":"string","uniqueKey":"details.errors.items.[INDEX].constraint.enum.items.[INDEX]","typeLabel":"string"},"description":"Allowed values when the field is drawn from a fixed set.","example":["SSN","ITIN","NON_US_TAX_ID"],"uniqueKey":"details.errors.items.[INDEX].constraint.enum","typeLabel":"string[]"},"minLength":{"type":"integer","description":"Minimum length in characters.","example":1,"uniqueKey":"details.errors.items.[INDEX].constraint.minLength","typeLabel":"integer"},"maxLength":{"type":"integer","description":"Maximum length in characters.","example":500,"uniqueKey":"details.errors.items.[INDEX].constraint.maxLength","typeLabel":"integer"}},"uniqueKey":"details.errors.items.[INDEX].constraint","typeLabel":"object"},"message":{"type":"string","description":"Human-readable explanation of what's wrong with this field.","example":"Value is not one of the allowed enum members.","uniqueKey":"details.errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"details.errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"details.errors","typeLabel":"object[]"},"missingRequirements":{"type":"array","description":"The requirement ID of each required document that the quote request did not supply. Present on `DOCUMENTS_REQUIRED`.","items":{"type":"string","description":"A stable identifier for one required document within a purpose's requirements. The same ID means the same requirement across quotes. It is separate from `PaymentDocumentType`. The requirement ID names the document to supply, and the document type names what a file is. The two differ where a requirement accepts alternatives. For example, a file declared as either `PURCHASE_ORDER` or `DELIVERY_SLIP` fills the `SUPPORTING_PROOF` requirement.\n\n[Supporting Documents](https://docs.lightspark.com/payouts-and-b2b/payment-flow/send-payment#supporting-documents) lists the IDs each purpose requires.\n\nTreat the ID as an opaque value, not a member of a fixed list. Grid may add new IDs as requirements change.","example":"SUPPORTING_PROOF","uniqueKey":"details.missingRequirements.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.missingRequirements","typeLabel":"string[]"},"refusalReason":{"type":"string","description":"Why Grid refused the request, as `details.refusalReason`. Several refusals\nshare one `code`, and `reason` is a message that may be reworded, so branch\non this value rather than on `reason`. Treat it as an open set, not a fixed\nlist: Grid may add values, and an unknown one is a refusal without a known\ncause.\n\n| Refusal reason | Status | Description |\n|----------------|--------|-------------|\n| `AGENT_API_DISABLED` | 403 | The agent API is not enabled for the platform |\n| `AGENT_CUSTOMER_INACTIVE` | 403 | The agent's customer is not active |\n| `AGENT_INACTIVE` | 403 | The agent is paused or deleted |\n| `AGENT_NO_DELEGATED_KEY` | 403 | The agent holds no active delegated key for the source wallet |\n| `AGENT_PERMISSION_REQUIRED` | 403 | The agent's policy lacks a permission this call needs. `details.permission` names it |\n| `AGENT_ACCOUNT_NOT_ALLOWED` | 403 | The agent's policy does not allow the source account or funding source |\n| `AGENT_DEPOSIT_ACCOUNT_NOT_ALLOWED` | 403 | The agent's policy does not allow deposits to this account |\n| `AGENT_POLICY_DENIED` | 403 | The agent's policy denied executing the quote. `details.policyDenialReason` says which rule |\n| `AGENT_QUOTE_HELD` | 403 | The quote cannot be sent and is held for manual follow-up |\n| `AGENT_CARDS_DISABLED` | 403 | Agent cards are not enabled for the platform |\n| `AGENT_CARDS_CUSTOMER_NOT_VERIFIED` | 403 | Agent cards need a verified individual customer |\n| `AGENT_CARD_HANDOVER_DISABLED` | 403 | Handing an agent's card over to its customer is not enabled for the platform |\n| `AGENT_PURCHASE_CARDS_DISABLED` | 403 | Agent purchase cards are not enabled for the platform |\n| `AGENT_RECURRING_PURCHASE_CARDS_DISABLED` | 403 | Agent recurring purchase cards are not enabled for the platform |\n| `AGENT_PURCHASE_CARD_POLICY_DENIED` | 403 | The agent's policy denied the purchase card. `details.policyDenialReason` says which rule |\n| `STORED_CARDS_DISABLED` | 403 | Stored cards are not enabled for the platform |\n| `CARDS_DISABLED` | 403 | Cards are not enabled for the platform |\n| `CARDHOLDER_INFO_MISSING` | 400 | The cardholder record lacks fields a card needs. `details.missingFields` lists them; supply them through the customers API |\n| `CARDHOLDER_BANK_ACCOUNT_NOT_OPEN` | 400 | The cardholder's USD bank account is not open yet, so no card can be issued until it is |\n| `CARDHOLDER_COUNTRY_NOT_SUPPORTED` | 400 | The cardholder's address is outside the United States, where agent cards are not offered yet |\n| `CARDHOLDER_HOLDS_CARD` | 409 | The cardholder already holds a card and the platform allows one per cardholder. Close it before issuing another |\n| `INVOICE_SUB_SAT_AMOUNT` | 400 | The Lightning invoice's amount is not a whole number of satoshis |\n| `INVOICE_FUNDS_DEPOSIT` | 400 | The Lightning invoice was issued by Lightspark to fund a deposit and cannot be paid with a send |\n| `INVOICE_FUNDS_OWN_DEPOSIT` | 400 | The Lightning invoice funds a deposit of the sender's own. Quote a transfer between the customer's accounts instead |\n","example":"AGENT_POLICY_DENIED","uniqueKey":"details.refusalReason","typeLabel":"string"},"missingFields":{"type":"array","description":"Each customer field the request needs but the customer record lacks, named as in `CustomerInfoFieldName` (for example `PHONE_NUMBER`). Present with refusal reason `CARDHOLDER_INFO_MISSING`. Grid may name fields not yet listed there.","items":{"type":"string","example":"PHONE_NUMBER","uniqueKey":"details.missingFields.items.[INDEX]","typeLabel":"string"},"uniqueKey":"details.missingFields","typeLabel":"string[]"}},"additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"INVALID_INPUT","reason":"\u003cstring>","details":{"errors":[{"field":"identifier","constraint":{"format":"email","pattern":"^\\d{5}(-\\d{4})?$","enum":["SSN","ITIN","NON_US_TAX_ID"],"minLength":1,"maxLength":500},"message":"Value is not one of the allowed enum members."}],"missingRequirements":["SUPPORTING_PROOF"],"refusalReason":"AGENT_POLICY_DENIED","missingFields":["PHONE_NUMBER"]}}}},"exampleType":"generated"}},"exampleType":"generated"},"a1bff083-9447-465c-9f2d-a20bc4ca948c":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","required":["reason","code"],"properties":{"code":{"type":"string","description":"| Error Code | Description |\n|------------|-------------|\n| UNAUTHORIZED | Issue with API credentials |\n| INVALID_SIGNATURE | Signature header is invalid |\n| WALLET_SIGNATURE_MISSING | The `Grid-Wallet-Signature` header is required for this Embedded Wallet action but was not supplied |\n| WALLET_SIGNATURE_MALFORMED | The `Grid-Wallet-Signature` header could not be parsed (bad encoding, structure, or fields) |\n| WALLET_SIGNATURE_BODY_MISMATCH | The `Grid-Wallet-Signature` was computed over a different request body than the one received |\n| WALLET_SIGNATURE_INVALID | The `Grid-Wallet-Signature` failed cryptographic verification against the registered credential |\n| REQUEST_ID_MISSING | The `Request-Id` header is required on the signed retry but was not supplied (paired with `Grid-Wallet-Signature`) |\n","enum":["UNAUTHORIZED","INVALID_SIGNATURE","WALLET_SIGNATURE_MISSING","WALLET_SIGNATURE_MALFORMED","WALLET_SIGNATURE_BODY_MISMATCH","WALLET_SIGNATURE_INVALID","REQUEST_ID_MISSING"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"reason":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"reason","typeLabel":"string"},"details":{"type":"object","description":"Additional error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"UNAUTHORIZED","reason":"\u003cstring>","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"833cf1cd-5d4f-4b5d-85d9-03da2c1e4958":{"description":"Forbidden - Agents API is not enabled for the platform","content":{"application/json":{"schema":{"type":"object","required":["reason","code"],"properties":{"code":{"type":"string","description":"| Error Code | Description |\n|------------|-------------|\n| FORBIDDEN | Insufficient permissions. `details.refusalReason` names the cause when Grid knows it |\n| USER_NOT_READY | Customer exists but is not ready for operation |\n| COUNTERPARTY_NOT_ALLOWED | Counterparty has not been enabled for your account |\n| VELOCITY_LIMIT_EXCEEDED | Counterparty has exceeded velocity limits |\n| END_USER_TERMS_NOT_ACCEPTED | Customer has not accepted the End User Terms |\n| CUSTOMER_NOT_VERIFIED | The customer is not verified and cannot perform this action |\n| SANCTION_BLOCKED | Blocked by sanction screening |\n| DESTINATION_NOT_ALLOWED | The agent may not pay this destination |\n| CORRIDOR_UNDER_MAINTENANCE | Payments to this corridor are paused for maintenance. |\n","enum":["FORBIDDEN","USER_NOT_READY","COUNTERPARTY_NOT_ALLOWED","VELOCITY_LIMIT_EXCEEDED","END_USER_TERMS_NOT_ACCEPTED","CUSTOMER_NOT_VERIFIED","SANCTION_BLOCKED","DESTINATION_NOT_ALLOWED","CORRIDOR_UNDER_MAINTENANCE"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"reason":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"reason","typeLabel":"string"},"details":{"type":"object","description":"Additional error details. Shape varies by `code`. A `FORBIDDEN` refusal with a known cause carries `refusalReason`, plus the fields that reason names.","properties":{"refusalReason":{"type":"string","description":"Why Grid refused the request, as `details.refusalReason`. Several refusals\nshare one `code`, and `reason` is a message that may be reworded, so branch\non this value rather than on `reason`. Treat it as an open set, not a fixed\nlist: Grid may add values, and an unknown one is a refusal without a known\ncause.\n\n| Refusal reason | Status | Description |\n|----------------|--------|-------------|\n| `AGENT_API_DISABLED` | 403 | The agent API is not enabled for the platform |\n| `AGENT_CUSTOMER_INACTIVE` | 403 | The agent's customer is not active |\n| `AGENT_INACTIVE` | 403 | The agent is paused or deleted |\n| `AGENT_NO_DELEGATED_KEY` | 403 | The agent holds no active delegated key for the source wallet |\n| `AGENT_PERMISSION_REQUIRED` | 403 | The agent's policy lacks a permission this call needs. `details.permission` names it |\n| `AGENT_ACCOUNT_NOT_ALLOWED` | 403 | The agent's policy does not allow the source account or funding source |\n| `AGENT_DEPOSIT_ACCOUNT_NOT_ALLOWED` | 403 | The agent's policy does not allow deposits to this account |\n| `AGENT_POLICY_DENIED` | 403 | The agent's policy denied executing the quote. `details.policyDenialReason` says which rule |\n| `AGENT_QUOTE_HELD` | 403 | The quote cannot be sent and is held for manual follow-up |\n| `AGENT_CARDS_DISABLED` | 403 | Agent cards are not enabled for the platform |\n| `AGENT_CARDS_CUSTOMER_NOT_VERIFIED` | 403 | Agent cards need a verified individual customer |\n| `AGENT_CARD_HANDOVER_DISABLED` | 403 | Handing an agent's card over to its customer is not enabled for the platform |\n| `AGENT_PURCHASE_CARDS_DISABLED` | 403 | Agent purchase cards are not enabled for the platform |\n| `AGENT_RECURRING_PURCHASE_CARDS_DISABLED` | 403 | Agent recurring purchase cards are not enabled for the platform |\n| `AGENT_PURCHASE_CARD_POLICY_DENIED` | 403 | The agent's policy denied the purchase card. `details.policyDenialReason` says which rule |\n| `STORED_CARDS_DISABLED` | 403 | Stored cards are not enabled for the platform |\n| `CARDS_DISABLED` | 403 | Cards are not enabled for the platform |\n| `CARDHOLDER_INFO_MISSING` | 400 | The cardholder record lacks fields a card needs. `details.missingFields` lists them; supply them through the customers API |\n| `CARDHOLDER_BANK_ACCOUNT_NOT_OPEN` | 400 | The cardholder's USD bank account is not open yet, so no card can be issued until it is |\n| `CARDHOLDER_COUNTRY_NOT_SUPPORTED` | 400 | The cardholder's address is outside the United States, where agent cards are not offered yet |\n| `CARDHOLDER_HOLDS_CARD` | 409 | The cardholder already holds a card and the platform allows one per cardholder. Close it before issuing another |\n| `INVOICE_SUB_SAT_AMOUNT` | 400 | The Lightning invoice's amount is not a whole number of satoshis |\n| `INVOICE_FUNDS_DEPOSIT` | 400 | The Lightning invoice was issued by Lightspark to fund a deposit and cannot be paid with a send |\n| `INVOICE_FUNDS_OWN_DEPOSIT` | 400 | The Lightning invoice funds a deposit of the sender's own. Quote a transfer between the customer's accounts instead |\n","example":"AGENT_POLICY_DENIED","uniqueKey":"details.refusalReason","typeLabel":"string"},"permission":{"type":"string","description":"The `AgentPermission` the agent's policy lacks. Present with refusal reason `AGENT_PERMISSION_REQUIRED`. Grid may add permissions, so accept a value not yet listed there.","example":"ISSUE_CARDS","uniqueKey":"details.permission","typeLabel":"string"},"policyDenialReason":{"type":"string","description":"The policy rule that denied the quote or purchase card. Present with refusal reason `AGENT_POLICY_DENIED` or `AGENT_PURCHASE_CARD_POLICY_DENIED`.","example":"DAILY_LIMIT_EXCEEDED","uniqueKey":"details.policyDenialReason","typeLabel":"string"}},"additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"FORBIDDEN","reason":"\u003cstring>","details":{"refusalReason":"AGENT_POLICY_DENIED","permission":"ISSUE_CARDS","policyDenialReason":"DAILY_LIMIT_EXCEEDED"}}}},"exampleType":"generated"}},"exampleType":"generated"},"8090a3e5-9b4f-424a-82cc-469cb8b31fac":{"description":"Internal service error","content":{"application/json":{"schema":{"type":"object","required":["reason","code"],"properties":{"code":{"type":"string","description":"| Error Code | Description |\n|------------|-------------|\n| GRID_SWITCH_ERROR | Grid switch error |\n| INTERNAL_ERROR | Internal server or UMA error |\n","enum":["GRID_SWITCH_ERROR","INTERNAL_ERROR"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"reason":{"type":"string","description":"Error message","isRequired":true,"uniqueKey":"reason","typeLabel":"string"},"details":{"type":"object","description":"Additional error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"GRID_SWITCH_ERROR","reason":"\u003cstring>","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"247cb195-be78-4f6d-b480-155d78a4f063":{"BasicAuth":{"type":"http","scheme":"basic","description":"API token authentication using format `\u003capi token id>:\u003capi client secret>`","scopes":[],"schemeName":"BasicAuth"}}},"servers":{"24130320-b7d6-4677-b65b-e5edfcc43529":{"url":"https://api.lightspark.com/grid/2025-10-13","description":"Production server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"basic","description":"API token authentication using format `\u003capi token id>:\u003capi client secret>`","scopes":[],"schemeName":"BasicAuth"},"schema":{"title":"Basic Auth","type":"object","description":"API token authentication using format `\u003capi token id>:\u003capi client secret>`","isRequired":true,"properties":{"username":{"type":"string","uniqueKey":"username","isRequired":true,"typeLabel":"string","deprecated":false},"password":{"type":"string","uniqueKey":"password","isRequired":true,"typeLabel":"string","deprecated":false}},"additionalProperties":false,"deprecated":false},"schemeName":"BasicAuth","name":"Authorization"}],"title":"BasicAuth"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"agents-docs","siteName":"Lightspark Docs","title":"List agent transaction approval requests - Lightspark Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T19:49:20.525Z","originalFileLocation":"api-reference/agent-management/list-agent-transaction-approval-requests.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=\"Retrieve a paginated list of agent actions that require platform approval. Filter by agentId or customerId to scope results to a specific agent or customer. Approve or reject individual actions via POST /agents/{agentId}/actions/{actionId}/approve or POST /agents/{agentId}/actions/{actionId}/reject.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Lightspark Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/agents-docs/e3zkJp4JfPOIuMQu/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/agents-docs/e3zkJp4JfPOIuMQu/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/agents-docs/e3zkJp4JfPOIuMQu/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/agents-docs/e3zkJp4JfPOIuMQu/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/agents-docs/e3zkJp4JfPOIuMQu/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/agents-docs/e3zkJp4JfPOIuMQu/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/agents-docs/e3zkJp4JfPOIuMQu/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/agents-docs/e3zkJp4JfPOIuMQu/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/agents-docs/e3zkJp4JfPOIuMQu/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"List agent transaction approval requests - Lightspark Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Retrieve a paginated list of agent actions that require platform approval. Filter by agentId or customerId to scope results to a specific agent or customer. Approve or reject individual actions via POST /agents/{agentId}/actions/{actionId}/approve or POST /agents/{agentId}/actions/{actionId}/reject.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Lightspark Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://agents-docs.lightspark.com/api-reference/agent-management/list-agent-transaction-approval-requests\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://agents-docs.mintlify.site/_mintlify/api/og/v2?division=Agent+Management\u0026amp;title=List+agent+transaction+approval+requests\u0026amp;description=Retrieve+a+paginated+list+of+agent+actions+that+require+platform+approval.+Filter+by+%60agentId%60+or+%60customerId%60+to+scope+results+to+a+specific+agent+or+customer.\u0026amp;theme=19a33d49f245fc0e7e7e9525\u0026amp;signature=000f012e7fab24bd76735809a2680f465abb1c464d7de7379382665aef5f3e61\">\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=\"List agent transaction approval requests - Lightspark Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Retrieve a paginated list of agent actions that require platform approval. Filter by agentId or customerId to scope results to a specific agent or customer. Approve or reject individual actions via POST /agents/{agentId}/actions/{actionId}/approve or POST /agents/{agentId}/actions/{actionId}/reject.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://agents-docs.mintlify.site/_mintlify/api/og/v2?division=Agent+Management\u0026amp;title=List+agent+transaction+approval+requests\u0026amp;description=Retrieve+a+paginated+list+of+agent+actions+that+require+platform+approval.+Filter+by+%60agentId%60+or+%60customerId%60+to+scope+results+to+a+specific+agent+or+customer.\u0026amp;theme=19a33d49f245fc0e7e7e9525\u0026amp;signature=000f012e7fab24bd76735809a2680f465abb1c464d7de7379382665aef5f3e61\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/agents-docs/e3zkJp4JfPOIuMQu/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Lightspark Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1A1A1A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://agents-docs.lightspark.com/api-reference/agent-management/list-agent-transaction-approval-requests\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/agent-management/list-agent-transaction-approval-requests.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://agents-docs.lightspark.com/#organization\",\"name\":\"Lightspark Docs\",\"url\":\"https://agents-docs.lightspark.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/agents-docs/YKCmEU4MWMlPER9B/logo/light.svg?fit=max\u0026auto=format\u0026n=YKCmEU4MWMlPER9B\u0026q=85\u0026s=94c3cecafe700f5f98421f0d9a80ed22\"}},{\"@type\":\"WebSite\",\"@id\":\"https://agents-docs.lightspark.com#website\",\"name\":\"Lightspark Docs\",\"url\":\"https://agents-docs.lightspark.com\",\"publisher\":{\"@id\":\"https://agents-docs.lightspark.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://agents-docs.lightspark.com/api-reference/agent-management/list-agent-transaction-approval-requests#webpage\",\"url\":\"https://agents-docs.lightspark.com/api-reference/agent-management/list-agent-transaction-approval-requests\",\"name\":\"List agent transaction approval requests\",\"description\":\"Retrieve a paginated list of agent actions that require platform approval. Filter by agentId or customerId to scope results to a specific agent or customer. Approve or reject individual actions via POST /agents/{agentId}/actions/{actionId}/approve or POST /agents/{agentId}/actions/{actionId}/reject.\",\"dateModified\":\"2026-11-12T19:49:20.525Z\",\"isPartOf\":{\"@id\":\"https://agents-docs.lightspark.com#website\"},\"breadcrumb\":{\"@id\":\"https://agents-docs.lightspark.com/api-reference/agent-management/list-agent-transaction-approval-requests#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://agents-docs.lightspark.com/api-reference/agent-management/list-agent-transaction-approval-requests#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API documentation\",\"item\":\"https://agents-docs.lightspark.com/api-reference/platform-configuration/get-platform-configuration\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Agent Management\",\"item\":\"https://agents-docs.lightspark.com/api-reference/agent-management/list-stored-cards\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"List agent transaction approval requests\",\"item\":\"https://agents-docs.lightspark.com/api-reference/agent-management/list-agent-transaction-approval-requests\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://agents-docs.lightspark.com/api-reference/agent-management/list-agent-transaction-approval-requests#apireference\",\"headline\":\"List agent transaction approval requests\",\"name\":\"List agent transaction approval requests\",\"description\":\"Retrieve a paginated list of agent actions that require platform approval. Filter by agentId or customerId to scope results to a specific agent or customer. Approve or reject individual actions via POST /agents/{agentId}/actions/{actionId}/approve or POST /agents/{agentId}/actions/{actionId}/reject.\",\"url\":\"https://agents-docs.lightspark.com/api-reference/agent-management/list-agent-transaction-approval-requests\",\"mainEntityOfPage\":{\"@id\":\"https://agents-docs.lightspark.com/api-reference/agent-management/list-agent-transaction-approval-requests#webpage\"},\"dateModified\":\"2026-11-12T19:49:20.525Z\",\"publisher\":{\"@id\":\"https://agents-docs.lightspark.com/#organization\"},\"isPartOf\":{\"@id\":\"https://agents-docs.lightspark.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Lightspark Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Lightspark Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/agent-management/list-agent-transaction-approval-requests.md","siteName":"Lightspark Docs","nav":{"global":null,"tabs":[{"tab":"Get started","pages":[{"title":"Get started","href":""}]},{"tab":"Build your flow","pages":[{"title":"Build your flow","href":"/flow-builder"}]},{"tab":"Global Accounts","pages":[{"title":"Global Accounts","href":"/global-accounts/demo"}]},{"tab":"Agent Accounts","pages":[{"title":"Agent Accounts","href":"/demo"}]},{"tab":"Payouts \u0026 B2B","pages":[{"title":"Payouts \u0026 B2B","href":"/payouts-and-b2b"}]},{"tab":"Ramps","pages":[{"title":"Ramps","href":"/ramps"}]},{"tab":"Global P2P","pages":[{"title":"Global P2P","href":"/global-p2p"}]},{"tab":"Cards","pages":[{"title":"Cards","href":"/cards/demo"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]},{"tab":"API reference","groups":[{"group":"Using the API","pages":[{"title":"Environments","icon":"https://mintlify.s3.us-west-1.amazonaws.com/agents-docs/images/icons/globe.svg","href":"/api-reference/environments"},{"title":"Core Concepts","icon":"https://mintlify.s3.us-west-1.amazonaws.com/agents-docs/images/icons/file-text.svg","href":"/api-reference/terminology"},{"title":"Authentication","icon":"https://mintlify.s3.us-west-1.amazonaws.com/agents-docs/images/icons/key2.svg","href":"/api-reference/authentication"},{"title":"Webhooks","icon":"https://mintlify.s3.us-west-1.amazonaws.com/agents-docs/images/icons/bell.svg","href":"/api-reference/webhooks"},{"title":"Sandbox Testing","icon":"https://mintlify.s3.us-west-1.amazonaws.com/agents-docs/images/icons/hammer.svg","href":"/api-reference/sandbox-testing"},{"title":"CLI","icon":"https://mintlify.s3.us-west-1.amazonaws.com/agents-docs/images/icons/code.svg","href":"/api-reference/cli"}]},{"group":"API documentation","pages":[{"group":"Platform Configuration","pages":[{"title":"Get platform configuration","deprecated":null,"version":null,"openapi":"/openapi.yaml get /config","href":"/api-reference/platform-configuration/get-platform-configuration"},{"title":"Update platform configuration","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /config","href":"/api-reference/platform-configuration/update-platform-configuration"}]},{"group":"Exchange Rates","pages":[{"title":"Get exchange rates","deprecated":null,"version":null,"openapi":"/openapi.yaml get /exchange-rates","href":"/api-reference/exchange-rates/get-exchange-rates"}]},{"group":"Discoveries","pages":[{"title":"List available receiving institution names","deprecated":null,"version":null,"openapi":"/openapi.yaml get /discoveries","href":"/api-reference/discoveries/list-available-receiving-institution-names"}]},{"group":"Customers","pages":[{"title":"List customers","deprecated":null,"version":null,"openapi":"/openapi.yaml get /customers","href":"/api-reference/customers/list-customers"},{"title":"Add a new customer","deprecated":null,"version":null,"openapi":"/openapi.yaml post /customers","href":"/api-reference/customers/add-a-new-customer"},{"title":"Get customer by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml get /customers/{customerId}","href":"/api-reference/customers/get-customer-by-id"},{"title":"Delete customer by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /customers/{customerId}","href":"/api-reference/customers/delete-customer-by-id"},{"title":"Update customer by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /customers/{customerId}","href":"/api-reference/customers/update-customer-by-id"},{"title":"Add an individual customer from a reusable KYC share token","deprecated":null,"version":null,"openapi":"/openapi.yaml post /customers/share","href":"/api-reference/customers/add-an-individual-customer-from-a-reusable-kyc-share-token"},{"title":"List the current Grid agreement documents","deprecated":null,"version":null,"openapi":"/openapi.yaml get /customers/agreements","href":"/api-reference/customers/list-the-current-grid-agreement-documents"},{"title":"Get the current Grid End User Terms","deprecated":true,"version":null,"openapi":"/openapi.yaml get /customers/end-user-terms","href":"/api-reference/customers/get-the-current-grid-end-user-terms"},{"title":"Upload customers via CSV file","deprecated":null,"version":null,"openapi":"/openapi.yaml post /customers/bulk/csv","href":"/api-reference/customers/upload-customers-via-csv-file"},{"title":"Get bulk import job status","deprecated":null,"version":null,"openapi":"/openapi.yaml get /customers/bulk/jobs/{jobId}","href":"/api-reference/customers/get-bulk-import-job-status"}]},{"group":"KYC/KYB Verifications","pages":[{"title":"Generate a hosted KYC/KYB link for an existing customer","deprecated":null,"version":null,"openapi":"/openapi.yaml post /customers/{customerId}/kyc-link","href":"/api-reference/kyckyb-verifications/generate-a-hosted-kyckyb-link-for-an-existing-customer"},{"title":"List beneficial owners","deprecated":null,"version":null,"openapi":"/openapi.yaml get /beneficial-owners","href":"/api-reference/kyckyb-verifications/list-beneficial-owners"},{"title":"Create a beneficial owner","deprecated":null,"version":null,"openapi":"/openapi.yaml post /beneficial-owners","href":"/api-reference/kyckyb-verifications/create-a-beneficial-owner"},{"title":"Get a beneficial owner","deprecated":null,"version":null,"openapi":"/openapi.yaml get /beneficial-owners/{beneficialOwnerId}","href":"/api-reference/kyckyb-verifications/get-a-beneficial-owner"},{"title":"Delete a beneficial owner","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /beneficial-owners/{beneficialOwnerId}","href":"/api-reference/kyckyb-verifications/delete-a-beneficial-owner"},{"title":"Update a beneficial owner","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /beneficial-owners/{beneficialOwnerId}","href":"/api-reference/kyckyb-verifications/update-a-beneficial-owner"},{"title":"List verifications","deprecated":null,"version":null,"openapi":"/openapi.yaml get /verifications","href":"/api-reference/kyckyb-verifications/list-verifications"},{"title":"Submit customer for verification","deprecated":null,"version":null,"openapi":"/openapi.yaml post /verifications","href":"/api-reference/kyckyb-verifications/submit-customer-for-verification"},{"title":"Get a verification","deprecated":null,"version":null,"openapi":"/openapi.yaml get /verifications/{verificationId}","href":"/api-reference/kyckyb-verifications/get-a-verification"}]},{"group":"Agent Management","pages":[{"title":"List stored cards","deprecated":null,"version":null,"openapi":"/openapi.yaml get /customers/{customerId}/stored-cards","href":"/api-reference/agent-management/list-stored-cards"},{"title":"Store a card","deprecated":null,"version":null,"openapi":"/openapi.yaml post /customers/{customerId}/stored-cards","href":"/api-reference/agent-management/store-a-card"},{"title":"Get a stored card","deprecated":null,"version":null,"openapi":"/openapi.yaml get /customers/{customerId}/stored-cards/{storedCardId}","href":"/api-reference/agent-management/get-a-stored-card"},{"title":"Remove a stored card","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /customers/{customerId}/stored-cards/{storedCardId}","href":"/api-reference/agent-management/remove-a-stored-card"},{"title":"Let an agent use a stored card","deprecated":null,"version":null,"openapi":"/openapi.yaml put /customers/{customerId}/stored-cards/{storedCardId}/agents/{agentId}","href":"/api-reference/agent-management/let-an-agent-use-a-stored-card"},{"title":"Stop an agent using a stored card","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /customers/{customerId}/stored-cards/{storedCardId}/agents/{agentId}","href":"/api-reference/agent-management/stop-an-agent-using-a-stored-card"},{"title":"Reveal a stored card to its owner","deprecated":null,"version":null,"openapi":"/openapi.yaml post /customers/{customerId}/stored-cards/{storedCardId}/reveal","href":"/api-reference/agent-management/reveal-a-stored-card-to-its-owner"},{"title":"List agents","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents","href":"/api-reference/agent-management/list-agents"},{"title":"Create an agent","description":"Create a new agent with a specified policy. Returns the created agent and a device code that must be redeemed by the agent software to complete installation.\n\nAgents of a `BUSINESS` customer are available only where the platform enables them, and require `actingFor` to name the person the agent acts for. Until the business's KYB status is `APPROVED`, its agents' sends and deposits are held to the same limits as an unverified individual's, counted across the whole business.\n\nSend an `Idempotency-Key` header to make retries safe: a request carrying a key already used returns the agent the first request created, with a `200` instead of a `201` and a new device code that replaces any unredeemed one. The request is compared with the agent as it is now, so reusing a key with a different customer, name, policy, `actingFor` or `spendingPoolId`, after the agent's policy or pool was changed, for an agent that was deleted, or for one already connected is rejected with `409`. Without a key a retry cannot be recognised, so each request creates its own agent.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents","href":"/api-reference/agent-management/create-an-agent"},{"title":"List agent transaction approval requests","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/approvals","href":"/api-reference/agent-management/list-agent-transaction-approval-requests"},{"title":"List spending pools","description":"Retrieve a paginated list of the platform's spending pools, with their current usage.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /spending-pools","href":"/api-reference/agent-management/list-spending-pools"},{"title":"Create a spending pool","deprecated":null,"version":null,"openapi":"/openapi.yaml post /spending-pools","href":"/api-reference/agent-management/create-a-spending-pool"},{"title":"Get a spending pool","deprecated":null,"version":null,"openapi":"/openapi.yaml get /spending-pools/{spendingPoolId}","href":"/api-reference/agent-management/get-a-spending-pool"},{"title":"Archive a spending pool","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /spending-pools/{spendingPoolId}","href":"/api-reference/agent-management/archive-a-spending-pool"},{"title":"Update a spending pool","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /spending-pools/{spendingPoolId}","href":"/api-reference/agent-management/update-a-spending-pool"},{"title":"Get agent by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/{agentId}","href":"/api-reference/agent-management/get-agent-by-id"},{"title":"Delete agent","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /agents/{agentId}","href":"/api-reference/agent-management/delete-agent"},{"title":"Update agent","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /agents/{agentId}","href":"/api-reference/agent-management/update-agent"},{"title":"Update agent policy","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /agents/{agentId}/policy","href":"/api-reference/agent-management/update-agent-policy"},{"title":"Regenerate a device code","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/{agentId}/device-codes","href":"/api-reference/agent-management/regenerate-a-device-code"},{"title":"Hand a deleted agent's card to an agent","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/{agentId}/card-handover","href":"/api-reference/agent-management/hand-a-deleted-agents-card-to-an-agent"},{"title":"Approve an agent action","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/{agentId}/actions/{actionId}/approve","href":"/api-reference/agent-management/approve-an-agent-action"},{"title":"Reject an agent action","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/{agentId}/actions/{actionId}/reject","href":"/api-reference/agent-management/reject-an-agent-action"},{"title":"Get device code status","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/device-codes/status","href":"/api-reference/agent-management/get-device-code-status"},{"title":"Redeem device code","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/device-codes/redeem","href":"/api-reference/agent-management/redeem-device-code"}]},{"group":"Contact Verification","pages":[{"title":"Send an email verification code to a customer","deprecated":null,"version":null,"openapi":"/openapi.yaml post /customers/{customerId}/verify-email","href":"/api-reference/contact-verification/send-an-email-verification-code-to-a-customer"},{"title":"Confirm a customer's email verification code","deprecated":null,"version":null,"openapi":"/openapi.yaml post /customers/{customerId}/verify-email/confirm","href":"/api-reference/contact-verification/confirm-a-customers-email-verification-code"},{"title":"Send a phone verification code to a customer","deprecated":null,"version":null,"openapi":"/openapi.yaml post /customers/{customerId}/verify-phone","href":"/api-reference/contact-verification/send-a-phone-verification-code-to-a-customer"},{"title":"Confirm a customer's phone verification code","deprecated":null,"version":null,"openapi":"/openapi.yaml post /customers/{customerId}/verify-phone/confirm","href":"/api-reference/contact-verification/confirm-a-customers-phone-verification-code"}]},{"group":"Strong Customer Authentication","pages":[{"title":"List enrolled SCA factors","deprecated":null,"version":null,"openapi":"/openapi.yaml get /sca/factors","href":"/api-reference/strong-customer-authentication/list-enrolled-sca-factors"},{"title":"Start SCA factor enrollment","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sca/factors","href":"/api-reference/strong-customer-authentication/start-sca-factor-enrollment"},{"title":"Confirm SCA factor enrollment","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sca/factors/confirm","href":"/api-reference/strong-customer-authentication/confirm-sca-factor-enrollment"},{"title":"Delete an enrolled SCA factor","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /sca/factors/{credentialId}","href":"/api-reference/strong-customer-authentication/delete-an-enrolled-sca-factor"},{"title":"Start an SCA login","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sca/login/start","href":"/api-reference/strong-customer-authentication/start-an-sca-login"},{"title":"Complete an SCA login","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sca/login/complete","href":"/api-reference/strong-customer-authentication/complete-an-sca-login"},{"title":"Record a security event","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sca/record-event","href":"/api-reference/strong-customer-authentication/record-a-security-event"},{"title":"Start a 2FA reset","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sca/factors/reset","href":"/api-reference/strong-customer-authentication/start-a-2fa-reset"},{"title":"Get 2FA reset status","deprecated":null,"version":null,"openapi":"/openapi.yaml get /sca/factors/reset/{resetId}","href":"/api-reference/strong-customer-authentication/get-2fa-reset-status"},{"title":"Complete a 2FA reset","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sca/factors/reset/{resetId}/complete","href":"/api-reference/strong-customer-authentication/complete-a-2fa-reset"},{"title":"Start trusting a beneficiary","deprecated":null,"version":null,"openapi":"/openapi.yaml post /customers/external-accounts/{externalAccountId}/trust","href":"/api-reference/strong-customer-authentication/start-trusting-a-beneficiary"},{"title":"Confirm trusting a beneficiary","deprecated":null,"version":null,"openapi":"/openapi.yaml post /customers/external-accounts/{externalAccountId}/trust/confirm","href":"/api-reference/strong-customer-authentication/confirm-trusting-a-beneficiary"},{"title":"Start untrusting a beneficiary","deprecated":null,"version":null,"openapi":"/openapi.yaml post /customers/external-accounts/{externalAccountId}/untrust","href":"/api-reference/strong-customer-authentication/start-untrusting-a-beneficiary"},{"title":"Confirm untrusting a beneficiary","deprecated":null,"version":null,"openapi":"/openapi.yaml post /customers/external-accounts/{externalAccountId}/untrust/confirm","href":"/api-reference/strong-customer-authentication/confirm-untrusting-a-beneficiary"},{"title":"Authorize a quote's SCA challenge","deprecated":null,"version":null,"openapi":"/openapi.yaml post /quotes/{quoteId}/authorize","href":"/api-reference/strong-customer-authentication/authorize-a-quotes-sca-challenge"},{"title":"Resend a quote's SCA challenge code","deprecated":null,"version":null,"openapi":"/openapi.yaml post /quotes/{quoteId}/authorize/resend","href":"/api-reference/strong-customer-authentication/resend-a-quotes-sca-challenge-code"}]},{"group":"Internal Accounts","pages":[{"title":"Create an internal account","deprecated":null,"version":null,"openapi":"/openapi.yaml post /internal-accounts","href":"/api-reference/internal-accounts/create-an-internal-account"},{"title":"List Customer internal accounts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /customers/internal-accounts","href":"/api-reference/internal-accounts/list-customer-internal-accounts"},{"title":"List platform internal accounts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /platform/internal-accounts","href":"/api-reference/internal-accounts/list-platform-internal-accounts"},{"title":"Update internal account","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /internal-accounts/{id}","href":"/api-reference/internal-accounts/update-internal-account"},{"title":"Authorize a rule-based account's SCA challenge","deprecated":null,"version":null,"openapi":"/openapi.yaml post /internal-accounts/{id}/authorize","href":"/api-reference/internal-accounts/authorize-a-rule-based-accounts-sca-challenge"},{"title":"Resend a rule-based account's SCA challenge code","deprecated":null,"version":null,"openapi":"/openapi.yaml post /internal-accounts/{id}/authorize/resend","href":"/api-reference/internal-accounts/resend-a-rule-based-accounts-sca-challenge-code"},{"title":"Move a rule-based account's stranded funds","deprecated":null,"version":null,"openapi":"/openapi.yaml post /internal-accounts/{id}/stranded-funds/transfer","href":"/api-reference/internal-accounts/move-a-rule-based-accounts-stranded-funds"},{"title":"Export internal account wallet credentials","deprecated":null,"version":null,"openapi":"/openapi.yaml post /internal-accounts/{id}/export","href":"/api-reference/internal-accounts/export-internal-account-wallet-credentials"}]},{"group":"External Accounts","pages":[{"title":"List Customer external accounts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /customers/external-accounts","href":"/api-reference/external-accounts/list-customer-external-accounts"},{"title":"Add a new external account","deprecated":null,"version":null,"openapi":"/openapi.yaml post /customers/external-accounts","href":"/api-reference/external-accounts/add-a-new-external-account"},{"title":"Get customer external account by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml get /customers/external-accounts/{externalAccountId}","href":"/api-reference/external-accounts/get-customer-external-account-by-id"},{"title":"Delete customer external account by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /customers/external-accounts/{externalAccountId}","href":"/api-reference/external-accounts/delete-customer-external-account-by-id"},{"title":"Start an ownership verification challenge","deprecated":null,"version":null,"openapi":"/openapi.yaml post /customers/external-accounts/{externalAccountId}/challenge","href":"/api-reference/external-accounts/start-an-ownership-verification-challenge"},{"title":"Verify ownership with a wallet signature","deprecated":null,"version":null,"openapi":"/openapi.yaml post /customers/external-accounts/{externalAccountId}/verify","href":"/api-reference/external-accounts/verify-ownership-with-a-wallet-signature"},{"title":"List platform external accounts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /platform/external-accounts","href":"/api-reference/external-accounts/list-platform-external-accounts"},{"title":"Add a new platform external account","deprecated":null,"version":null,"openapi":"/openapi.yaml post /platform/external-accounts","href":"/api-reference/external-accounts/add-a-new-platform-external-account"},{"title":"Get platform external account by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml get /platform/external-accounts/{externalAccountId}","href":"/api-reference/external-accounts/get-platform-external-account-by-id"},{"title":"Delete platform external account by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /platform/external-accounts/{externalAccountId}","href":"/api-reference/external-accounts/delete-platform-external-account-by-id"},{"title":"Start an ownership verification challenge","deprecated":null,"version":null,"openapi":"/openapi.yaml post /platform/external-accounts/{externalAccountId}/challenge","href":"/api-reference/external-accounts/start-an-ownership-verification-challenge-1"},{"title":"Verify ownership with a wallet signature","deprecated":null,"version":null,"openapi":"/openapi.yaml post /platform/external-accounts/{externalAccountId}/verify","href":"/api-reference/external-accounts/verify-ownership-with-a-wallet-signature-1"}]},{"group":"Documents","pages":[{"title":"List documents","deprecated":null,"version":null,"openapi":"/openapi.yaml get /documents","href":"/api-reference/documents/list-documents"},{"title":"Upload a document","deprecated":null,"version":null,"openapi":"/openapi.yaml post /documents","href":"/api-reference/documents/upload-a-document"},{"title":"Get a document by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml get /documents/{documentId}","href":"/api-reference/documents/get-a-document-by-id"},{"title":"Replace a document","deprecated":null,"version":null,"openapi":"/openapi.yaml put /documents/{documentId}","href":"/api-reference/documents/replace-a-document"},{"title":"Delete a document","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /documents/{documentId}","href":"/api-reference/documents/delete-a-document"}]},{"group":"Same-Currency Transfers","pages":[{"title":"Create a transfer-in request","deprecated":true,"version":null,"openapi":"/openapi.yaml post /transfer-in","href":"/api-reference/same-currency-transfers/create-a-transfer-in-request"},{"title":"Create a transfer-out request","deprecated":true,"version":null,"openapi":"/openapi.yaml post /transfer-out","href":"/api-reference/same-currency-transfers/create-a-transfer-out-request"}]},{"group":"Cross-Currency Transfers","pages":[{"title":"Look up an UMA address for payment","deprecated":null,"version":null,"openapi":"/openapi.yaml get /receiver/uma/{receiverUmaAddress}","href":"/api-reference/cross-currency-transfers/look-up-an-uma-address-for-payment"},{"title":"Look up an external account for payment","deprecated":null,"version":null,"openapi":"/openapi.yaml get /receiver/external-account/{accountId}","href":"/api-reference/cross-currency-transfers/look-up-an-external-account-for-payment"},{"title":"Upload a payment document","deprecated":null,"version":null,"openapi":"/openapi.yaml post /payment-documents","href":"/api-reference/cross-currency-transfers/upload-a-payment-document"},{"title":"Get a payment document","deprecated":null,"version":null,"openapi":"/openapi.yaml get /payment-documents/{paymentDocumentId}","href":"/api-reference/cross-currency-transfers/get-a-payment-document"},{"title":"Get quote by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml get /quotes/{quoteId}","href":"/api-reference/cross-currency-transfers/get-quote-by-id"},{"title":"Create a transfer quote","deprecated":null,"version":null,"openapi":"/openapi.yaml post /quotes","href":"/api-reference/cross-currency-transfers/create-a-transfer-quote"},{"title":"Execute a quote","deprecated":null,"version":null,"openapi":"/openapi.yaml post /quotes/{quoteId}/execute","href":"/api-reference/cross-currency-transfers/execute-a-quote"}]},{"group":"Transactions","pages":[{"title":"List transactions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /transactions","href":"/api-reference/transactions/list-transactions"},{"title":"Get transaction by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml get /transactions/{transactionId}","href":"/api-reference/transactions/get-transaction-by-id"},{"title":"Confirm receipt delivery","deprecated":null,"version":null,"openapi":"/openapi.yaml post /transactions/{transactionId}/confirm","href":"/api-reference/transactions/confirm-receipt-delivery"},{"title":"Approve a pending incoming payment","deprecated":null,"version":null,"openapi":"/openapi.yaml post /transactions/{transactionId}/approve","href":"/api-reference/transactions/approve-a-pending-incoming-payment"},{"title":"Reject a pending incoming payment","deprecated":null,"version":null,"openapi":"/openapi.yaml post /transactions/{transactionId}/reject","href":"/api-reference/transactions/reject-a-pending-incoming-payment"},{"title":"Cancel a bank transfer","deprecated":null,"version":null,"openapi":"/openapi.yaml post /transactions/{transactionId}/cancel","href":"/api-reference/transactions/cancel-a-bank-transfer"}]},{"group":"Cards","pages":[{"title":"List the disputes on a card transaction","deprecated":null,"version":null,"openapi":"/openapi.yaml get /transactions/{transactionId}/disputes","href":"/api-reference/cards/list-the-disputes-on-a-card-transaction"},{"title":"List card velocity limits","deprecated":null,"version":null,"openapi":"/openapi.yaml get /card-velocity-limits","href":"/api-reference/cards/list-card-velocity-limits"},{"title":"Create a card velocity limit","deprecated":null,"version":null,"openapi":"/openapi.yaml post /card-velocity-limits","href":"/api-reference/cards/create-a-card-velocity-limit"},{"title":"Get a card velocity limit","deprecated":null,"version":null,"openapi":"/openapi.yaml get /card-velocity-limits/{id}","href":"/api-reference/cards/get-a-card-velocity-limit"},{"title":"Delete a card velocity limit","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /card-velocity-limits/{id}","href":"/api-reference/cards/delete-a-card-velocity-limit"},{"title":"List cards","deprecated":null,"version":null,"openapi":"/openapi.yaml get /cards","href":"/api-reference/cards/list-cards"},{"title":"Issue a card","deprecated":null,"version":null,"openapi":"/openapi.yaml post /cards","href":"/api-reference/cards/issue-a-card"},{"title":"Get a card","deprecated":null,"version":null,"openapi":"/openapi.yaml get /cards/{id}","href":"/api-reference/cards/get-a-card"},{"title":"Update a card","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /cards/{id}","href":"/api-reference/cards/update-a-card"},{"title":"Reveal card details","deprecated":null,"version":null,"openapi":"/openapi.yaml post /cards/{id}/reveal","href":"/api-reference/cards/reveal-card-details"},{"title":"Add a card to a digital wallet","deprecated":null,"version":null,"openapi":"/openapi.yaml post /cards/{id}/tokenize","href":"/api-reference/cards/add-a-card-to-a-digital-wallet"},{"title":"Add a card to a digital wallet from a website","deprecated":null,"version":null,"openapi":"/openapi.yaml post /cards/{id}/web-tokenize","href":"/api-reference/cards/add-a-card-to-a-digital-wallet-from-a-website"},{"title":"Get a card dispute","deprecated":null,"version":null,"openapi":"/openapi.yaml get /card-disputes/{disputeId}","href":"/api-reference/cards/get-a-card-dispute"},{"title":"Set a card PIN","deprecated":null,"version":null,"openapi":"/openapi.yaml post /cards/{id}/set-pin","href":"/api-reference/cards/set-a-card-pin"},{"title":"Get a PIN-entry URL","deprecated":null,"version":null,"openapi":"/openapi.yaml get /cards/{id}/pin-entry-url","href":"/api-reference/cards/get-a-pin-entry-url"},{"title":"Unblock a card PIN","deprecated":null,"version":null,"openapi":"/openapi.yaml post /cards/{id}/pin/unblock","href":"/api-reference/cards/unblock-a-card-pin"}]},{"group":"Sandbox","pages":[{"title":"Send a test webhook","deprecated":null,"version":null,"openapi":"/openapi.yaml post /webhooks/test","href":"/api-reference/sandbox/send-a-test-webhook"},{"title":"Simulate sending funds","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sandbox/send","href":"/api-reference/sandbox/simulate-sending-funds"},{"title":"Simulate payment send to test receiving an UMA payment","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sandbox/uma/receive","href":"/api-reference/sandbox/simulate-payment-send-to-test-receiving-an-uma-payment"},{"title":"Simulate funding an internal account","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sandbox/internal-accounts/{accountId}/fund","href":"/api-reference/sandbox/simulate-funding-an-internal-account"},{"title":"Simulate a card authorization","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sandbox/cards/{id}/simulate/authorization","href":"/api-reference/sandbox/simulate-a-card-authorization"},{"title":"Simulate a card clearing","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sandbox/cards/{id}/simulate/clearing","href":"/api-reference/sandbox/simulate-a-card-clearing"},{"title":"Simulate a card return","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sandbox/cards/{id}/simulate/return","href":"/api-reference/sandbox/simulate-a-card-return"},{"title":"Simulate a card balance inquiry","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sandbox/cards/{id}/simulate/balance_inquiry","href":"/api-reference/sandbox/simulate-a-card-balance-inquiry"},{"title":"Simulate a card credit authorization","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sandbox/cards/{id}/simulate/credit_authorization","href":"/api-reference/sandbox/simulate-a-card-credit-authorization"},{"title":"Simulate a card financial authorization","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sandbox/cards/{id}/simulate/financial_authorization","href":"/api-reference/sandbox/simulate-a-card-financial-authorization"},{"title":"Simulate a card financial credit authorization","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sandbox/cards/{id}/simulate/financial_credit_authorization","href":"/api-reference/sandbox/simulate-a-card-financial-credit-authorization"},{"title":"Simulate a card authorization advice","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sandbox/cards/{id}/simulate/authorization_advice","href":"/api-reference/sandbox/simulate-a-card-authorization-advice"},{"title":"Simulate a card credit authorization advice","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sandbox/cards/{id}/simulate/credit_authorization_advice","href":"/api-reference/sandbox/simulate-a-card-credit-authorization-advice"},{"title":"Simulate a card return reversal","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sandbox/cards/{id}/simulate/return_reversal","href":"/api-reference/sandbox/simulate-a-card-return-reversal"},{"title":"Simulate a card authorization reversal","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sandbox/cards/{id}/simulate/authorization_reversal","href":"/api-reference/sandbox/simulate-a-card-authorization-reversal"},{"title":"Simulate a card authorization expiry","deprecated":null,"version":null,"openapi":"/openapi.yaml post /sandbox/cards/{id}/simulate/authorization_expiry","href":"/api-reference/sandbox/simulate-a-card-authorization-expiry"}]},{"group":"Invitations","pages":[{"title":"Create an UMA invitation","deprecated":null,"version":null,"openapi":"/openapi.yaml post /invitations","href":"/api-reference/invitations/create-an-uma-invitation"},{"title":"Get an UMA invitation by code","deprecated":null,"version":null,"openapi":"/openapi.yaml get /invitations/{invitationCode}","href":"/api-reference/invitations/get-an-uma-invitation-by-code"},{"title":"Claim an UMA invitation","deprecated":null,"version":null,"openapi":"/openapi.yaml post /invitations/{invitationCode}/claim","href":"/api-reference/invitations/claim-an-uma-invitation"},{"title":"Cancel an UMA invitation","deprecated":null,"version":null,"openapi":"/openapi.yaml post /invitations/{invitationCode}/cancel","href":"/api-reference/invitations/cancel-an-uma-invitation"}]},{"group":"API Tokens","pages":[{"title":"List tokens","deprecated":null,"version":null,"openapi":"/openapi.yaml get /tokens","href":"/api-reference/api-tokens/list-tokens"},{"title":"Create a new API token","deprecated":null,"version":null,"openapi":"/openapi.yaml post /tokens","href":"/api-reference/api-tokens/create-a-new-api-token"},{"title":"Get API token by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml get /tokens/{tokenId}","href":"/api-reference/api-tokens/get-api-token-by-id"},{"title":"Delete API token by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /tokens/{tokenId}","href":"/api-reference/api-tokens/delete-api-token-by-id"}]},{"group":"Periodic Statements","pages":[{"title":"List balance changes for a period","deprecated":null,"version":null,"openapi":"/openapi.yaml get /internal-accounts/{id}/balance-changes","href":"/api-reference/periodic-statements/list-balance-changes-for-a-period"},{"title":"Send a receipt for a periodic statement","deprecated":null,"version":null,"openapi":"/openapi.yaml post /internal-accounts/{id}/confirm-statement","href":"/api-reference/periodic-statements/send-a-receipt-for-a-periodic-statement"}]},{"group":"Embedded Wallet Auth","pages":[{"title":"Add an administrator credential","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/admin-credentials","href":"/api-reference/embedded-wallet-auth/add-an-administrator-credential"},{"title":"Revoke an administrator's credentials","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /auth/admin-credentials/{adminReference}","href":"/api-reference/embedded-wallet-auth/revoke-an-administrators-credentials"},{"title":"List authentication credentials","deprecated":null,"version":null,"openapi":"/openapi.yaml get /auth/credentials","href":"/api-reference/embedded-wallet-auth/list-authentication-credentials"},{"title":"Create an authentication credential","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/credentials","href":"/api-reference/embedded-wallet-auth/create-an-authentication-credential"},{"title":"Revoke an authentication credential","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /auth/credentials/{id}","href":"/api-reference/embedded-wallet-auth/revoke-an-authentication-credential"},{"title":"Verify an authentication credential","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/credentials/{id}/verify","href":"/api-reference/embedded-wallet-auth/verify-an-authentication-credential"},{"title":"Re-issue an authentication credential challenge","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/credentials/{id}/challenge","href":"/api-reference/embedded-wallet-auth/re-issue-an-authentication-credential-challenge"},{"title":"List active sessions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /auth/sessions","href":"/api-reference/embedded-wallet-auth/list-active-sessions"},{"title":"Revoke an authentication session","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /auth/sessions/{id}","href":"/api-reference/embedded-wallet-auth/revoke-an-authentication-session"},{"title":"Refresh an authentication session","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/sessions/{id}/refresh","href":"/api-reference/embedded-wallet-auth/refresh-an-authentication-session"},{"title":"List delegated signing keys","deprecated":null,"version":null,"openapi":"/openapi.yaml get /auth/delegated-keys","href":"/api-reference/embedded-wallet-auth/list-delegated-signing-keys"},{"title":"Create a delegated signing key","deprecated":null,"version":null,"openapi":"/openapi.yaml post /auth/delegated-keys","href":"/api-reference/embedded-wallet-auth/create-a-delegated-signing-key"},{"title":"Get a delegated signing key","deprecated":null,"version":null,"openapi":"/openapi.yaml get /auth/delegated-keys/{id}","href":"/api-reference/embedded-wallet-auth/get-a-delegated-signing-key"},{"title":"Revoke a delegated signing key","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /auth/delegated-keys/{id}","href":"/api-reference/embedded-wallet-auth/revoke-a-delegated-signing-key"}]},{"group":"Agent Operations","pages":[{"title":"Get current agent","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me","href":"/api-reference/agent-operations/get-current-agent"},{"title":"Get agent customer","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/customer","href":"/api-reference/agent-operations/get-agent-customer"},{"title":"Update agent customer","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /agents/me/customer","href":"/api-reference/agent-operations/update-agent-customer"},{"title":"Submit agent customer for verification","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/me/verifications","href":"/api-reference/agent-operations/submit-agent-customer-for-verification"},{"title":"Generate an agent customer KYC link","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/me/kyc-link","href":"/api-reference/agent-operations/generate-an-agent-customer-kyc-link"},{"title":"Create an agent deposit","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/me/deposits","href":"/api-reference/agent-operations/create-an-agent-deposit"},{"title":"Get an agent deposit","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/deposits/{depositId}","href":"/api-reference/agent-operations/get-an-agent-deposit"},{"title":"List agent transactions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/transactions","href":"/api-reference/agent-operations/list-agent-transactions"},{"title":"Get agent transaction by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/transactions/{transactionId}","href":"/api-reference/agent-operations/get-agent-transaction-by-id"},{"title":"Create a transfer quote","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/me/quotes","href":"/api-reference/agent-operations/create-a-transfer-quote"},{"title":"Get agent quote by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/quotes/{quoteId}","href":"/api-reference/agent-operations/get-agent-quote-by-id"},{"title":"Execute a quote","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/me/quotes/{quoteId}/execute","href":"/api-reference/agent-operations/execute-a-quote"},{"title":"List agent's own actions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/actions","href":"/api-reference/agent-operations/list-agents-own-actions"},{"title":"Get an agent action","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/actions/{actionId}","href":"/api-reference/agent-operations/get-an-agent-action"},{"title":"List agent's internal accounts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/internal-accounts","href":"/api-reference/agent-operations/list-agents-internal-accounts"},{"title":"List agent external accounts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/external-accounts","href":"/api-reference/agent-operations/list-agent-external-accounts"},{"title":"Add an external account","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/me/external-accounts","href":"/api-reference/agent-operations/add-an-external-account"},{"title":"Get agent external account by ID","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/external-accounts/{externalAccountId}","href":"/api-reference/agent-operations/get-agent-external-account-by-id"},{"title":"Delete agent external account","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /agents/me/external-accounts/{externalAccountId}","href":"/api-reference/agent-operations/delete-agent-external-account"},{"title":"List claimable payouts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/claimable-payouts","href":"/api-reference/agent-operations/list-claimable-payouts"},{"title":"Send a claimable payout","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/me/claimable-payouts","href":"/api-reference/agent-operations/send-a-claimable-payout"},{"title":"Get a claimable payout","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/claimable-payouts/{claimablePayoutId}","href":"/api-reference/agent-operations/get-a-claimable-payout"},{"title":"Cancel a claimable payout","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/me/claimable-payouts/{claimablePayoutId}/cancel","href":"/api-reference/agent-operations/cancel-a-claimable-payout"},{"title":"List payout runs","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/payout-runs","href":"/api-reference/agent-operations/list-payout-runs"},{"title":"Create a payout run","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/me/payout-runs","href":"/api-reference/agent-operations/create-a-payout-run"},{"title":"Preview a payout run","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/me/payout-runs/preview","href":"/api-reference/agent-operations/preview-a-payout-run"},{"title":"Get a payout run","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/payout-runs/{payoutRunId}","href":"/api-reference/agent-operations/get-a-payout-run"},{"title":"List the rows of a payout run","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/payout-runs/{payoutRunId}/rows","href":"/api-reference/agent-operations/list-the-rows-of-a-payout-run"},{"title":"Cancel a payout run","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/me/payout-runs/{payoutRunId}/cancel","href":"/api-reference/agent-operations/cancel-a-payout-run"},{"title":"Preview a settlement rule","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/me/settlement-rules/preview","href":"/api-reference/agent-operations/preview-a-settlement-rule"},{"title":"List settlement rules","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/settlement-rules","href":"/api-reference/agent-operations/list-settlement-rules"},{"title":"Create a settlement rule","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/me/settlement-rules","href":"/api-reference/agent-operations/create-a-settlement-rule"},{"title":"Get a settlement rule","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/settlement-rules/{settlementRuleId}","href":"/api-reference/agent-operations/get-a-settlement-rule"},{"title":"Delete a settlement rule","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /agents/me/settlement-rules/{settlementRuleId}","href":"/api-reference/agent-operations/delete-a-settlement-rule"},{"title":"Update a settlement rule","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /agents/me/settlement-rules/{settlementRuleId}","href":"/api-reference/agent-operations/update-a-settlement-rule"},{"title":"List the executions of a settlement rule","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/settlement-rules/{settlementRuleId}/executions","href":"/api-reference/agent-operations/list-the-executions-of-a-settlement-rule"},{"title":"Cancel a held execution","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/me/settlement-rules/{settlementRuleId}/executions/{executionId}/cancel","href":"/api-reference/agent-operations/cancel-a-held-execution"},{"title":"List agent cards","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/cards","href":"/api-reference/agent-operations/list-agent-cards"},{"title":"Issue an agent card","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/me/cards","href":"/api-reference/agent-operations/issue-an-agent-card"},{"title":"Get agent card","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/cards/{cardId}","href":"/api-reference/agent-operations/get-agent-card"},{"title":"Tighten or freeze an agent card","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /agents/me/cards/{cardId}","href":"/api-reference/agent-operations/tighten-or-freeze-an-agent-card"},{"title":"Reveal a purchase card","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/me/cards/{cardId}/reveal","href":"/api-reference/agent-operations/reveal-a-purchase-card"},{"title":"Add the agent's card to a digital wallet","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/me/cards/{cardId}/tokenize","href":"/api-reference/agent-operations/add-the-agents-card-to-a-digital-wallet"},{"title":"Increase a purchase card amount","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/me/cards/{cardId}/increase","href":"/api-reference/agent-operations/increase-a-purchase-card-amount"},{"title":"List the stored cards the agent may use","deprecated":null,"version":null,"openapi":"/openapi.yaml get /agents/me/stored-cards","href":"/api-reference/agent-operations/list-the-stored-cards-the-agent-may-use"},{"title":"Ask for a stored card's details","deprecated":null,"version":null,"openapi":"/openapi.yaml post /agents/me/stored-cards/{storedCardId}/reveal","href":"/api-reference/agent-operations/ask-for-a-stored-cards-details"},{"title":"Open a stored card link","deprecated":null,"version":null,"openapi":"/openapi.yaml get /stored-card-reveals/{token}","href":"/api-reference/agent-operations/open-a-stored-card-link"}]},{"group":"Claimable Payouts","pages":[{"title":"Issue a claim token","deprecated":null,"version":null,"openapi":"/openapi.yaml post /claimable-payouts/{claimablePayoutId}/claim-token","href":"/api-reference/claimable-payouts/issue-a-claim-token"},{"title":"Look up a claim","deprecated":null,"version":null,"openapi":"/openapi.yaml post /claimable-payouts/claim/lookup","href":"/api-reference/claimable-payouts/look-up-a-claim"},{"title":"List payout options for a claim","deprecated":null,"version":null,"openapi":"/openapi.yaml post /claimable-payouts/claim/options","href":"/api-reference/claimable-payouts/list-payout-options-for-a-claim"},{"title":"Quote a claim","deprecated":null,"version":null,"openapi":"/openapi.yaml post /claimable-payouts/claim/quote","href":"/api-reference/claimable-payouts/quote-a-claim"},{"title":"Confirm a claim","deprecated":null,"version":null,"openapi":"/openapi.yaml post /claimable-payouts/claim/confirm","href":"/api-reference/claimable-payouts/confirm-a-claim"}]},{"group":"Stablecoins","pages":[{"title":"List stablecoins","deprecated":null,"version":null,"openapi":"/openapi.yaml get /stablecoins","href":"/api-reference/stablecoins/list-stablecoins"},{"title":"Register an existing provider-created stablecoin","deprecated":null,"version":null,"openapi":"/openapi.yaml post /stablecoins","href":"/api-reference/stablecoins/register-an-existing-provider-created-stablecoin"},{"title":"Get a stablecoin","deprecated":null,"version":null,"openapi":"/openapi.yaml get /stablecoins/{stablecoinId}","href":"/api-reference/stablecoins/get-a-stablecoin"},{"title":"Request Grid enablement for a stablecoin","deprecated":null,"version":null,"openapi":"/openapi.yaml post /stablecoins/{stablecoinId}/request-grid-enablement","href":"/api-reference/stablecoins/request-grid-enablement-for-a-stablecoin"},{"title":"Create a stablecoin mint operation","deprecated":null,"version":null,"openapi":"/openapi.yaml post /stablecoins/{stablecoinId}/mints","href":"/api-reference/stablecoins/create-a-stablecoin-mint-operation"},{"title":"Create a stablecoin burn operation","deprecated":null,"version":null,"openapi":"/openapi.yaml post /stablecoins/{stablecoinId}/burns","href":"/api-reference/stablecoins/create-a-stablecoin-burn-operation"},{"title":"List stablecoin issuer operations","deprecated":null,"version":null,"openapi":"/openapi.yaml get /stablecoins/{stablecoinId}/operations","href":"/api-reference/stablecoins/list-stablecoin-issuer-operations"},{"title":"Get a stablecoin issuer operation","deprecated":null,"version":null,"openapi":"/openapi.yaml get /stablecoin-operations/{stablecoinOperationId}","href":"/api-reference/stablecoins/get-a-stablecoin-issuer-operation"},{"title":"List stablecoin provider account links","deprecated":null,"version":null,"openapi":"/openapi.yaml get /stablecoin-provider-accounts","href":"/api-reference/stablecoins/list-stablecoin-provider-account-links"},{"title":"Link a stablecoin provider account","deprecated":null,"version":null,"openapi":"/openapi.yaml post /stablecoin-provider-accounts","href":"/api-reference/stablecoins/link-a-stablecoin-provider-account"},{"title":"Get a stablecoin provider account link","deprecated":null,"version":null,"openapi":"/openapi.yaml get /stablecoin-provider-accounts/{stablecoinProviderAccountId}","href":"/api-reference/stablecoins/get-a-stablecoin-provider-account-link"},{"title":"Revoke a stablecoin provider account link","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /stablecoin-provider-accounts/{stablecoinProviderAccountId}","href":"/api-reference/stablecoins/revoke-a-stablecoin-provider-account-link"}]},{"group":"Embedded Care","pages":[{"title":"Send a care chat message","deprecated":null,"version":null,"openapi":"/openapi.yaml post /care/chats/{chatId}/messages","href":"/api-reference/embedded-care/send-a-care-chat-message"},{"title":"End a care chat","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /care/chats/{chatId}","href":"/api-reference/embedded-care/end-a-care-chat"}]},{"group":"Payout Runs","pages":[{"title":"Create a payout run","deprecated":null,"version":null,"openapi":"/openapi.yaml post /payout-runs","href":"/api-reference/payout-runs/create-a-payout-run"},{"title":"Get a payout run","deprecated":null,"version":null,"openapi":"/openapi.yaml get /payout-runs/{payoutRunId}","href":"/api-reference/payout-runs/get-a-payout-run"},{"title":"List the rows of a payout run","deprecated":null,"version":null,"openapi":"/openapi.yaml get /payout-runs/{payoutRunId}/rows","href":"/api-reference/payout-runs/list-the-rows-of-a-payout-run"},{"title":"Cancel a payout run","deprecated":null,"version":null,"openapi":"/openapi.yaml post /payout-runs/{payoutRunId}/cancel","href":"/api-reference/payout-runs/cancel-a-payout-run"},{"title":"Export a payout run for reconciliation","deprecated":null,"version":null,"openapi":"/openapi.yaml get /payout-runs/{payoutRunId}/export","href":"/api-reference/payout-runs/export-a-payout-run-for-reconciliation"}]},{"group":"Settlement Rules","pages":[{"title":"List settlement rules","deprecated":null,"version":null,"openapi":"/openapi.yaml get /settlement-rules","href":"/api-reference/settlement-rules/list-settlement-rules"},{"title":"Create a settlement rule","deprecated":null,"version":null,"openapi":"/openapi.yaml post /settlement-rules","href":"/api-reference/settlement-rules/create-a-settlement-rule"},{"title":"Preview a settlement rule","deprecated":null,"version":null,"openapi":"/openapi.yaml post /settlement-rules/preview","href":"/api-reference/settlement-rules/preview-a-settlement-rule"},{"title":"Get a settlement rule","deprecated":null,"version":null,"openapi":"/openapi.yaml get /settlement-rules/{settlementRuleId}","href":"/api-reference/settlement-rules/get-a-settlement-rule"},{"title":"Delete a settlement rule","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /settlement-rules/{settlementRuleId}","href":"/api-reference/settlement-rules/delete-a-settlement-rule"},{"title":"Update a settlement rule","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /settlement-rules/{settlementRuleId}","href":"/api-reference/settlement-rules/update-a-settlement-rule"},{"title":"List the executions of a settlement rule","deprecated":null,"version":null,"openapi":"/openapi.yaml get /settlement-rules/{settlementRuleId}/executions","href":"/api-reference/settlement-rules/list-the-executions-of-a-settlement-rule"},{"title":"Cancel a held execution","deprecated":null,"version":null,"openapi":"/openapi.yaml post /settlement-rules/{settlementRuleId}/executions/{executionId}/cancel","href":"/api-reference/settlement-rules/cancel-a-held-execution"}]},{"group":"Webhooks","pages":[{"title":"Agent action pending approval webhook","version":null,"deprecated":null,"openapi":"/openapi.yaml webhook agent-action","href":"/api-reference/webhooks/agent-action-pending-approval-webhook"},{"title":"Claimable payout webhook","version":null,"deprecated":null,"openapi":"/openapi.yaml webhook claimable-payout","href":"/api-reference/webhooks/claimable-payout-webhook"},{"title":"Incoming payment webhook and approval mechanism","version":null,"deprecated":null,"openapi":"/openapi.yaml webhook incoming-payment","href":"/api-reference/webhooks/incoming-payment-webhook-and-approval-mechanism"},{"title":"Outgoing payment status webhook","version":null,"deprecated":null,"openapi":"/openapi.yaml webhook outgoing-payment","href":"/api-reference/webhooks/outgoing-payment-status-webhook"},{"title":"Test webhook for integration verification","version":null,"deprecated":null,"openapi":"/openapi.yaml webhook test-webhook","href":"/api-reference/webhooks/test-webhook-for-integration-verification"},{"title":"Bulk upload status webhook","version":null,"deprecated":null,"openapi":"/openapi.yaml webhook bulk-upload","href":"/api-reference/webhooks/bulk-upload-status-webhook"},{"title":"Invitation claimed webhook","version":null,"deprecated":null,"openapi":"/openapi.yaml webhook invitation-claimed","href":"/api-reference/webhooks/invitation-claimed-webhook"},{"title":"Customer status change","version":null,"deprecated":null,"openapi":"/openapi.yaml webhook customer-update","href":"/api-reference/webhooks/customer-status-change"},{"title":"Internal account status webhook","version":null,"deprecated":null,"openapi":"/openapi.yaml webhook internal-account-status","href":"/api-reference/webhooks/internal-account-status-webhook"},{"title":"External account webhook","version":null,"deprecated":null,"openapi":"/openapi.yaml webhook external-account-status","href":"/api-reference/webhooks/external-account-webhook"},{"title":"Verification status change","version":null,"deprecated":null,"openapi":"/openapi.yaml webhook verification-update","href":"/api-reference/webhooks/verification-status-change"},{"title":"Card status change","version":null,"deprecated":null,"openapi":"/openapi.yaml webhook card-status-change","href":"/api-reference/webhooks/card-status-change"},{"title":"Card pin status change","version":null,"deprecated":null,"openapi":"/openapi.yaml webhook card-pin-status-change","href":"/api-reference/webhooks/card-pin-status-change"},{"title":"Card transaction","version":null,"deprecated":null,"openapi":"/openapi.yaml webhook card-transaction","href":"/api-reference/webhooks/card-transaction"},{"title":"Card authorization request","version":null,"deprecated":null,"openapi":"/openapi.yaml webhook card-authorization-request","href":"/api-reference/webhooks/card-authorization-request"},{"title":"Wallet operation completed or failed","version":null,"deprecated":null,"openapi":"/openapi.yaml webhook wallet-operation","href":"/api-reference/webhooks/wallet-operation-completed-or-failed"},{"title":"Payout run finished webhook","version":null,"deprecated":null,"openapi":"/openapi.yaml webhook payout-run","href":"/api-reference/webhooks/payout-run-finished-webhook"},{"title":"Settlement rule execution finished webhook","version":null,"deprecated":null,"openapi":"/openapi.yaml webhook settlement-rule","href":"/api-reference/webhooks/settlement-rule-execution-finished-webhook"}]}]}]}]},"basePath":"","title":"List agent transaction approval requests - Lightspark Docs","buildId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","deploymentId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DDP9JXtj.js","utils-8yQyvEtx.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CBCFR8Sn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-rQaXkUHa.js","snippetPresets-J5KpBTgV.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BVxVH4Cj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BxdQ2vIi.js","shallow-BjV2tFiD.js","getApiPlaygroundDisplay-C_55tL4O.js","CodeSnippet-C0JpiCOC.js","CodeSnippets-w9Ps7djG.js","Page-DTNSD-0M.js","getPastedJson-BDfB-H8d.js","icon-g-kUkkO9.js","MethodPill-v4l6fq0h.js","DuplicateIcon-CvLo-CfU.js","createIcon-165clrrV.js","DynamicMarkdown-D3RQ-fEj.js","SectionHeading-vvo-3yLf.js","axios-vUo_bRtp.js","Markdown-CMT1uFWQ.js","clsx-C8f2yC9R.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CI2D8R2Y.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-k78Wrw_e.js"]}