From 9dcc2b6ac6585bf0481d62ed6593f1d6b1d11487 Mon Sep 17 00:00:00 2001 From: Nick Geib <152412556+ngeib-paxos@users.noreply.github.com> Date: Thu, 18 Sep 2025 19:04:17 -0500 Subject: [PATCH 1/4] CHAINS-6406 Preview Managed Transfer docs --- .../trustedtransfer_public.openapi.json | 808 ++++++++++++++++++ docs.json | 17 +- 2 files changed, 823 insertions(+), 2 deletions(-) create mode 100644 api-reference/preview/managed-transfer/trustedtransfer_public.openapi.json diff --git a/api-reference/preview/managed-transfer/trustedtransfer_public.openapi.json b/api-reference/preview/managed-transfer/trustedtransfer_public.openapi.json new file mode 100644 index 00000000..b993ee67 --- /dev/null +++ b/api-reference/preview/managed-transfer/trustedtransfer_public.openapi.json @@ -0,0 +1,808 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "Paxos API", + "version": "2.0", + "description": "

Welcome to Paxos APIs. At Paxos, our mission is to enable the movement of any asset, any time, in a trustworthy way. These APIs serve that mission by making it easier than ever for you to directly integrate our product capabilities into your application, leveraging the speed, stability, and security of the Paxos platform.

The documentation that follows gives you access to our Crypto Brokerage, Trading, and Exchange products. It includes APIs for market data, orders, and the held rate quote flow.

To test in our sandbox environment, sign up for an account. For more information about Paxos and our APIs, visit Paxos.com.

\n", + "x-logo": { + "url": "/docs/paxos.svg", + "backgroundColor": "#FFFFFF", + "altText": "Paxos logo" + } + }, + "tags": [ + { + "name": "Profiles", + "description": "Profiles hold asset balances, and every Paxos transaction is on a particular profile.\nDepending on your integration type, Profiles may be used to reflect both corporate balances or individual user balances.\nThere are two types of Profiles:\n- `DEFAULT` Profiles are system-generated.\n- `NORMAL` Profiles are created using the [Create Profile](#operation/CreateProfile) endpoint and are the only type of Profile you can create.\n" + }, + { + "name": "Quotes", + "description": "Quotes are \"held rates\" offered by Paxos to buy or sell assets at a specific\nprice within a period of time - for example, the option to buy BTC within\nthe next 30 seconds for $8,000.\n\nThe typical Quotes workflow is as follows:\n\n1. Call [List Quotes](#operation/ListQuotes) to get the latest available\n quoted prices for the assets you want to buy or sell.\n1. Present the offered price to one or more end-users, with a timer\n indicating the time to expiration.\n1. If a user accepts the price, call [Create Quote Execution](#operation/CreateQuoteExecution) with the amount to buy or sell.\n1. Call [Get Quote Execution](#operation/GetQuoteExecution) to monitor\n for completion and know when the funds from the execution are available.\n\nIt's important to show end-users the latest available price. If you cache\nprices to show them to multiple users, you should refresh the cache once\nper second.\n\nYou can call [List Quote Executions](#operation/ListQuoteExecutions) to\nreview or construct reports on quote execution activity.\n" + }, + { + "name": "Quote Executions", + "description": "Quote Executions buy or sell assets using a Quote obtained from\nthe [Quotes](#tag/Quotes) flow.\n" + }, + { + "name": "Orders", + "description": "

There are three types of orders: market, limit and post-only.

\n

Market orders guarantee execution at a variable price and quantity. Limit orders guarantee price and quantity at the time of execution but do not guarantee execution. Post-only is an order type that will only be placed on the order book if it is the maker side of a trade.

\n" + }, + { + "name": "Market Data", + "description": "Market data provides various parameters of the order book and historical order data.\n" + }, + { + "name": "Pricing", + "description": "Pricing provides historical data related to charting of asset prices.\n\nNote: Some Pricing API markets may be unavailable for trading.\n" + }, + { + "name": "Issuer Quotes", + "description": "Issuer Quotes are \"held rates\" offered by Paxos to mint or redeem Paxos-issued assets at a specific price within a period of time - for example, the option to buy PAXG within the next 5 seconds for $3,000.\n\nThe typical Issuer Quotes workflow is as follows:\n\n1. Call [Create Issuer Quote](#operation/CreateIssuerQuote) to get a quote for the asset you want to mint or redeem to a specific profile.\n1. Call [Create Issuer Quote Execution](#operation/CreateIssuerQuoteExecution) with the quote ID and profile ID.\n\nYou can call [List Issuer Quote Executions](#operation/ListIssuerQuoteExecutions) to review or construct reports on issuer quote execution activity.\n" + }, + { + "name": "Identity", + "description": "An Identity represents a person or institution who is able to take actions on the Paxos Platform. Depending on \nyour integration type you might not need to create Identities for your end users. \n\nIdentities must pass a set of verifications and checks before they're able to transact on the Platform. Learn more\nabout getting started with Identity and managing their onboarding lifecycle in the [Identity Developer Guide](https://docs.paxos.com/identity).\n" + }, + { + "name": "Institution Members", + "description": "Institution Members allow you to associate persons with an institution on our Platform.\nEach institution can have multiple members, with each member representing the relationship to a person identity.\n\nWhen creating an institution identity, you must designate at least one institution member.\nThis requirement ensures we have complete information about the institution's ownership structure\nand key personnel, which is necessary to onboard institutions.\n" + }, + { + "name": "Accounts", + "description": "Accounts connect Identities (persons or institutions) to Profiles (asset balances).\nKey features include:\n\n- **Balance Management**: Track and manage profile balances via [Subledgering](https://docs.paxos.com/crypto-brokerage/ledger-type#fiat-and-crypto-subledger)\n- **Joint Account Support**: Link multiple Identities to a single Account for shared on platform balance\n\nAccounts are required for all Identity API integrations.\n" + }, + { + "name": "Account Members", + "description": "Account Members allow you to associate an Identity with an Account on our Platform.\nEach Account can be linked to multiple Identities, which supports Joint Accounts (where two Identities have the ability\nto transact against a single Profile) \n\nAccount members are effectively immutable. In order to update an account member,\nclients should remove then re-add the account member with the desired state.\n\nThe API requires clients to have write access on the account and all identities\nassociated with the account.\n" + }, + { + "name": "Identity Documents", + "description": "The Identity Documents API allows clients to send documents to Paxos to validate identities\nduring the KYC process. Files can be updated multiple times by re-sending the document type\nfor processing.\n\nWe currently accept the following file formats:\n- pdf\n- jpg\n- png\n\nSteps to upload a document are as follows:\n1. Send a PUT request to /identity/identities/{id}/documents to get\n the upload URL.\n1. Send your document to the provided URL via a PUT request. Take the following example using curl:\n $ curl --upload-file Proof_of_residence.jpg $URI \n\nUploaded document metadata will be available via GET request to /identity/identities/{id}/documents\n" + }, + { + "name": "Fiat Transfers", + "description": "The Fiat Transfers API allows clients to deposit and withdraw fiat via the following Fiat Networks: Wire (Fedwire and SWIFT) and CUBIX. The supported asset is USD.\n\nThe full set of Fiat Transfers API endpoints is:\n- For Deposits:\n - [Create Fiat Deposit Instructions](#operation/CreateFiatDepositInstructions)\n - [List Fiat Deposit Instructions](#operation/ListFiatDepositInstructions)\n - [Get Fiat Deposit Instructions](#operation/GetFiatDepositInstructions)\n- For Withdrawals:\n - [Create Fiat Account](#operation/CreateFiatAccount)\n - [List Fiat Accounts](#operation/ListFiatAccounts)\n - [Get Fiat Account](#operation/GetFiatAccount)\n - [Delete Fiat Account](#operation/DeleteFiatAccount)\n - [Update Fiat Account](#operation/UpdateFiatAccount)\n - [Create Fiat Withdrawal](#operation/CreateFiatWithdrawal)\n" + }, + { + "name": "Stablecoin Conversion", + "description": "

Convert between fiat and stablecoin using Create Stablecoin Conversion and check the status of a single conversion or retrieve a list of conversions.

\n", + "externalDocs": { + "description": "Learn more about stablecoin conversions →", + "url": "https://docs.paxos.com/developer/convert" + } + }, + { + "name": "Transfers", + "description": "Each deposit to and withdrawal from a Paxos account is a Transfer.\nA Transfer is associated with a particular Profile, and increases or\ndecreases the available balance of a single asset in that Profile.\n" + }, + { + "name": "Tax Forms", + "description": "All tax forms are associated to a single account_id.\nAn account_id can have multiple tax forms associated with it.\nUS 1099-B and 1099-Misc tax forms for the previous fiscal year will be available in February of the current calendar year.\nPrevious years tax forms are also available by request.\n" + }, + { + "name": "Crypto Deposits", + "description": "For [Paxos Global PTE Ltd](https://help.paxos.com/hc/en-us/articles/9647005243284) users, update or reject a crypto deposit that does not contain the required [travel rule](https://help.paxos.com/hc/en-us/articles/25928845778068) information.\nDeposits with the `NEEDS_INFO` status require additional sender information before they can be processed.\n- For individuals, both first and last name are required.\n- For institutions, the institution name is required.\n\nIf a deposit is rejected, the funds will no longer be available.\n", + "externalDocs": { + "description": "Learn more about travel rule udpates →", + "url": "https://help.paxos.com/hc/en-us/articles/25422999706900" + } + }, + { + "name": "Settlement", + "description": "Use the Settlements API to facilitate simultaneous exchange of pre-funded assets. Automate a variety of use cases that require two-party approval, including net settlement of over-the-counter trades, withdrawal requests for tri-party collateral, payment requests, and bilateral settlement for marketplace end users.\n\nThe simple request-and-approval workflow supports both one-directional and bidirectional transactions to allow a user to receive an asset (for example, send USDP) or simultaneously send and receive assets (for example, send USD and receive BTC and ETH). Only when all parties are in agreement and assets are fully funded does the Settlements API allow for change of custody. Upon completion, all settled assets are immediately available for trading, transferring, withdrawal or other supported activities.\n\nThe Source Profile initiates the transaction for the Target Profile to approve. The `DIRECTION` of each asset is always relative to the Source Profile and only the owner of the Source Profile can cancel a transaction if it hasn't been approved by the Target Profile.\n", + "externalDocs": { + "description": "Learn more about the Settlement APIs →", + "url": "https://docs.paxos.com/settlements" + } + }, + { + "name": "Paxos Transfers", + "description": "Move assets between two Entities belonging to the same Organization or to a different Organization on the Paxos platform.\n\n> Transferring USD between Entities is prohibited in some jurisdictions. Contact [Support](https://support.paxos.com/) if you run into any problems with this restriction.\n\nEnsure the destination [Profile](https://docs.paxos.com/dashboard/organization#profile) already exists before beginning the transfer. This may require contacting someone outside your Organization to get the destination Profile ID.\n" + }, + { + "name": "Monitoring Addresses", + "description": "A Monitoring Address is a blockchain address that Paxos monitors daily for eligible stablecoin activity and determines the amount of rewards your organization will earn. We recommend adding any addresses you expect to hold, receive, or mint Paxos stablecoins as a monitoring address in order to receive rewards for all of your qualifying on-chain activity. \n\n> Monitoring addresses must be added by month end (`23:59 UTC+0`) in order to earn rewards for that month. Addresses added after month end will start earning rewards for the following month.\n\n*These endpoints are only relevant for Global Dollar Network (GDN) partners.*\n" + }, + { + "name": "Payout Address", + "description": "Endpoints working with Payout Address. These endpoints are only relevant for Global Dollar Network (GDN) partners." + }, + { + "name": "Statements", + "description": "A Statement summarizes all eligible stablecoin rewards for a given organization over a fixed time period. It aggregates earned reward types (e.g., custody, mint, acceptance) and records whether the statement was paid.\n\nStatements are generated monthly and are immutable. Revised statements will be issued as a new statement with a unique ID. Statements can be used to reconcile balances or for accounting and accounts receivable purposes.\n\n*These endpoints are only relevant for Global Dollar Network (GDN) partners.*\n" + }, + { + "name": "Payments", + "description": "Payments represent actual transfers of rewards to the payout address associated with a given statement. Payments are made on-chain to a specified payout address. Payments tie 1:1 with a statement amount.\n\nUse the `ref_id` to link payments to statements. \n\n> Some fields (e.g., `account_id`, `profile_id`) are populated for consistency but are not relevant to reward-specific flows.\n\n*These endpoints are only relevant for Global Dollar Network (GDN) partners.*\n" + }, + { + "name": "API Credentials", + "description": "API credentials allow programmatic access to Paxos APIs. These endpoints enable you to manage and view your API credentials.\n" + }, + { + "name": "Events", + "description": "The Events API allows you to fetch events that occurred on the Paxos platform with the full event payload. This REST API can be used as part of your webhook integrations (including rebuilding your event history should your webhook consumer exceed its retries), or standalone by polling for events related to your identities.\n" + }, + { + "name": "Event Types", + "description": "
\n
\n
\n \n
\n
\n \n
\n
\n

\n Identity requires additional documents, use the UploadDocument endpoint to upload all required documents.\n

\n
\n
\n \n
\n
\n \n
\n
\n

\n Identity is APPROVED\n

\n
\n
\n \n
\n
\n \n
\n
\n

\n Identity is DENIED\n

\n
\n
\n \n
\n
\n \n
\n
\n

\n Identity is DISABLED\n

\n
\n
\n \n
\n
\n \n
\n
\n

\n Identity is required to undergo its periodic KYC refresh.\n

\n
\n
\n \n
\n
\n \n
\n
\n

\n Identity has successfully completed its periodic KYC refresh.\n

\n
\n
\n \n
\n
\n \n
\n
\n

\n Identity has not completed its required KYC refresh within the designated timeframe.\n

\n
\n
\n \n
\n
\n \n
\n
\n

\n Crypto deposit detected on-chain and is PENDING confirmation.\n

\n
\n
\n \n
\n
\n \n
\n
\n

\n Crypto deposit is COMPLETED and funds are available on platform.\n

\n
\n
\n \n
\n
\n \n
\n
\n

\n Crypto deposit has FAILED or been cancelled.\n

\n
\n
\n \n
\n
\n \n
\n
\n

\n Crypto withdrawal has been initiated and is PENDING on-chain processing.\n

\n
\n
\n \n
\n
\n \n
\n
\n

\n Crypto withdrawal is COMPLETED and has been sent to the destination address.\n

\n
\n
\n \n
\n
\n \n
\n
\n

\n Crypto withdrawal has FAILED or been cancelled.\n

\n
\n
\n \n
\n
\n \n
\n
\n

\n Fiat deposit via DBS has been initiated and is PENDING processing.\n

\n
\n
\n \n
\n
\n \n
\n
\n

\n Fiat deposit via DBS is COMPLETED and funds are available on platform.\n

\n
\n
\n \n
\n
\n \n
\n
\n

\n Fiat deposit via DBS has FAILED or been cancelled.\n

\n
\n
\n \n
\n
\n \n
\n
\n

\n Fiat withdrawal via DBS has been initiated and is PENDING processing.\n

\n
\n
\n \n
\n
\n \n
\n
\n

\n Fiat withdrawal via DBS is COMPLETED and has been sent to the destination account.\n

\n
\n
\n \n
\n
\n \n
\n
\n

\n Fiat withdrawal via DBS has FAILED or been cancelled.\n

\n
\n
\n
\n
\n

\n \n Note: We may add additional event types at any time. Your implementation should handle unexpected event types gracefully.\n \n

\n
\n
\n
\n" + }, + { + "name": "Event Objects", + "description": "
\n

\n The following object schemas describe the structure of data that accompanies each event type.\n

\n \n
\n
\n
\n

\n \n identity_documents_required\n \n

\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FieldTypeDescription
\n id\n UUIDUnique identifier for this event object
\n identity_id\n UUIDIdentifier for the identity requiring documents
\n required_documents\n list enum\n List of required document types\n
\n
\n
\n
\n \n
\n
\n
\n

\n \n identity_summary_status_change\n \n

\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FieldTypeDescription
\n id\n UUIDUnique identifier for this event object
\n identity_id\n UUIDIdentifier for the affected identity
\n old_summary_status\n enum\n Previous status:\n \n PENDING\n ERROR\n APPROVED\n DENIED\n DISABLED\n \n
\n new_summary_status\n enum\n New status:\n \n PENDING\n ERROR\n APPROVED\n DENIED\n DISABLED\n \n
\n
\n
\n
\n \n
\n
\n
\n

\n \n identity_kyc_refresh\n \n

\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FieldTypeDescription
\n id\n UUIDUnique identifier for this event object
\n identity_id\n UUIDIdentifier for the affected identity
\n last_kyc_refresh_date\n Datetime\n Date of the most recent completed KYC refresh\n (optional)\n
\n next_kyc_refresh_date\n Datetime\n Scheduled date for the next KYC refresh\n (optional)\n
\n
\n
\n
\n \n
\n
\n
\n

\n \n transfer_status_change\n \n

\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FieldTypeDescription
\n id\n UUIDThe Paxos transfer ID. You can call the GetTransfer endpoint with this ID to get more details about it.
\n type\n enum\n Type of transfer:\n \n CRYPTO_DEPOSIT\n CRYPTO_WITHDRAWAL\n ACT_DEPOSIT\n ACT_WITHDRAWAL\n \n
\n status\n enum\n Status of transfer:\n \n PENDING\n COMPLETED\n FAILED\n \n
\n ref_id\n string\n The client-specified ID of the transfer for replay protection and lookup.\n (optional)\n
\n crypto_network\n enum\n Cryptocurrency network (e.g. ETHEREUM, BASE, SOLANA)\n (optional, present for crypto transfers)\n
\n crypto_tx_hash\n string\n On-chain transaction hash\n (optional, present for crypto transfers when available)\n
\n crypto_tx_index\n string\n The output index or output address\n (optional, present for crypto transfers when available)\n
\n memo\n string\n Memo associated with the transfer as an identifier\n (optional, present for fiat transfers when available)\n
\n
\n
\n
\n\n \n
\n" + } + ], + "paths": { + "/transfer/managed/deposit-intents": { + "get": { + "summary": "List Managed Deposit Intents", + "operationId": "ListTrustedDepositIntents", + "responses": { + "200": { + "description": "A successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListTrustedDepositIntentsResponse" + } + } + } + } + }, + "parameters": [ + { + "name": "identity_id", + "description": "The Paxos ID of the Identity associated with the transfer.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "profile_ids", + "in": "query", + "required": false, + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "tags": [ + "Managed Transfers" + ], + "security": [ + { + "OAuth2": [ + "transfer:read_managedtransfer" + ] + } + ] + }, + "post": { + "summary": "Create Managed Deposit Intent", + "description": "This is the first step in the process of a managed deposit.", + "operationId": "CreateTrustedDepositIntent", + "responses": { + "200": { + "description": "A successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateTrustedDepositIntentResponse" + } + } + } + } + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateTrustedDepositIntentRequest" + } + } + }, + "required": true + }, + "tags": [ + "Managed Transfers" + ], + "security": [ + { + "OAuth2": [ + "transfer:write_managedtransfer" + ] + } + ] + } + }, + "/transfer/managed/withdrawal-intents": { + "post": { + "summary": "Create Managed Withdrawal Intent", + "operationId": "CreateTrustedWithdrawalIntent", + "responses": { + "200": { + "description": "A successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateTrustedWithdrawalIntentResponse" + } + } + } + } + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateTrustedWithdrawalIntentRequest" + } + } + }, + "required": true + }, + "tags": [ + "Managed Transfers" + ], + "security": [ + { + "OAuth2": [ + "transfer:write_managedtransfer" + ] + } + ] + } + }, + "/transfer/managed/withdrawal-intents/{id}": { + "get": { + "summary": "Get Managed Withdrawal Intent", + "operationId": "GetTrustedWithdrawalIntent", + "responses": { + "200": { + "description": "A successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetTrustedWithdrawalIntentResponse" + } + } + } + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "tags": [ + "Managed Transfers" + ], + "security": [ + { + "OAuth2": [ + "transfer:read_managedtransfer" + ] + } + ] + } + }, + "/transfer/managed/withdrawal-intents/{id}/execute": { + "post": { + "summary": "Execute Managed Withdrawal Intent", + "operationId": "ExecuteTrustedWithdrawalIntent", + "responses": { + "200": { + "description": "A successful response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExecuteTrustedWithdrawalIntentResponse" + } + } + } + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TrustedTransferPublicExecuteTrustedWithdrawalIntentBody" + } + } + }, + "required": true + }, + "tags": [ + "Managed Transfers" + ], + "security": [ + { + "OAuth2": [ + "transfer:write_managedtransfer" + ] + } + ] + } + } + }, + "components": { + "schemas": { + "TrustedTransferPublicExecuteTrustedWithdrawalIntentBody": { + "type": "object", + "properties": { + "auth_token": { + "type": "string", + "title": "Use the value from https://docs.meshconnect.com/guides/web-sdk#linkpayload-properties > AccessTokenPayload.AccountToken.accessToken" + }, + "broker_type": { + "type": "string", + "description": "Use the value from AccessTokenPayload.brokerType." + }, + "broker_name": { + "type": "string", + "title": "Use the value from AccessTokenPayload.brokerName" + }, + "mfaCode": { + "type": "string" + }, + "profile_id": { + "type": "string" + }, + "asset": { + "type": "string", + "title": "i.e. symbol. E.g. ETH. Used as input to Mesh's v1/transfers/managed/address/get" + }, + "crypto_network": { + "$ref": "#/components/schemas/CryptoNetwork" + }, + "amount": { + "type": "string" + }, + "ref_id": { + "type": "string" + }, + "account_id": { + "type": "string" + } + } + }, + "CreateTrustedDepositIntentRequest": { + "type": "object", + "properties": { + "identity_id": { + "type": "string", + "description": "The Paxos ID of the Identity associated with the transfer." + }, + "profile_id": { + "type": "string", + "description": "The target Profile of the transfer." + }, + "source_integration_id": { + "type": "string", + "description": "The broker/exchange/wallet from which the deposit will originate.\nValid values are: `Binance`, `Coinbase`, ..." + }, + "destination_crypto_networks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CryptoNetwork" + }, + "description": "Possible network to accept the deposit on." + } + } + }, + "CreateTrustedDepositIntentResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the trusted deposit intent." + }, + "link_token": { + "type": "string", + "description": "The link token used to initialize the Mesh SDK. See https://docs.meshconnect.com/guides/web-sdk." + }, + "client_id": { + "type": "string", + "description": "The client id used to initialize the Mesh SDK. See https://docs.meshconnect.com/guides/web-sdk." + } + } + }, + "CreateTrustedWithdrawalIntentRequest": { + "type": "object", + "properties": { + "identity_id": { + "type": "string" + }, + "target_integration_id": { + "type": "string", + "description": "The broker/exchange/wallet from which the deposit will originate.\nValid values are: `Binance`, `Coinbase`, ..." + } + } + }, + "CreateTrustedWithdrawalIntentResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the trusted withdrawal intent." + }, + "link_token": { + "type": "string", + "description": "The link token used to initialize the Mesh SDK. See https://docs.meshconnect.com/guides/web-sdk." + }, + "client_id": { + "type": "string", + "description": "The client id used to initialize the Mesh SDK. See https://docs.meshconnect.com/guides/web-sdk." + } + } + }, + "CryptoNetwork": { + "type": "string", + "enum": [ + "BITCOIN", + "ETHEREUM", + "BITCOIN_CASH", + "LITECOIN", + "SOLANA", + "POLYGON_POS", + "BASE", + "ARBITRUM_ONE", + "STELLAR", + "INK", + "XLAYER" + ], + "description": "A CryptoNetwork is a blockchain transmitting cryptocurrencies.\n\n - STELLAR: @hidden\n - XLAYER: @hidden" + }, + "ExecuteTrustedWithdrawalIntentResponse": { + "type": "object", + "properties": { + "destination_address": { + "type": "string" + }, + "destination_crypto_network": { + "$ref": "#/components/schemas/CryptoNetwork" + }, + "destination_minimum_deposit_amount": { + "type": "string" + }, + "destination_broker_response_status": { + "type": "string" + }, + "transfer_id": { + "type": "string" + }, + "amount": { + "type": "string" + }, + "total": { + "type": "string" + }, + "fee": { + "type": "string" + } + } + }, + "GetTrustedWithdrawalIntentResponse": { + "type": "object", + "properties": { + "status": { + "$ref": "#/components/schemas/TrustedWithdrawalStatus" + }, + "destination_broker_type": { + "type": "string" + }, + "destination_broker_name": { + "type": "string" + }, + "transfer_id": { + "type": "string", + "title": "The caller can use as input to https://docs.paxos.com/api-reference/endpoints/transfers/get-transfer" + } + } + }, + "ListTrustedDepositIntentsResponse": { + "type": "object", + "properties": { + "deposit_intents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TrustedDepositIntents" + } + } + } + }, + "TrustedDepositAttempt": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "status": { + "$ref": "#/components/schemas/TrustedDepositAttemptStatus" + }, + "destination_crypto_network": { + "$ref": "#/components/schemas/CryptoNetwork" + }, + "tx_hash": { + "type": "string" + }, + "destination_address": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "transfer_id": { + "type": "string", + "description": "This field is populated when the status is SUBMITTED_TRANSFER_TO_PROFILE. The caller can use this as input to https://docs.paxos.com/api-reference/endpoints/transfers/get-transfer." + } + } + }, + "TrustedDepositAttemptStatus": { + "type": "string", + "enum": [ + "SUBMITTED_TRANSFER_TO_PROFILE", + "UNMATCHED" + ] + }, + "TrustedDepositIntentStatus": { + "type": "string", + "enum": [ + "AWAITING_TRANSACTION_INFO", + "TIMED_OUT_RECEIVING_TRANSACTION_INFO" + ] + }, + "TrustedDepositIntents": { + "type": "object", + "properties": { + "trusted_deposit_intent_id": { + "type": "string" + }, + "identity_id": { + "type": "string" + }, + "profile_id": { + "type": "string" + }, + "status": { + "$ref": "#/components/schemas/TrustedDepositIntentStatus" + }, + "matched_deposit": { + "$ref": "#/components/schemas/TrustedDepositAttempt" + }, + "other_deposit_attempts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TrustedDepositAttempt" + } + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + } + }, + "TrustedWithdrawalStatus": { + "type": "string", + "enum": [ + "FAILED_TO_OBTAIN_DESTINATION_ADDRESS", + "SUBMITTED_TRANSFER" + ] + }, + "Problem": { + "type": "object", + "properties": { + "type": { + "type": "string", + "format": "uri", + "description": "An absolute URI that identifies the problem type. When dereferenced,\nit SHOULD provide human-readable documentation for the problem type\n(e.g., using HTML).\n", + "default": "about:blank", + "example": "https://api.paxos.com/v2/problems/insufficient_funds" + }, + "title": { + "type": "string", + "description": "A short, summary of the problem type. Written in english and readable\nfor engineers (usually not suited for non technical stakeholders and\nnot localized); example: Service Unavailable\n", + "example": "Insufficient Funds" + }, + "status": { + "type": "integer", + "format": "int32", + "description": "The HTTP status code generated by the origin server for this occurrence\nof the problem.\n", + "minimum": 100, + "maximum": 600, + "exclusiveMaximum": true, + "example": 403 + }, + "detail": { + "type": "string", + "description": "A human readable explanation specific to this occurrence of the\nproblem.\n", + "example": "Not enough funds in account." + }, + "meta": { + "type": "object", + "description": "Additional structured metadata about the error.\n" + } + } + } + }, + "securitySchemes": { + "OAuth2": { + "type": "oauth2", + "description": "Paxos APIs use [OAuth 2](https://tools.ietf.org/html/rfc6749) with the [client credentials](https://tools.ietf.org/html/rfc6749#section-4.4) grant flow.\n\n**Token URLs:**\n- Production: https://oauth.paxos.com/oauth2/token\n- Sandbox: https://oauth.sandbox.paxos.com/oauth2/token\n\nLearn more in the [API credentials guide →](https://docs.paxos.com/developer/credentials)\n", + "flows": { + "clientCredentials": { + "tokenUrl": "https://oauth.paxos.com/oauth2/token", + "scopes": { + "conversion:read_conversion_stablecoin": "Retrieve stablecoin conversion details", + "conversion:write_conversion_stablecoin": "Create or cancel a stablecoin conversion", + "exchange:historical_prices": "Retrieve marketnaverage prices at a certain time increment", + "exchange:read_order": "Retrieve order or order execution details", + "exchange:read_quote": "Retrieve quote details for buying or selling an asset", + "exchange:read_quote_execution": "Retrieve quote execution details", + "exchange:write_quote_execution": "Create a quote execution for buying or selling an asset", + "exchange:write_order": "Create or cancel an order for buying or selling an asset", + "fee:write_crypto_withdrawal_fee": "Create a guaranteed fee for crypto withdrawal", + "funding:read_profile": "Retrieve Profile details and deposit funds in Sandbox", + "funding:write_profile": "Create a Profile", + "identity:read_account": "Retrieve Account details", + "identity:read_identity": "Retrieve Identity details or documents", + "identity:write_account": "Create or update Account and Account Members", + "identity:write_identity": "Create or update Identity details and set Sandbox Identify Status", + "settlement:read_transaction": "Retrieve settlement transaction details", + "settlement:write_transaction": "Create, affirm or cancel a settlement transaction", + "tax:read_tax_form": "Retrieve tax details", + "tax:read_tax_lot": "Retrieve tax lot details", + "tax:write_tax_lot": "Update the given tax-lot ID", + "transfer:read_deposit_address": "Retrieve deposit address details", + "transfer:read_fiat_account": "Retrieve Fiat Account details", + "transfer:read_fiat_deposit_instructions": "Retrieve fiat deposit instruction details", + "transfer:read_transfer": "Retrieve transfer details", + "transfer:read_transfer_limit": "Retrieve limits for the given transaction type", + "transfer:reject_crypto_deposit": "Reject a crypto deposit (travel rule)", + "transfer:update_crypto_deposit": "Provide required travel-rule details", + "transfer:write_crypto_withdrawal": "Withdraw asset to a specified destination address", + "transfer:write_deposit_address": "Create an deposit address on a blockchain network", + "transfer:write_fiat_account": "Create, update or delete a Fiat Account", + "transfer:write_fiat_deposit_instructions": "Create, update or delete fiat deposit instructions", + "transfer:write_internal_transfer": "Transfer assets between two Profiles", + "transfer:write_sandbox_fiat_deposit": "Initiate a test fiat deposit in the Sandbox environment", + "transfer:write_fiat_withdrawal": "Withdraw fiat to the given destination", + "events:read_event": "Retrieve events" + } + } + } + } + } + }, + "x-tagGroups": [ + { + "name": "Deposits and Withdrawals", + "tags": [ + "Transfers", + "Fiat Transfers", + "Deposit Addresses", + "Crypto Deposits", + "Crypto Withdrawals", + "Fees", + "Internal Transfers", + "Paxos Transfers", + "Limits" + ] + }, + { + "name": "Identity", + "tags": [ + "Identity", + "Institution Members", + "Accounts", + "Account Members", + "Identity Documents" + ] + }, + { + "name": "API Credentials", + "tags": [ + "API Credentials" + ] + }, + { + "name": "Profiles", + "tags": [ + "Profiles" + ] + }, + { + "name": "Sandbox", + "tags": [ + "Sandbox Deposits", + "Sandbox Identity", + "Sandbox Fiat Transfers" + ] + }, + { + "name": "Settlements", + "tags": [ + "Settlement" + ] + }, + { + "name": "Stablecoin Conversion", + "tags": [ + "Stablecoin Conversion" + ] + }, + { + "name": "Taxes", + "tags": [ + "Tax Forms" + ] + }, + { + "name": "Trading", + "tags": [ + "Market Data", + "Orders", + "Quotes", + "Quote Executions", + "Pricing", + "Issuer Quotes" + ] + }, + { + "name": "Rewards", + "tags": [ + "Monitoring Addresses", + "Statements", + "Payments" + ] + }, + { + "name": "Events", + "tags": [ + "Events", + "Event Types", + "Event Objects" + ] + } + ], + "servers": [ + { + "url": "https://api.paxos.com/v2", + "description": "Production" + }, + { + "url": "https://api.sandbox.paxos.com/v2", + "description": "Sandbox" + } + ] +} diff --git a/docs.json b/docs.json index 33708bf8..99fcb2e5 100644 --- a/docs.json +++ b/docs.json @@ -841,7 +841,20 @@ ] }, { - "tab": "Previews", + "tab": "Preview: Managed Transfer", + "hidden": false, + "groups": [ + { + "group": "Managed Transfer", + "openapi": { + "source": "api-reference/preview/managed-transfer/trustedtransfer_public.openapi.json", + "directory": "api-reference/preview/managed-transfer/" + } + } + ] + }, + { + "tab": "Other Previews", "hidden": true, "groups": [ { @@ -925,4 +938,4 @@ "contextual": { "options": ["copy", "view", "claude", "chatgpt"] } -} \ No newline at end of file +} From bee9ff9c26eb3816ff8b4a4c797df69ccb4bcc7f Mon Sep 17 00:00:00 2001 From: Nick Geib <152412556+ngeib-paxos@users.noreply.github.com> Date: Wed, 24 Sep 2025 13:36:08 -0500 Subject: [PATCH 2/4] Mark required fields --- .../trustedtransfer_public.openapi.json | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/api-reference/preview/managed-transfer/trustedtransfer_public.openapi.json b/api-reference/preview/managed-transfer/trustedtransfer_public.openapi.json index b993ee67..9a79de8e 100644 --- a/api-reference/preview/managed-transfer/trustedtransfer_public.openapi.json +++ b/api-reference/preview/managed-transfer/trustedtransfer_public.openapi.json @@ -154,7 +154,7 @@ "name": "identity_id", "description": "The Paxos ID of the Identity associated with the transfer.", "in": "query", - "required": false, + "required": true, "schema": { "type": "string" } @@ -385,7 +385,16 @@ "account_id": { "type": "string" } - } + }, + "required": [ + "auth_token", + "broker_type", + "broker_name", + "profile_id", + "asset", + "crypto_network", + "amount" + ] }, "CreateTrustedDepositIntentRequest": { "type": "object", @@ -409,7 +418,12 @@ }, "description": "Possible network to accept the deposit on." } - } + }, + "required": [ + "identity_id", + "profile_id", + "destination_crypto_networks" + ] }, "CreateTrustedDepositIntentResponse": { "type": "object", @@ -436,9 +450,13 @@ }, "target_integration_id": { "type": "string", - "description": "The broker/exchange/wallet from which the deposit will originate.\nValid values are: `Binance`, `Coinbase`, ..." + "description": "The broker/exchange/wallet to which the withdrawal will occur.\nValid values are: `Binance`, `Coinbase`, ..." } - } + }, + "required": [ + "identity_id", + "target_integration_id" + ] }, "CreateTrustedWithdrawalIntentResponse": { "type": "object", From 7da31b7c1b52686b1c94b1fb2ce79a76c14cd253 Mon Sep 17 00:00:00 2001 From: Nick Geib <152412556+ngeib-paxos@users.noreply.github.com> Date: Fri, 10 Oct 2025 12:45:52 -0500 Subject: [PATCH 3/4] Add asset --- .../managed-transfer/trustedtransfer_public.openapi.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/api-reference/preview/managed-transfer/trustedtransfer_public.openapi.json b/api-reference/preview/managed-transfer/trustedtransfer_public.openapi.json index 9a79de8e..f93a738f 100644 --- a/api-reference/preview/managed-transfer/trustedtransfer_public.openapi.json +++ b/api-reference/preview/managed-transfer/trustedtransfer_public.openapi.json @@ -417,12 +417,17 @@ "$ref": "#/components/schemas/CryptoNetwork" }, "description": "Possible network to accept the deposit on." + }, + "asset": { + "type": "string", + "description": "The token or asset to deposit. E.g. \"ETH\", \"PYUSD\"." } }, "required": [ "identity_id", "profile_id", - "destination_crypto_networks" + "destination_crypto_networks", + "asset" ] }, "CreateTrustedDepositIntentResponse": { From d0389e72bb81bda2b1b534550a047db88972e1cb Mon Sep 17 00:00:00 2001 From: Nick Geib <152412556+ngeib-paxos@users.noreply.github.com> Date: Wed, 19 Nov 2025 13:00:21 -0600 Subject: [PATCH 4/4] Update preview docs --- .../trustedtransfer_public.openapi.json | 134 ++++++++++-------- 1 file changed, 76 insertions(+), 58 deletions(-) diff --git a/api-reference/preview/managed-transfer/trustedtransfer_public.openapi.json b/api-reference/preview/managed-transfer/trustedtransfer_public.openapi.json index f93a738f..e615a510 100644 --- a/api-reference/preview/managed-transfer/trustedtransfer_public.openapi.json +++ b/api-reference/preview/managed-transfer/trustedtransfer_public.openapi.json @@ -136,14 +136,14 @@ "/transfer/managed/deposit-intents": { "get": { "summary": "List Managed Deposit Intents", - "operationId": "ListTrustedDepositIntents", + "operationId": "ListManagedDepositIntents", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ListTrustedDepositIntentsResponse" + "$ref": "#/components/schemas/ListManagedDepositIntentsResponse" } } } @@ -161,6 +161,7 @@ }, { "name": "profile_ids", + "description": "Return managed deposit intents related to the given profile_ids.\nAt least one of managed_deposit_intent_id or identity_id is required.", "in": "query", "required": false, "explode": true, @@ -170,6 +171,15 @@ "type": "string" } } + }, + { + "name": "managed_deposit_intent_id", + "description": "Return the managed deposit intent for the given id.\nAt least one of managed_deposit_intent_id or identity_id is required.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } } ], "tags": [ @@ -178,7 +188,7 @@ "security": [ { "OAuth2": [ - "transfer:read_managedtransfer" + "transfer:read_managed_deposit" ] } ] @@ -186,14 +196,14 @@ "post": { "summary": "Create Managed Deposit Intent", "description": "This is the first step in the process of a managed deposit.", - "operationId": "CreateTrustedDepositIntent", + "operationId": "CreateManagedDepositIntent", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateTrustedDepositIntentResponse" + "$ref": "#/components/schemas/CreateManagedDepositIntentResponse" } } } @@ -203,7 +213,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateTrustedDepositIntentRequest" + "$ref": "#/components/schemas/CreateManagedDepositIntentRequest" } } }, @@ -215,7 +225,7 @@ "security": [ { "OAuth2": [ - "transfer:write_managedtransfer" + "transfer:write_managed_deposit" ] } ] @@ -224,14 +234,14 @@ "/transfer/managed/withdrawal-intents": { "post": { "summary": "Create Managed Withdrawal Intent", - "operationId": "CreateTrustedWithdrawalIntent", + "operationId": "CreateManagedWithdrawalIntent", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateTrustedWithdrawalIntentResponse" + "$ref": "#/components/schemas/CreateManagedWithdrawalIntentResponse" } } } @@ -241,7 +251,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateTrustedWithdrawalIntentRequest" + "$ref": "#/components/schemas/CreateManagedWithdrawalIntentRequest" } } }, @@ -262,14 +272,14 @@ "/transfer/managed/withdrawal-intents/{id}": { "get": { "summary": "Get Managed Withdrawal Intent", - "operationId": "GetTrustedWithdrawalIntent", + "operationId": "GetManagedWithdrawalIntent", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetTrustedWithdrawalIntentResponse" + "$ref": "#/components/schemas/GetManagedWithdrawalIntentResponse" } } } @@ -300,14 +310,14 @@ "/transfer/managed/withdrawal-intents/{id}/execute": { "post": { "summary": "Execute Managed Withdrawal Intent", - "operationId": "ExecuteTrustedWithdrawalIntent", + "operationId": "ExecuteManagedWithdrawalIntent", "responses": { "200": { "description": "A successful response.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ExecuteTrustedWithdrawalIntentResponse" + "$ref": "#/components/schemas/ExecuteManagedWithdrawalIntentResponse" } } } @@ -327,7 +337,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TrustedTransferPublicExecuteTrustedWithdrawalIntentBody" + "$ref": "#/components/schemas/ManagedTransferPublicExecuteManagedWithdrawalIntentBody" } } }, @@ -348,7 +358,7 @@ }, "components": { "schemas": { - "TrustedTransferPublicExecuteTrustedWithdrawalIntentBody": { + "ManagedTransferPublicExecuteManagedWithdrawalIntentBody": { "type": "object", "properties": { "auth_token": { @@ -396,7 +406,7 @@ "amount" ] }, - "CreateTrustedDepositIntentRequest": { + "CreateManagedDepositIntentRequest": { "type": "object", "properties": { "identity_id": { @@ -407,10 +417,6 @@ "type": "string", "description": "The target Profile of the transfer." }, - "source_integration_id": { - "type": "string", - "description": "The broker/exchange/wallet from which the deposit will originate.\nValid values are: `Binance`, `Coinbase`, ..." - }, "destination_crypto_networks": { "type": "array", "items": { @@ -425,29 +431,27 @@ }, "required": [ "identity_id", - "profile_id", - "destination_crypto_networks", - "asset" + "profile_id" ] }, - "CreateTrustedDepositIntentResponse": { + "CreateManagedDepositIntentResponse": { "type": "object", "properties": { "id": { "type": "string", - "description": "The ID of the trusted deposit intent." + "description": "The ID of the managed deposit intent." }, "link_token": { "type": "string", - "description": "The link token used to initialize the Mesh SDK. See https://docs.meshconnect.com/guides/web-sdk." + "description": "The link token used in initializing the Mesh SDK. See https://docs.meshconnect.com/guides/web-sdk." }, "client_id": { "type": "string", - "description": "The client id used to initialize the Mesh SDK. See https://docs.meshconnect.com/guides/web-sdk." + "description": "The client id used in initializing the Mesh SDK. See https://docs.meshconnect.com/guides/web-sdk." } } }, - "CreateTrustedWithdrawalIntentRequest": { + "CreateManagedWithdrawalIntentRequest": { "type": "object", "properties": { "identity_id": { @@ -463,12 +467,12 @@ "target_integration_id" ] }, - "CreateTrustedWithdrawalIntentResponse": { + "CreateManagedWithdrawalIntentResponse": { "type": "object", "properties": { "id": { "type": "string", - "description": "The ID of the trusted withdrawal intent." + "description": "The ID of the managed withdrawal intent." }, "link_token": { "type": "string", @@ -497,7 +501,7 @@ ], "description": "A CryptoNetwork is a blockchain transmitting cryptocurrencies.\n\n - STELLAR: @hidden\n - XLAYER: @hidden" }, - "ExecuteTrustedWithdrawalIntentResponse": { + "ExecuteManagedWithdrawalIntentResponse": { "type": "object", "properties": { "destination_address": { @@ -526,11 +530,11 @@ } } }, - "GetTrustedWithdrawalIntentResponse": { + "GetManagedWithdrawalIntentResponse": { "type": "object", "properties": { "status": { - "$ref": "#/components/schemas/TrustedWithdrawalStatus" + "$ref": "#/components/schemas/ManagedWithdrawalStatus" }, "destination_broker_type": { "type": "string" @@ -544,98 +548,112 @@ } } }, - "ListTrustedDepositIntentsResponse": { + "ListManagedDepositIntentsResponse": { "type": "object", "properties": { "deposit_intents": { "type": "array", "items": { - "$ref": "#/components/schemas/TrustedDepositIntents" + "$ref": "#/components/schemas/ManagedDepositIntents" } } } }, - "TrustedDepositAttempt": { + "ManagedDepositAttempt": { "type": "object", "properties": { "id": { "type": "string" }, "status": { - "$ref": "#/components/schemas/TrustedDepositAttemptStatus" + "$ref": "#/components/schemas/ManagedDepositAttemptStatus" }, "destination_crypto_network": { "$ref": "#/components/schemas/CryptoNetwork" }, - "tx_hash": { - "type": "string" + "crypto_tx_hash": { + "type": "string", + "description": "The on-chain transaction hash." }, "destination_address": { - "type": "string" + "type": "string", + "description": "The destination crypto address." }, "created_at": { "type": "string", - "format": "date-time" + "format": "date-time", + "description": "The timestamp at which this managed deposit attempt was created." }, "updated_at": { "type": "string", - "format": "date-time" + "format": "date-time", + "description": "The timestamp at which this managed deposit attempt was updated." }, "transfer_id": { "type": "string", - "description": "This field is populated when the status is SUBMITTED_TRANSFER_TO_PROFILE. The caller can use this as input to https://docs.paxos.com/api-reference/endpoints/transfers/get-transfer." + "description": "This field is populated when the status is SUBMITTED_TRANSFER_TO_PROFILE. The caller can use this value as input to https://docs.paxos.com/api-reference/endpoints/transfers/get-transfer." } } }, - "TrustedDepositAttemptStatus": { + "ManagedDepositAttemptStatus": { "type": "string", "enum": [ "SUBMITTED_TRANSFER_TO_PROFILE", "UNMATCHED" ] }, - "TrustedDepositIntentStatus": { + "ManagedDepositIntentStatus": { "type": "string", "enum": [ "AWAITING_TRANSACTION_INFO", + "RECEIVED_TRANSACTION_INFO", "TIMED_OUT_RECEIVING_TRANSACTION_INFO" ] }, - "TrustedDepositIntents": { + "ManagedDepositIntents": { "type": "object", "properties": { - "trusted_deposit_intent_id": { + "managed_deposit_intent_id": { "type": "string" }, + "customer_id": { + "type": "string", + "description": "The Paxos customer ID." + }, "identity_id": { - "type": "string" + "type": "string", + "description": "The Paxos ID of the Identity associated with the transfer." }, "profile_id": { - "type": "string" + "type": "string", + "description": "The target Profile of the transfer." }, "status": { - "$ref": "#/components/schemas/TrustedDepositIntentStatus" + "$ref": "#/components/schemas/ManagedDepositIntentStatus" }, "matched_deposit": { - "$ref": "#/components/schemas/TrustedDepositAttempt" + "$ref": "#/components/schemas/ManagedDepositAttempt" }, - "other_deposit_attempts": { + "other_deposits": { "type": "array", "items": { - "$ref": "#/components/schemas/TrustedDepositAttempt" - } + "$ref": "#/components/schemas/ManagedDepositAttempt" + }, + "description": "In the event that an unexpected deposit is received,this field will be populated." }, "created_at": { "type": "string", - "format": "date-time" + "format": "date-time", + "description": "The timestamp at which this managed deposit intent was created." }, "updated_at": { "type": "string", - "format": "date-time" + "format": "date-time", + "description": "The timestamp at which this managed deposit intent was updated." } } }, - "TrustedWithdrawalStatus": { + "ManagedWithdrawalStatus": { "type": "string", "enum": [ "FAILED_TO_OBTAIN_DESTINATION_ADDRESS",